【技术实现步骤摘要】
面向分布式深度学习算子并行训练的通信优化方法与系统
[0001]本专利技术涉及分布式深度学习并行训练
,尤其涉及一种面向分布式深度学习算子并行训练的通信优化方法与系统。
技术介绍
[0002]2021年美国斯坦福大学,微软公司和英伟达公司的深度学习团队在SC(International Conference for High Performance Computing, Networking, Storage and Analysis,高性能计算、网络、存储和分析国际会议)会议上发表用算子并行的方法训练大型语言模型的系统Megatron,并且在开源社区GitHub上开源。为了训练单张GPU卡的内存无法容纳的大模型,以及加快模型训练的速度,该方法把一个计算算子拆分到多块GPU卡上并行执行,接着串行地执行一个通信算子,同步各个GPU的计算结果,以保证和原来单计算算子的计算逻辑一致性。但是该方法中,在一台服务器(包括四张NVIDIA1080Ti GPU)的环境下做算子并行训练,通信开销是在影响训练速度的关键路径上。本质原因在 ...
【技术保护点】
【技术特征摘要】
1.一种面向分布式深度学习算子并行训练的通信优化方法,其特征在于,包括:获取模型训练框架的初始计算流图,并确定模型算子并行训练中各计算算子的计算量与计算完成后的对应通信算子的通信量;预先构造不同计算量的计算算子,以及不同通信量的通信算子,并分别执行,获得计算量与计算时间的函数关系式,以及通信量与通信时间的函数关系式,结合计算量与计算时间的函数关系式,以及通信量与通信时间的函数关系式对各计算算子的计算量与计算完成后的对应通信算子的通信量进行不同拆分粒度的切分,选出最优拆分粒度;对于模型算子并行训练中每一计算算子及其计算量,以及每一通信算子及其通信量,均按照所述最优拆分粒度进行拆分,拆分结果为与所述最优拆分粒度相同数目的子计算算子、每一子计算算子对应的计算量、与所述最优拆分粒度相同数目的子通信算子,以及每一通信算子对应的通信量,其中子计算算子与子通信算子并行执行;按照拆分结果对所述初始计算流图进行修改,由所述模型训练框架按照修改后的计算流图执行模型训练。2.根据权利要求1所述的一种面向分布式深度学习算子并行训练的通信优化方法,其特征在于,所述构造不同计算量的计算算子,以及不同通信量的通信算子,并分别执行,获得计算量与计算时间的函数关系式,以及通信量与通信时间的函数关系式包括:遍历每个算子,对于每个算子,在其执行前后加上时间戳,执行若干次后,分别统计每一次执行需要的时间并记录,再求取平均值,作为执行相应算子所需时间,所述每个算子包括:计算算子与通信算子,执行计算算子所需时间即为执行对应计算量所需时间,执行通信算子所需时间即为执行对应通信量所需时间;执行完所有不同计算量的计算算子后,获得执行不同计算量所需时间,执行完所有不同通信量的通信算子后,获得执行不同通信量所需时间,再通过数据拟合,获得计算量与计算时间的函数关系式,以及通信量与通信时间的函数关系式。3.根据权利要求1所述的一种面向分布式深度学习算子并行训练的通信优化方法,其特征在于,所述对各计算算子与通信算子进行不同拆分粒度的切分,选出最优拆分粒度包括:通过评估函数对不同拆分粒度进行评估,评估函数表示为:其中,Cost表示评估值,C表示计算量,N表示通信量;S表示拆分粒度,即拆分后的份数;F
C
表示计算量与计算时间的函数关系式,F
N
表示通信量与通信时间的函数关系式;选出使评估值Cost最小的拆分粒度作为最优拆分粒度。4.根据权利要求1所述的一种面向分布式深度学习算子并行训练的通信优化方法,其特征在于,所述子计算算子与子通信算子并行执行包括:分配两个任务流,称为计算流与通信流,将每个子计算算子依次交给计算流执行,每个子计算算子执行完成后,将对应的子通信算子交给通信流执行,并且在计算流中开始下一个子计算算子的执行。5.一种面向分布式深度学习算子并行训练的通信优化系统,其特征在于,包括:
剖析器,用于获取模型训练框架的初始计算流图,并确定模型算子并行训练中各计算算子的计算量与计算完成后的对应通信算子的通信量,计算算子与通...
【专利技术属性】
技术研发人员:于笑颜,李诚,周泉,王海权,徐伟,许胤龙,
申请(专利权)人:中国科学技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。