神经网络是固有的平行算法。您可以通过使用并行计算工具箱™来利用这种并行性,以跨多核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®。 |
培训情景 | 建议书 | 学到更多 |
---|---|---|
在您的本地机器或云中交互式 | 用一个议案 循环训练多个网络,并使用绘图结果outputfcn. 。默认情况下在本地运行,或选择其他群集配置文件。 |
使用Parcom来培训多个深度学习网络 |
在您当地机器或云中的背景中 | 用Parfeval. 在没有阻止您当地的matlab的情况下训练,并且使用绘图结果outputfcn. 。默认情况下在本地运行,或选择其他群集配置文件。 |
|
在群集中,关闭您的本地机器 | 使用批 将培训代码发送到群集的功能。您可以在以后关闭MATLAB和FETCH结果。 |
向群集发送深度学习批处理作业 |
如果您的深度学习培训需要数小时或几天,您可以在云中租用高性能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
。在群集配置文件管理器中设置此环境变量。
此功能是GPU通信的NVIDIA NCCL库的一部分。要配置它,必须设置其他环境变量以定义网络接口协议,尤其是nccl_socket_ifname.
。有关更多信息,请参阅nccl文件特别是部分nccl环境变量。