用于集群通信的拓扑感知多阶段方法技术

技术编号:35674620 阅读:28 留言:0更新日期:2022-11-23 14:11
在分布式训练中,第一计算节点可以将全局归约运算划分为多个子运算。第一计算节点可以根据第一集群通信算法在该第一计算节点中的第一处理单元集合之间执行归约散布子运算,根据第二集群通信算法在该第一计算节点中的第一处理单元集合和第二计算节点中的第二处理单元集合之间执行全局归约子运算,并根据第一集群通信算法在该第一计算节点的第一处理单元集合之间执行全局聚集子运算。元集合之间执行全局聚集子运算。元集合之间执行全局聚集子运算。

【技术实现步骤摘要】
【国外来华专利技术】用于集群通信的拓扑感知多阶段方法

技术介绍

[0001]随着诸如深度神经网络(Deep Neural Network,DNN)的神经网络迅速发展,各种应用领域(例如,计算机视觉、自然语言处理、语音识别等)都得到了发展,并且会从神经网络固有的多功能性和灵活性中受益。然而,由于神经网络应用日益增加的复杂性和越来越严格的准确性要求,神经网络模型的大小和训练模型所需的训练数据的大小也显著增加,这将不可避免地导致训练时间越来越长,从而对训练模型能够满足不断变化的应用环境的有效性和及时性产生不利影响。
[0002]为了减少训练神经网络模型的时间,可以使用一种采用并行训练的分布式训练系统。一般而言,分布式训练系统可以包括分布在网络上的大量计算节点或服务器,并且将计算任务的子集分配给计算节点或服务器,用于采用并行训练来执行计算。然而,分布式训练系统中的计算节点或服务器之间的数据通信造成了分布式训练系统中可能发生的训练时间的减少量的下限或瓶颈。当分布式训练系统包括计算节点或服务器内部的和之间的各种类型的异构连接或互连时,尤其如此,这些异构连接或互连在延迟、带宽、拓扑等方面表现出不同的特性。这种连接或互连的异构性增加了为分布式训练系统中的计算节点或服务器设计数据通信网络的难度和复杂性。
[0003]此外,由于过量的数据流通过分布式训练系统中的计算节点或服务器之间的特定网络交换机或连接,可能引发网络拥塞,这样可能会由于处理训练结果的延迟而导致训练时间延长。之所以有过量的数据流通过特定网络交换机或连接,可能是因为计算节点或服务器之间发送的路由数据的路径选择失去控制。
附图说明
[0004]参考附图进行详细描述。附图中,附图标记的最左侧数字表示该附图标记第一次出现的附图。不同附图中使用相同的附图标记表示相似或相同的指代。
[0005]图1示出了分布式训练系统可应用的示例环境。
[0006]图2示出了更详细的示例性计算节点。
[0007]图3A示出了将预设数量的节点互相连接的环形配置。
[0008]图3B示出了将预设数量的节点互相连接的减半加倍配置。
[0009]图4示出了示例性集群通信库的示意图。
[0010]图5示出了示例性拓扑感知多阶段算法。
[0011]图6示出了用于计算节点的节点内归约散布阶段的示例性基于环的算法。
[0012]图7示出了用于计算节点的节点内归约散布阶段的示例性减半加倍算法。
[0013]图8示出了节点间全局归约阶段的示例性减半加倍算法。
[0014]图9示出了更详细的节点间全局归约阶段的示例性减半加倍算法。
[0015]图10示出了示例性基于环的集群通信算法。
[0016]图11示出了用并行或重叠的方式执行节点内归约散布阶段、节点间全局归约阶段、节点内全局聚集阶段的示例场景。
[0017]图12示出了示例性胖树(fat

tree)网络拓扑。
[0018]图13示出了使用第一拥塞避免方法的示例场景。
[0019]图14示出了使用第二拥塞避免方法的示例场景。
[0020]图15示出了示例性拓扑感知多阶段方法。
[0021]图16示出了第一示例性网络拥塞避免方法。
[0022]图17示出了第二示例性网络拥塞避免方法。
[0023]图18示出了分布式训练中基于混合架构的示例性并行方法。
具体实施方式
[0024]概述
[0025]如上所述,现有的分布式训练系统由于分布式训练系统中计算节点间的数据通信而对良好可扩展性造成了性能瓶颈。此外,由于网络结构的多样性(包括例如以太网、无限带宽(InfiniBand)、PCIe、NVLink、NVSwitch、QPI/UPI等)和网络特征(例如延迟、带宽和拓扑等)的高度差异,分布式训练系统通常不能很好地利用这种异构类型的连接或互连来执行计算节点中和计算节点之间的集群数据运算以及计算节点之间的数据传输。此外,由于对计算节点间发送的数据进行路由的路径选择可能失去控制,而发生网络拥塞,从而导致过量的数据流通过分布式训练系统中计算节点之间的特定网络交换机或连接,且导致由处理训练结果的延迟引发的训练时间延长。此外,现有的分布式训练系统未能区分用于集群运算的不同类型的底层结构的算法,因此导致较差的性能。
[0026]本公开描述了示例性分布式训练系统。在实施中,示例性分布式训练系统可以采用结构感知的集群通信库,该库使得分布式训练系统能够线性扩展。在实施中,集群通信库可以至少部分地基于对底层结构和支持网络架构的分析来定制通信算法,以获得期望的或最大的效率。在实施中,分布式训练系统可以将基本运算分成多个子运算,每个子运算使用一种类型的结构。
[0027]在实施中,示例性分布式训练系统可以实现混合算法,该混合算法允许多个算法在单个集群运算中共存,并且选择性地采用用于特定结构的算法来提高或最大化整个通信路径的效率。在实施中,分布式训练系统可以采用双进程并行算法,该算法启动两个并发进程,并流水线化(pipeline)节点内和节点间连接的使用,从而通过重叠节点内通信和节点间通信来提高通信效率。
[0028]在实施中,示例性分布式训练系统可以采用基于探测的路由控制机制,该机制生成从连接到路径的映射,从而通过对集群运算中的参与者或过程重新排序并将分布式训练系统上的数据流映射到特定物理链路,来将连接分布或散布到通信网络中的不同汇聚或中间交换机,从而避免网络拥塞。
[0029]本申请描述了多个不同的实施例和实施方式。以下部分描述了适用于实践各种实施方式的示例性框架。接下来,本申请描述了用于实现分布式训练系统的示例性系统、设备和过程。
[0030]示例性环境
[0031]图1示出了可用于实施分布式训练系统的示例性环境100。该环境100可以包括分布式训练系统102。在该示例中,分布式训练系统102可以包括多个计算节点或服务器104

