一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对大规模系统深度学习数据并行的分级通信优化方法与流程

2022-03-22 20:19:53 来源:中国专利 TAG:

1.本发明涉及一种针对大规模系统深度学习数据并行的分级通信优化方法,属于分布式深度学习技术领域。


背景技术:

2.在深度学习中,模型训练过程主要为读取数据并输入到模型中,计算模型损失函数和模型各层参数梯度,然后利用梯度进行参数更新;在分布式深度学习中,以数据并行为例,各计算节点计算出本地参数梯度,然后通过all-reduce方法,对梯度进行广播后计算获得平均梯度,然后本地进行梯度更新。
3.在tensorflow早期版本中,分布式训练只有ps架构,2016年baidu提出“bring hpc techniques to deep learning”,首次将ring allreduce算法引入到深度学习中,而后nvidia提出nccl通信库,进一步对多gpu并行通信进行优化。上述并行通信算法针对gpu并行进行通信优化,在大规模异构众核系统中,超节点的规模数百倍于gpu并行系统规模,这对通信算法提出了更高的要求。
4.近年来,随着深度学习模型的大小、深度不断增加,hpc和深度学习开始不断融合,在hpc系统上进行深度神经网络模型训练正逐渐成为一种常见应用。随着并行规模的不断增大,对计算节点之间的通信提出了更高要求。在大规模分布式训练时,不可避免的会遇到跨机仓之间的超节点通信,其通信延迟远远大于同机仓超节点之间的通信延迟,因此将hpc系统的分级all-reduce引入到深度学习中是非常有必要的。
5.大规模异构众核系统主要分为计算节点,超节点,机仓三个层次,不同层次之间的计算节点通信的开销并不一致,存在着明显的分级现象,例如同一超节点中计算节点之间的相互通信、同一机仓不同超节点内计算节点之间通信、跨机仓的计算节点之间的通信。目前传统的mpi allreduce算法并未与网络拓扑相结合,在mpi中各个进程基本视为等同,未充分考虑到计算节点间的带宽和延迟的差异,所以不能充分发挥大规模分布式场景下的硬件性能。ring allreduce算法虽然可以充分利用带宽,但随着计算节点数的增多,单个ring值越来越大,延迟将不可接受。


技术实现要素:

