主要内容

并行和在云中扩展深度学习

在多个GPU上深入学习

神经网络是固有的平行算法。您可以通过使用并行计算工具箱™来利用这种并行性,以跨多核CPU,图形处理单元(GPU)和具有多个CPU和GPU的计算机集群的培训。

训练深度网络的计算非常密集,通常可以通过使用高性能GPU来加速训练。如果你没有合适的GPU,你可以在一个或多个CPU核上训练,或者租用云中的GPU。您可以在单个GPU或CPU上训练卷积神经网络,也可以在多个GPU或CPU核上训练卷积神经网络,也可以在集群上并行训练卷积神经网络。使用GPU或任何并行选项需要并行计算工具箱。

提示

GPU支金宝app持是自动的。默认情况下,trainNetwork功能使用GPU(如果可用)。

如果您可以访问具有多个GPU的机器,只需指定培训选项“ExecutionEnvironment”、“multi-gpu”

如果您想使用更多资源,可以将深度学习培训扩展到云。

深度学习内置并行支持金宝app

培训资源 设置 了解更多

本地机床上的单个GPU

自动的。默认情况下,trainNetwork功能使用GPU(如果可用)。

“ExecutionEnvironment”

创建简单的深度学习网络分类

本地有多个gpu

指定“ExecutionEnvironment”、“multi-gpu”与之培训选项函数。

“ExecutionEnvironment”

选择用于培训的特定图形处理器

本地机器上有多个CPU核

指定“ExecutionEnvironment”、“平行”

使用默认设置,“平行”使用本地集群配置文件。只有使用CPU,如果您没有GPU,因为CPU通常远远低于GPU进行培训。

“ExecutionEnvironment”

集群或在云中

设置默认集群后,指定“ExecutionEnvironment”、“平行”与之培训选项函数。

培训在群集中执行并将内置进度图返回到本地MATLAB®

使用自动并行支持在云中训练网络金宝app

并行列车多个深网络

训练的场景 建议 了解更多
交互式地在您的本地机器或云中 使用一个parfor循环训练多个网络,并使用绘图结果outputfcn..默认情况下在本地运行,或者选择不同的集群配置文件。 使用parfor训练多个深度学习网络
在本地机器的后台或云中 采用parfeval来训练而不阻塞您的本地MATLAB,并使用outputfcn..默认情况下在本地运行,或者选择不同的集群配置文件。

并行训练深度学习网络

使用Parfeval培训多个深入学习网络

在群集中,关闭您的本地机器 使用批处理函数向集群发送训练代码。您可以稍后关闭MATLAB并获取结果。 向群集发送深度学习批处理作业

在云中深入学习

如果您的深度学习培训需要数小时或数天,您可以租用云中的高性能gpu来加速培训。在云中工作需要一些初始设置,但是在初始设置之后使用云可以减少训练时间,或者允许您同时训练更多的网络。要尝试在云中进行深度学习,您可以按照示例步骤设置帐户、将数据复制到云中,并创建集群。在完成初始设置之后,您可以运行您的培训代码,只需要进行最小的更改就可以在云中运行。设置默认集群后,只需指定培训选项“ExecutionEnvironment”、“平行”在多个gpu上训练云集群上的网络。

在云中配置深度学习 笔记 了解更多
设置Mathworks云中心和亚马逊帐户 一次性设置。 云中心入门
创建一个集群 使用云中心在Amazon Cloud中设置和运行群集。对于深度学习,请选择具有GPU的机器类型,例如P2或G3实例。 创建云集群
上传数据到云 要使用云中的数据,请上传到Amazon S3。使用数据存储来从桌面客户端MATLAB或群集工作人员中访问S3中的数据,而无需更改代码。 上传深度学习数据到云

高级支持快速多节点金宝appGPU通信

如果您使用的Linux计算集群具有机器之间的快速互连(如Infiniband),或者不同机器上的gpu之间的快速互连(如GPUDirect RDMA),那么您可能能够利用MATLAB中的快速多节点支持。金宝app通过设置环境变量,在池中金宝app的所有工作人员上启用这种支持PARALLEL_SERVER_FAST_MULTINODE_GPU_COMMUNICATION1.在集群概要文件管理器中设置此环境变量。

这个特性是NVIDIA NCCL库用于GPU通信的一部分。要配置它,您必须设置额外的环境变量来定义网络接口协议,尤其是nccl_socket_ifname..有关更多信息,请参见nccl文件特别是部分nccl环境变量

相关话题