主要内容

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

多GPU的深度学习

神经网络本质上是并行算法。您可以使用Parallel Computing Toolbox™在多核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”、“平行”

使用默认设置,“平行”使用本地群集配置文件。只有在没有GPU的情况下才使用CPU,因为CPU在培训时通常比GPU慢得多。

“ExecutionEnvironment”

集群或在云中

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

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

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

并行训练多个深度网络

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

并行训练深度学习网络

使用parfeval训练多个深度学习网络

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

云端深度学习

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

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

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

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

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

相关话题