深度卷积神经网络cnns的多gpu并行框架 及其在图像识别的应用-皇冠最新app版本

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

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

发布时间:2026-06-02 发布时间:
|

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解决了数据存储访问效率问题。此框架显著提升了深度卷积神经网络训练速度,解决了当前硬件条件下训练大模型的难题。


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

网站地图