×
嵌入式 > 技术百科 > 详情

深度卷积神经网络CNNs的多GPU并行框架 及其在图像识别的应用

发布时间:2020-06-17 发布时间:
|

Deep CNNs网络的层次模型实际上是一张有向无环图(DAG图),分配到每个模型并行Worker上的层集合,是有向无环图的拓扑排序子集,所有子集组成整个网络的1组模型。

5.2. “十字形”模型划分方法

考虑极端情景:需要训练超大规模Deep CNNs模型,或者使用计算能力相对较强、显存较小(一般在1GB~3GB)的桌面级GeForce系列GPU,则利用模型本身的并行性这种基本的模型划分方法将不再适用。需要将模型再做拆分以保证单个GPU都能存储下对应的子模型。

如图7所示,描述了将模型按“十字形”划分到4 Worker上训练的情景,不仅拆分了模型的可并行部分,也虽然这样的划分在Worker 0和Worker2之间,Worker 1和Worker 3之间达到并行加速效果,却能使得整个模型得以存储在4 GPU上。这种模型划分方法能够适用于训练超大规模网络等特殊模型的需求。

图7 “十字形”模型划分方案示意

6. CNNs网络的模型并行工作引擎

每个模型并行Worker上以一个模型并行执行引擎负责调度本Worker上子模型的执行过程。执行引擎控制所有Worker上的子模型完成前向和后向计算,各自对子模型完成参数更新后,到达主线程同步点,开始下一mini-batch训练。

多GPU模型并行和数据并行的Deep CNNs模型replicas及划分结构如图8所示,在使用4 GPU的场景下,划分了2组Worker Group用于数据并行;每个Worker Group内划分2个Worker用于模型并行。

图8对ImageNet网络的模型并行和数据并行划分

7. 在图像识别上的应用

7.1. 模型训练实验性能

实验环境为一台搭载8核心Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz的服务器,内存为48GB,服务器安装了4块NVIDIA Tesla K20c GPU,单GPU显存大小为4.8GB。

训练同样的Deep CNNs模型,相比于单GPU,使用多GPU结合不同并行模式的加速效果如下表所示:

表2不同并行配置的加速比

配置 对单GPU的加速比

2 GPUs 模型并行 1.71

2 GPUs 数据并行 1.85

4 GPUs 模型并行+数据并行 2.52

4 GPUs 数据并行 2.67

7.2. 模型收敛性

对于目标Deep CNNs模型,在单GPU训练时(对照实验)显存占用量为3.99GB;使用2 GPU模型并行训练时单个GPU上显存占用量为2.15GB,并且在训练相同迭代时训练集、测试集错误率效果都与对照实验完全相同;抽样比照参数一致性,被抽样的参数(同对照实验相比)也都是一样。

尝试更改Deep CNNs模型,训练一个更大的网络,增加滤波器数目,减小步长,增加中间卷积层feature map数目,训练时所需显存将达到9GB以上,使用单个Tesla K20c GPU(4.8GB显存)无法开展训练实验;而多GPU模型并行训练实验中该模型的错误率对比图1模型降低2%。

7.3. 效果展示

图9为图像标签识别的示例,通过对两千多类物体的图像进行训练,可实现对常见物体的自动识别。

图9应用效果展示

8. 结论与展望

本文描述了深度卷积神经网络Deep CNNs的多GPU模型并行和数据并行框架,通过多个Worker Group实现了数据并行,同一Worker Group内多个Worker实现模型并行。框架中实现了三阶段并行流水线掩盖I/O、CPU处理时间;设计并实现了模型并行引擎,提升了模型并行计算执行效率;通过Transfer Layer解决了数据存储访问效率问题。此框架显著提升了深度卷积神经网络训练速度,解决了当前硬件条件下训练大模型的难题。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
分拣机器人的工作原理是什么