6.本发明的目的是提供一种针对大规模系统深度学习数据并行的分级通信优化方法,在大规模分布式深度学习应用中的梯度更新过程中,降低了高延迟通信次数,减少了对带宽的使用,提高了通信效率。
7.为达到上述目的,本发明采用的技术方案是:提供一种针对大规模系统深度学习数据并行的分级通信优化方法,在深度学习网络模型采用数据并行进行训练的过程中,执行以下操作:s1、根据所需计算节点总数,从若干个超节点中选择相同数量的计算节点,用于进行数据并行训练;
将计算节点按超节点进行分组,使得每个分组中计算节点数量相同,其中第0号进程为该组计算节点中负责与其它超节点通信的通信节点;s2、每个计算节点计算出模型参数的梯度后,在分组内部进行mpi_allreduce通信,计算出分组内的平均梯度;s3、各分组内的通信节点采用ring_allreduce算法进行梯度的allreduce操作,计算出所有计算节点的平均梯度;s4、通信节点在分组内部进行broadcast操作,完成所有计算节点的梯度更新。
8.由于上述技术方案的运用,本发明与现有技术相比具有下列优点:本发明一种针对大规模系统深度学习数据并行的分级通信优化方法,在大规模分布式深度学习应用中的梯度更新过程中,只需要进行部分节点之间的跨超节点或跨机仓通信,减少了高延迟通信次数,充分利用了高速网络的通信性能,提高了通信效率。
附图说明
9.附图1为超节点分组内通信的示意图;附图2为通信节点通信的示意图。
具体实施方式
10.实施例:本发明提供一种针对大规模系统深度学习数据并行的分级通信优化方法,在深度学习网络模型采用数据并行进行训练的过程中,执行以下操作:s1、根据所需计算节点总数,从若干个超节点中选择相同数量的计算节点,用于进行数据并行训练;将计算节点按超节点进行分组,使得每个分组中计算节点数量相同,其中第0号进程为该组计算节点中负责与其它超节点通信的通信节点;s2、每个计算节点计算出模型参数的梯度后,在分组内部进行mpi_allreduce通信,计算出分组内的平均梯度;s3、各分组内的通信节点采用ring_allreduce算法进行梯度的allreduce操作,计算出所有计算节点的平均梯度;s4、通信节点在分组内部进行broadcast操作,完成所有计算节点的梯度更新。
11.对上述实施例的进一步解释如下:本发明提出的分布式分级通信优化方法,针对大规模并行深度学习应用进行通信优化,更加适合于大规模异构众核系统,能充分发挥高速网络性能,。
12.本发明技术方案思路为:在深度学习应用的训练过程中,求出模型各参数的梯度后,同一超节点之间利用mpi-allreduce方法进行局部的梯度更新,各超节点上选取一个计算节点为通信节点,然后不同超节点之间,利用ring-allreduce方法将这些通信节点进行梯度平均。
13.该通信算法主要包含以下步骤:1)同级超节点之间进行本地梯度的计算;2)超节点分组内进行allreduce通信;3)通信节点之间进行allreduce通信;
4)通信节点在分组内进行broadcast通信,完成梯度更新。
14.采用上述一种针对大规模系统深度学习数据并行的分级通信优化方法时,其在大规模分布式深度学习应用中的梯度更新过程中,根据网络拓扑特点,只进行部分计算节点之间的跨超节点或跨机仓通信,减少了高延迟通信次数,充分利用了高速网络的通信性能,提高了通信效率。
15.为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:数据并行训练:参与训练的计算节点都拥有模型参数的副本,每个计算节点处理不同的数据,每个训练迭代后将所有计算节点的梯度进行平均并更新到每个计算节点,继续进行下一次迭代。
16.超节点:使用全交换网络的一组计算节点,超节点内部计算节点之间通信性能比跨超节点的计算节点之间通信要高。
17.allreduce:将每个计算节点中的一块数据进行求和并计算平均值,并将计算结果分发到每个计算节点中。
18.上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。


技术特征:
1.一种针对大规模系统深度学习数据并行的分级通信优化方法,其特征在于,在深度学习网络模型采用数据并行进行训练的过程中,执行以下操作:s1、根据所需计算节点总数,从若干个超节点中选择相同数量的计算节点,用于进行数据并行训练;将计算节点按超节点进行分组,使得每个分组中计算节点数量相同,其中第0号进程为该组计算节点中负责与其它超节点通信的通信节点;s2、每个计算节点计算出模型参数的梯度后,在分组内部进行mpi_allreduce通信,计算出分组内的平均梯度;s3、各分组内的通信节点采用ring_allreduce算法进行梯度的allreduce操作,计算出所有计算节点的平均梯度;s4、通信节点在分组内部进行broadcast操作,完成所有计算节点的梯度更新。

技术总结
本发明公开一种针对大规模系统深度学习数据并行的分级通信优化方法,S1、根据所需计算节点总数,从若干个超节点中选择相同数量的计算节点,将计算节点按超节点进行分组;S2、每个计算节点计算出模型参数的梯度后,在分组内部进行MPI_Allreduce通信,计算出分组内的平均梯度;S3、各分组内的通信节点采用Ring_Allreduce算法进行梯度的Allreduce操作,计算出所有计算节点的平均梯度;S4、通信节点在分组内部进行Broadcast操作,完成所有计算节点的梯度更新。本发明在大规模分布式深度学习应用中的梯度更新过程中,减少了高延迟通信次数,充分利用了高速网络的通信性能,提高了通信效率。信效率。信效率。


技术研发人员:刘沙 刘鑫 陈德训 彭超 黄则强 高捷 王宜鹏
受保护的技术使用者:无锡江南计算技术研究所
技术研发日:2021.04.26
技术公布日:2022/3/21
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献