当前位置: 首页 > 专利查询>之江实验室专利>正文

一种面向智能计算的分布式异步规约方法和装置制造方法及图纸

技术编号:38402870 阅读:12 留言:0更新日期:2023-08-07 11:13
本发明专利技术提供了一种面向智能计算的分布式异步规约方法和装置,充分利用计计算集群内部的CPU和GPU异构计算资源,GPU只负责梯度计算,将参数更新和梯度规约卸载到CPU上执行。通过全局参数的训练迭代次序更新、全局参数的训练迭代次序同步、全局梯度同步这三个部分完成所有GPU之间的梯度更新和参数计算。有效提升了分布式训练中的通信和计算的并行性,提升了分布式训练的系统效率和性能。布式训练的系统效率和性能。布式训练的系统效率和性能。

【技术实现步骤摘要】
一种面向智能计算的分布式异步规约方法和装置


[0001]本专利技术属于计算机系统智能计算系统领域,尤其涉及一种面向智能计算的分布式异步规约方法和装置。

技术介绍

[0002]深度学习的出现给图像识别、语音处理、计算机视觉等领域带来了巨大的更新。但是随着深度学习模型越来越大,有些大模型的参数量甚至超过了几百亿的参数,如此大的参数量显然无法在单张GPU上完成计算,需要通过构建分布式机器学习系统来分摊算力。同时,因为单张GPU算力有限,在模型训练的时候通过在多台机器和多张GPU卡上构建数据并行等分布式训练方法来加快模型训练,已经成为一种非常普遍的方法。但是,随着GPU等计算设备的计算能力的不断提升,节点之间的通信性能和计算能力的差距越来越大,从而使得分布式训练中的通信开销愈专利技术显。分布式训练过程中的通信开销甚至占用了总训练60%到90&的时间,已经成为制约分布式训练性能提升的主要瓶颈之一。为了提升训练效率,将计算和通信并行起来,以隐藏通信开销成为提升分布式训练效率的主要方法。
[0003]分布式训练可以细分为算法效率和系统效率。算法效率是指优化器的收敛速度。收敛最快的优化器是同步规约,比如mini

SGD。同步规约要求所有节点和所有的GPU的训练迭代次序严格保持一致,在GPU计算梯度后,需要等待所有梯度完成规约,收到所有GPU的梯度信息后再依此更新参数。同步规约的行为和单卡训练是保持一致的,因此具有最高的收敛速度。但是,同步规约中,GPU都需要等待规约和参数更新完成后才能继续计算,从而导致计算和通信的并行性较低,所以其系统效率非常低。相比于同步规约,异步规约并不严格要求所有GPU的训练迭代次序保持一致。以SSP为例,SSP只要求最快的训练节点和最慢的训练节点之间训练迭代次序相差不过指定的阈值即可。因此在异步规约中,可以实现更好的通信和计算并行,特别是计算较慢的节点可以最大程度的降低通信开销。但是目前异步规约算法都是基于参数服务器的架构设计的。参数服务器承担集群内所有GPU的梯度规约和参数更新,实现相当简单灵活,也能满足在小规模集群下的性能需求。但是当集群规模达到一定程度后,参数服务器很容易成为通信的瓶颈,影响整体系统性能的提升。因此,当前智能计算系统更多地是采用基于集合通信的无中心分布式规约方法,这种结构通信效率比参数服务器更高,但是实现方法相对更为服务。当前还没有有效的基于集合通信的分布式异步规约算法。

技术实现思路