1、104

2、...、104

K(下文统称为计算节点104),其中K是大于1的正整数。在实施中,多个计算节点104可以通过通信网络106彼此通信数据。
[0032]计算节点104可以实施为具有计算/处理和通信能力的任意多种计算设备,包括但不限于服务器、台式电脑、笔记本电脑或便携式电脑、手持设备、上网本、互联网设备、平板电脑、移动设备(如移动电话、个人数字助理、智能电话等)等,或其组合。
[0033]通信网络106可以是无线或有线网络,或其组合。网络106可以是彼此互连并用作单个大型网络(例如,互联网或内联网)的独立网络的集合。这种独立网络的示例包括但不限于电话网络、电缆网络、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和城域网(Metropolitan Area Network,MAN)。此外,独立网络可以是无线或有线网络,或其组合。有线本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种由第一计算节点实施的方法,包括:根据第一集群通信算法在所述第一计算节点中的第一处理单元集合之间执行归约散布子运算;根据第二集群通信算法在所述第一计算节点中的所述第一处理单元集合与第二计算节点中的第二处理单元集合之间执行全局归约子运算;以及根据所述第一集群通信算法在所述第一计算节点中的所述第一处理单元集合之间执行全局聚集子运算。2.根据权利要求1所述的方法,还包括:至少部分基于所述第一计算节点中的所述第一处理单元集合间的节点内连接的类型或带宽选择所述第一集群通信算法。3.根据权利要求1所述的方法,还包括:至少部分基于所述第一计算节点和其他计算节点之间的节点间连接的类型或带宽,和/或,所述第一计算节点和其他计算节点的连接拓扑来选择所述第二集群通信算法。4.根据权利要求1所述的方法,其中所述第一集群通信算法包括基于环的算法,或减半加倍算法。5.根据权利要求1所述的方法,其中根据第一集群通信算法在所述第一计算节点中的第一处理单元集合之间进行归约散布子运算包括:将数据划分为多个数据块;将所述多个数据块分配给所述第一处理单元集合;根据所述第一集群通信算法,在所述第一处理单元集合的第一处理单元处从所述第一处理单元集合的第二处理单元接收数据块;以及在所述第一处理单元处用本地数据块归约所接收的数据块。6.根据权利要求1所述的方法,其中根据第二集群通信算法在所述第一计算节点中的所述第一处理单元集合与第二计算节点中的第二处理单元集合之间执行全局归约子运算包括:所述第一处理单元集合接收所述第二计算节点中的所述第二处理单元集合根据所述第二集群通信算法所获得的归约散布结果的各部分,其中所述第一处理单元集合的每个处理单元与所述第二处理单元集合的相应处理单元形成组,并从所述相应处理单元接收所述归约散布结果的相应部分;以及所述第一处理单元集合通过在所述第一处理单元集合之间执行所述归约散布子运算后获得的归约散布结果的对应本地部分对所述归约散布结果的各部分执行归约。7.根据权利要求1所述的方法,其中根据第一集群通信算法在所述第一计算节点中的第一处理单元集合之间执行全局聚集子运算包括:根据所述第一集群通信算法,在所述第一处理单元集合的第一处理单元处从所述第一处理单元集合的第二处理单元接收数据块;以及在所述第一处理单元处用本地数据块归约所接收的数据块。8.一个或多个机器可读介质,存储有机器可读指令,所述机器可读指令被第一计算节点执行时使得所述第一计算节点执行动作,包括:根据第一集群通信算法在所述第一计算节点中的第一处理单元集合之间执行归约散布子运算;
根据第二集群通信算法在所述第一计算节点中的所述第一处理单元集合与第二计算节点中的第二处理单元集合之间执行全局归约子运算;以及根据所述第一集群通信算法在所述第一计算节点中的所述第一处理单元集合之间执行全局聚集子运算。9.根据权利要求8所述的一个或多个机器可读介质,所述动作还包括:至少部分基于所述第一计算节点中的所述第一处理单元集合间的节点内连接的类型或带宽选择所述第一集群通信算法。10.根据权利要求8所述的一个或多个机器可读介质,所述动作还包括:至少部分基于所述第一计算节点和其他计算节点之间的节点间连接的类型或带宽,和/或,所述第一计算节点和其他计算节点的连接拓扑来选择所述第二集群通信算法。11.根据权利要求8所述的一个或多个机器可读介质,其中所述第一集群通信算法包括基于环的算法,或减半加倍算法。12.根据权利要求8所述的一个或多个机器可读介质,其中根据第一集群通信算法在所述第一计算节点中的第一处理单元集合之间执行归约散布子运算包括:将数据划分为多个数据块;将所述多个数据块分配给所述第一处理单元集合;根据所述第一集群通信算法,在所述第一处理单元集合的第一...

【专利技术属性】
技术研发人员:叶剑西彭立伟宋东洋唐陵波王绍创冉仟元冯飞闫磊董建波段建军杨健
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1