首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于改进的Ring All Reduce算法的面向深度学习的GPU并行方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:上海海洋大学

摘要:本发明公开了一种基于改进的RingAllReduce算法的面向深度学习的GPU并行方法,用于提升数据并行多设备间传输效率,缓解传统参数服务器并行结构带宽损耗问题;另外,利用传统深度学习主干网络包含权重参数较全连接层小,同步开销小而全连接层权重庞大梯度传输开销过高这一特点,将主干网络进行数据并行处理,全连接层采用模型并行处理,解决了数据并行模式难以支撑大规模网络参数及加速延缓的问题。相比其他方法,本方法最终测试与训练精度差异不大,但在加速效果上衰减幅度更小,效果更好,实验也发现,相比Cifar10等类别较少的数据集,该方法在miniImageNet上存在更大的加速优势,因此更适用于海量数据并行训练。

主权项:1.基于改进的RingAllReduce算法的面向深度学习的GPU并行方法,其采用的分类网络包括主干网络、全连接层、Softmax,采用n个节点参与并行训练G0...Gn-1,n为2的指数幂,其中偶数n-k个节点G0,...,Gn-k-1负责主干网络数据并行,Gn-k,...,Gn-1负责模型并行;其中,改进的RingAllReduce算法采用总节点数为2的指数幂n,输入:数据集d={Batch0,Batch1,...,Batchx},Batchx的子集样本Inputy,y∈[0,n-1],输出:样本Inputy的梯度Ty具体步骤如下:步骤A,将数据Inputy及初始化参数分别对应加载到所有G0,G1,G2,...,Gn-1;步骤B,分节点G0,G1,G2,...,Gn-1将接收到的Inputy切分n份;步骤C,分节点与分节点进行配对,配对过的节点不再重复配对;步骤D,传输过程中,各个分节点Gi、将自身存储数据分为第一部分和第二部分,分节点Gi把第一部分数据发送给分节点的第一部分进行累加、并同时接收发送的第二部分数据与自身第二部分数据进行累加;步骤E,令q=q*2,重复步骤D,直到q=n;logn步后完成归约操作;此时G0,G1,G2,...Gn-1拥有份Batchx即Inputy;步骤F,分节点Gi与分节点进行配对,其中配对过的节点不再重复配对;步骤G,分节点与互换对应第一部分或第二部分累加数据Inputy后覆盖对应部分的原有数据,以得到该部分最终数据;步骤H,分节点将接收到的对方的最终数据部分与自身原有的最终数据部分合并;步骤I,令重复步骤G-步骤H,直到q=1,logn步后完成聚合操作;并行方法具体如下:步骤1、进行主干网络数据并行;其中,主干网络输入:数据集d={Batch0,Batch1...Batchj},样本Batchj均分成n-k份得到子集Inputj,j∈[0,n-k-1];步骤1-1G0...Gn-k-1同时加载;步骤1-2自G0向Gn-k-1卷积操作提取特征;步骤1-3自Gn-k-1向G0完成卷积的权重梯度、偏差梯度计算;步骤1-4G0...Gn-k-1权重的计算后,使用改进的RingAllReduce算法进行交换汇总平均,输出Ti,此时G0...Gn-k-1拥有相同梯度信息;步骤1-5G0...Gn-k-1使用Ti更新网络参数netdata;步骤1-6经过若干次迭代后G0...Gn-k-1使用改进的RingAllReduce算法输出一份完整netdata,网络权重weight,偏差bias,偏差权重biasweight;步骤2:进行全连接层模型并行,使用主干网络输出netdata,网络权重weight,偏差bias,偏差权重biasweight,步骤2-1全连接层正向传播为netdata与weight乘积加上bias与biasweight乘积,对全连接层按照主干网络输出纬度进行分割,使用Gn-k...Gn-2、Gn-1K个节点,采用等量的方式切分后得到模型并行正向传播输入:netdatal;l∈[n-k,n-1],weightl;l∈[n-k,n-1],biasl;l∈[n-k,n-1],biasweightl;l∈[n-k,n-1];参与模型并行的节点Gn-k...Gn-2、Gn-1使用改进的RingAllReduce算法交换netdatal;l∈[n-k,n-1],后合并数据,各自得到:netdatal′;l∈[n-k,n-1];步骤2-2Gn-k...Gn-2、Gn-1将netdatal′;l∈[n-k,n-1]与各自weightl;l∈[n-k,n-1],及biasl;l∈[n-k,n-1]计算,输出Glfc_output;l∈[n-k,n-1];步骤2-3Gn-k...Gn-2、Gn-1使用改进的RingAllReduce算法交换biasl;l∈[n-k,n-1],汇总后与biasweightl;l∈[n-k,n-1]相乘再加上步骤2-2中的Gifc_output得到新的Glfc_output′;l∈[n-k,n-1];步骤2-4Gn-k...Gn-2、Gn-1使用改进的RingAllReduce算法互换各自Glfc_output′;l∈[n-k,n-1]后合并得到最终Glfc_output″;l∈[n-k,n-1];步骤2-5全连接层反向传播为梯度gradient与特征netdata相乘得权重梯度weightgradient,偏差bias与gradient相乘得偏差梯度biasgradient,gradient与权重weight相乘得输入梯度netdatagradinet;传播时,模型并行先将参数梯度gradient采用等量的方式切分得到:gradientl,l∈[n-k,n-1],然后与netdatal;l∈[n-k,n-1]、weightl;l∈[n-k,n-1]以及biasl;l∈[n-k,n-1]作为输入进行反向传播,具体流程如下:Gn-k...Gn-2、Gn-1使用改进的RingAllReduce算法交换gradientl,l∈[n-k,n-1]、netdatal;l∈[n-k,n-1]得完整梯度gradientl′,l∈[n-k,n-1]及网络参数netdatal″;l∈[n-k,n-1];步骤2-6Gn-k...Gn-2、Gn-1将步骤2-5中得到的完整梯度gradientl′,l∈[n-k,n-1]与网络参数netdatal″;l∈[n-k,n-1]乘积得weightgradientl′,l∈[n-k,n-1];步骤2-7节点Gn-k...Gn-2、Gn-1使用完整梯度gradientl′,l∈[n-k,n-1]与weightl;l∈[n-k,n-1]相乘得netdatagradinetl,l∈[n-k,n-1]后对其进行归约操作;步骤2-8Gn-k...Gn-2、Gn-1使用改进的RingAllReduce算法交换biasl;l∈[n-k,n-1]得到biasl′;l∈[n-k,n-1];步骤2-9节点Gn-k...Gn-2、Gn-1将步骤2-6中得到的weightgradientl′,l∈[n-k,n-1]与步骤2-8中的biasl′;l∈[n-k,n-1]乘积得biasgradientl′;l∈[n-k,n-1];至此完成整个训练流程。

全文数据:

权利要求:

百度查询: 上海海洋大学 基于改进的Ring All Reduce算法的面向深度学习的GPU并行方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。