[0004]本专利技术的目的在于针对现有技术的不足,提供了一种面向智能计算的分布式异步规约方法和装置。
[0005]本专利技术的目的是通过以下技术方案来实现的:一种面向智能计算的分布式异步规约方法,包括以下步骤:(1)设置计算集群:所述计算集群包括N个计算节点,每个计算节点对应一个CPU;
每个计算节点包括至少一个GPU,将每个计算节点内部的GPU组成一个组;(2)开始新的一轮迭代训练:每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;在完成本地梯度规约后,每个计算节点根据本地参数的陈旧程度继续进行下一次本地参数的迭代训练;(3)完成每一轮迭代训练后,每个计算节点分别计算各自的梯度信息,并保存在各自的到主机内存中;然后通过各自的CPU将主机内存中保存的梯度信息发送给其他计算节点;其他计算节点收到梯度信息后,使用梯度信息更新本地参数,并使用更新后的本地参数重复步骤(2)。
[0006]进一步地,同一个计算节点内的GPU通过NvLink连接。
[0007]进一步地,所述步骤(2)具体包括以下子步骤:(2.1)每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;(2.2)在完成本地梯度规约后,当计算节点i的本地参数的陈旧程度大于阈值stale
max
时,计算节点i的本地参数的陈旧程度为本地参数的训练迭代次序和全局参数的训练迭代次序W
global
之差,则从主机内存M
i
中获取保存的全局参数的训练迭代次序;当主机内存M
i
中保存的全局参数的训练迭代次序大于计算节点i中的全局参数的训练迭代次序时,将主机内存M
i
中保存的全局参数和全局参数的训练迭代次序拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;当主机内存M
i
中保存的全局参数的训练迭代次序等于计算节点i中的全局参数的训练迭代次序时,计算节点i主动发起一次全局参数和全局参数的训练迭代次序同步,获得集群内最新的全局参数和全局参数的训练迭代次序;并将最新的全局参数拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;当计算节点i的本地参数的陈旧程度小于阈值stale
max
时,直接用规约后的梯度更新本地参数并继续进行下一次本地参数的迭代训练;同时,把更新后的本地参数和本地参数的训练迭代次序保存到计算节点i的CPU的主机内存M
i
中。
[0008]进一步地,所述全局参数和全局参数的训练迭代次序同步,具体包括以下子步骤:(a1)当计算节点i收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量V
sync,i
为true;设置一个计时器,当超过设定的时间,就强制终止本次全局参数和全局参数的训练迭代次序同步,计算节点i将自己的原子变量V
sync,i
为设置为false;当计算节点i没有收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量V
sync,i
为false;(a2)下一轮的全局参数的训练迭代次序同步前,先查看每个计算节点的原子变量:当计算节点i的原子变量V
sync,i
为false,则计算节点i主动发起一次全局参数和全局参数的训练迭代次序同步获取集群内最新的全局参数和全局参数的训练迭代次序;当计算节点i的原子变量V
sync,i
为true,则计算节点i等待其他计算节点发起的全局参数和全局参数的训练迭代次序同步完成或超时结束;
(a3)计算节点i把当前最新的本地参数和本地参数的训练迭代次序发送给其他计算节点,同时等待其他计算节点返回各自当前最新的本地参数和本地参数的训练迭代次序或者拒绝同步的回复;(a4)其他计算节点在收到计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求后,根据计算节点i的原子变量V
sync,i
判断之前是否已经收到其他计算节点的全局参数和全局参数的训练迭代次序同步请求;(a5)计算节点i如果收到任何一个拒绝同步的回复,等待超过系统时间T后,跳到子步骤(a1)重新执行;反之,继续执行子步骤(a6);(a6)计算节点i收到所有的其他计算节点返回来的各自的当前最新的本地参数和本地参数的训练迭代次序后,从中选择最小的本地参数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向智能计算的分布式异步规约方法,其特征在于,包括以下步骤:(1)设置计算集群:所述计算集群包括N个计算节点,每个计算节点对应一个CPU;每个计算节点包括至少一个GPU,将每个计算节点内部的GPU组成一个组;(2)开始新的一轮迭代训练:每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;在完成本地梯度规约后,每个计算节点根据本地参数的陈旧程度继续进行下一次本地参数的迭代训练;(3)完成每一轮迭代训练后,每个计算节点分别计算各自的梯度信息,并保存在各自的到主机内存中;然后通过各自的CPU将主机内存中保存的梯度信息发送给其他计算节点;其他计算节点收到梯度信息后,使用梯度信息更新本地参数,并使用更新后的本地参数重复步骤(2)。2.根据权利要求1所述的一种面向智能计算的分布式异步规约方法,其特征在于,同一个计算节点内的GPU通过NvLink连接。3.根据权利要求1所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述步骤(2)具体包括以下子步骤:(2.1)每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;(2.2)在完成本地梯度规约后,当计算节点i的本地参数的陈旧程度大于阈值stale
max
时,计算节点i的本地参数的陈旧程度为本地参数的训练迭代次序和全局参数的训练迭代次序W
global
之差,则从主机内存M
i
中获取保存的全局参数的训练迭代次序;当主机内存M
i
中保存的全局参数的训练迭代次序大于计算节点i中的全局参数的训练迭代次序时,将主机内存M
i
中保存的全局参数和全局参数的训练迭代次序拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;当主机内存M
i
中保存的全局参数的训练迭代次序等于计算节点i中的全局参数的训练迭代次序时,计算节点i主动发起一次全局参数和全局参数的训练迭代次序同步,获得集群内最新的全局参数和全局参数的训练迭代次序;并将最新的全局参数拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;当计算节点i的本地参数的陈旧程度小于阈值stale
max
时,直接用规约后的梯度更新本地参数并继续进行下一次本地参数的迭代训练;同时,把更新后的本地参数和本地参数的训练迭代次序保存到计算节点i的CPU的主机内存M
i
中。4.根据权利要求3所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述全局参数和全局参数的训练迭代次序同步,具体包括以下子步骤:(a1)当计算节点i收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量V
sync,i
为true;设置一个计时器,当超过设定的时间,就强制终止本次全局参数和全局参数的训练迭代次序同步,计算节点i将自己的原子变量V
sync,i
为设置为false;当计算节点i没有收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量V
sync,i
为false;(a2)下一轮的全局参数的...

【专利技术属性】
技术研发人员:李勇曾令仿陈光朱世强赵瑞芳郑焕波
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1