神经网络是固有的平行算法。您可以通过使用并行计算工具箱™来利用这种并行性,以跨多核CPU,图形处理单元(GPU)和具有多个CPU和GPU的计算机集群的培训。
训练深度网络的计算非常密集,通常可以通过使用高性能GPU来加速训练。如果你没有合适的GPU,你可以在一个或多个CPU核上训练,或者租用云中的GPU。您可以在单个GPU或CPU上训练卷积神经网络,也可以在多个GPU或CPU核上训练卷积神经网络,也可以在集群上并行训练卷积神经网络。使用GPU或任何并行选项需要并行计算工具箱。
提示
GPU支金宝app持是自动的。默认情况下,trainNetwork
功能使用GPU(如果可用)。
如果您可以访问具有多个GPU的机器,只需指定培训选项“ExecutionEnvironment”、“multi-gpu”
.
如果您想使用更多资源,可以将深度学习培训扩展到云。
培训资源 | 设置 | 了解更多 |
---|---|---|
本地机床上的单个GPU |
自动的。默认情况下, |
|
本地有多个gpu |
指定 |
|
本地机器上有多个CPU核 |
指定 使用默认设置, |
|
集群或在云中 |
设置默认集群后,指定 培训在群集中执行并将内置进度图返回到本地MATLAB®. |
训练的场景 | 建议 | 了解更多 |
---|---|---|
交互式地在您的本地机器或云中 | 使用一个parfor 循环训练多个网络,并使用绘图结果outputfcn. .默认情况下在本地运行,或者选择不同的集群配置文件。 |
使用parfor训练多个深度学习网络 |
在本地机器的后台或云中 | 采用parfeval 来训练而不阻塞您的本地MATLAB,并使用outputfcn. .默认情况下在本地运行,或者选择不同的集群配置文件。 |
|
在群集中,关闭您的本地机器 | 使用批处理 函数向集群发送训练代码。您可以稍后关闭MATLAB并获取结果。 |
向群集发送深度学习批处理作业 |
如果您的深度学习培训需要数小时或数天,您可以租用云中的高性能gpu来加速培训。在云中工作需要一些初始设置,但是在初始设置之后使用云可以减少训练时间,或者允许您同时训练更多的网络。要尝试在云中进行深度学习,您可以按照示例步骤设置帐户、将数据复制到云中,并创建集群。在完成初始设置之后,您可以运行您的培训代码,只需要进行最小的更改就可以在云中运行。设置默认集群后,只需指定培训选项“ExecutionEnvironment”、“平行”
在多个gpu上训练云集群上的网络。
在云中配置深度学习 | 笔记 | 了解更多 |
---|---|---|
设置Mathworks云中心和亚马逊帐户 | 一次性设置。 | 云中心入门 |
创建一个集群 | 使用云中心在Amazon Cloud中设置和运行群集。对于深度学习,请选择具有GPU的机器类型,例如P2或G3实例。 | 创建云集群 |
上传数据到云 | 要使用云中的数据,请上传到Amazon S3。使用数据存储来从桌面客户端MATLAB或群集工作人员中访问S3中的数据,而无需更改代码。 | 上传深度学习数据到云 |
如果您使用的Linux计算集群具有机器之间的快速互连(如Infiniband),或者不同机器上的gpu之间的快速互连(如GPUDirect RDMA),那么您可能能够利用MATLAB中的快速多节点支持。金宝app通过设置环境变量,在池中金宝app的所有工作人员上启用这种支持PARALLEL_SERVER_FAST_MULTINODE_GPU_COMMUNICATION
来1
.在集群概要文件管理器中设置此环境变量。
这个特性是NVIDIA NCCL库用于GPU通信的一部分。要配置它,您必须设置额外的环境变量来定义网络接口协议,尤其是nccl_socket_ifname.
.有关更多信息,请参见nccl文件特别是部分nccl环境变量.