CN115277454A - 用于分布式深度学习训练的聚合通信方法 - Google Patents
用于分布式深度学习训练的聚合通信方法 Download PDFInfo
- Publication number
- CN115277454A CN115277454A CN202210901380.0A CN202210901380A CN115277454A CN 115277454 A CN115277454 A CN 115277454A CN 202210901380 A CN202210901380 A CN 202210901380A CN 115277454 A CN115277454 A CN 115277454A
- Authority
- CN
- China
- Prior art keywords
- aggregation
- communication
- deep learning
- learning training
- distributed deep
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 342
- 238000004220 aggregation Methods 0.000 title claims abstract description 342
- 230000006854 communication Effects 0.000 title claims abstract description 235
- 238000004891 communication Methods 0.000 title claims abstract description 233
- 238000012549 training Methods 0.000 title claims abstract description 122
- 238000013135 deep learning Methods 0.000 title claims abstract description 95
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000008569 process Effects 0.000 claims abstract description 55
- 230000006870 function Effects 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 8
- 230000004888 barrier function Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于分布式深度学习训练的聚合通信方法,其具体步骤包括:S1,收集各个计算节点的执行任务信息,聚合管理器将聚合通信操作所需的聚合通信资源分配给各个计算节点;S2,初始化通信域;S3,注册内存;S4,聚合交换机对接收到的数据执行聚合通信操作,得到当前聚合结果,该聚合交换机向其在可扩展的分层聚合协议树中的上一层的聚合交换机,根聚合交换机进行最终的聚合通信操作,得到最终聚合结果。本发明通过将传统的需要在计算节点进行的聚合通信操作转移到了交换机上执行,提高了计算节点的资源利用率,减缓了网络拥塞,消除了计算节点处理多任务时对聚合通信的影响,降低了分布式深度学习训练过程的通信开销,提升了训练性能。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种用于分布式深度学习训练的聚合通信方法。
背景技术
聚合通信是分布式深度学习训练中最主要的通信方式,是训练时用于梯度信息同步的方式之一,其主要包括Allreduce、Barrier、Broadcast等操作,这些集合类通信操作由于涉及分布式深度学习训练的多个计算节点,常常会对应用程序的并行效率产生巨大的影响。为了进一步减少分布式训练时间,许多研究人员针对聚合通信进行了研究,并提出了多种优化的方法。例如,腾讯公司提出了分层Ring-Allreduce方法,IBM公司提出了BlueConnect方法等。虽然这些方法也很好的提升了聚合通信的效率,但是这些优化方法仅仅是在软件层面上对聚合通信操作进行了改进,改进后的操作依然需要在网络中进行多次通信才能完成整体聚合通信操作,且很容易引入网络拥塞。而且,当分布式深度学习训练系统的规模增大时,聚合通信操作的计算步骤、计算量、进程之间的距离将会相应增大,消息传输延迟给分布式深度学习训练任务带来很大的时间开销,且随着系统规模增加,这种时间开销增加是迅速的,使得软件实现的聚合通信可扩展性较差。
在网计算能够大幅度降低聚合通信时间,极大地提高了分布式深度学习训练的速度。在传统的基于软件的聚合通信操作中,处理器在发起聚合通信操作后,会一直处于阻塞状态,直至聚合通信操作完成。这导致该形式的聚合通信操作难于实现对计算与通信的重叠,造成计算资源的浪费;同时,随着通信数据量的增加,处理器在聚合通信操作中的计算负担愈加沉重。相对于软件实现方式,采用在网计算方式实现聚合通信操作时,将其放到网络硬件(网卡或交换机)上来执行,从而避免受到处理器系统噪声的影响,这进一步加速了聚合通信操作的执行。同时,硬件实现的方式允许分布式深度学习训练任务以非阻塞的方式执行,有效地实现了计算和通信的重叠,缩短了训练时间。目前已经有很多针对在网计算开展的研究,例如Barefoot公司主导提出的SwitchML交换机卸载系统、伊利诺大学提出的iSwitch系统,以及Mellanox公司提出的协议——Scalable Hierarchical Aggregationand Reduction Protocol(SHARP)等。这些研究的实验结果表明了在网计算有助于缓解分布式应用网络通信问题,提升应用的整体性能。
聚合通信库是分布式深度学习训练中执行通信操作的重要部件。目前常用的聚合通信库有Gloo、MPI、NCCL等。如果能够在这些通信库中集成聚合通信在网计算功能,那么将很有可能极大缩短分布式深度学习训练过程中的聚合通信时间,进一步提升分布式深度学习训练的整体性能。当前NVIDIA公司已经在Open MPI和NCCL中集成了SHARP技术,但是OpenMPI是个体系结构比较庞大的通信库,且存在着很多分布式深度学习训练不需要的功能;而NCCL虽然是开源的,但是如果研究人员想要利用使用NCCL的在网计算功能,还需要另外安装一个插件,非常麻烦;虽然Gloo是一套面向分布式深度学习的开源的轻量级聚合通信库,但是它只实现了软件层面的聚合通信操作,并不能利用在网计算功能来加速分布式深度学习训练。
发明内容
针对现有的用于分布式深度学习训练的聚合通信方法所存在的时间开销大、可扩展性较差的问题,本发明公开了一种用于分布式深度学习训练的聚合通信方法,其利用聚合通信操作模块和上下文模块来实现,聚合通信操作模块实现各个计算节点之间数据的归约、广播以及屏障同步操作,上下文模块用于管理通信域的环境,并实现各个计算节点之间的连接,以及完成计算节点之间数据的传输;分布式深度学习训练任务通过若干个计算节点和交换机所构成的计算集群来完成;每个计算节点均包括聚合通信操作模块和上下文模块;将计算集群中的一个计算节点作为聚合管理器,除聚合管理器外的其余的计算节点负责完成分布式深度学习训练任务的计算任务,将集群中的部分交换机设置为聚合交换机;所述的聚合交换机执行数据的聚合通信操作以及数据的转发操作。
所述的通信域的环境,包括执行分布式深度学习训练的进程的编号、进程数目和计算节点地址信息。
所述的聚合通信操作模块利用上下文模块提供的通信功能来实现其聚合通信操作。
所述的聚合管理器用于配置和管理聚合交换机的聚合通信功能,并创建可扩展的分层聚合协议树,根据分布式深度学习训练任务的资源需求分配聚合通信资源,并在分布式深度学习训练任务结束时释放聚合通信资源;
所述的聚合通信资源包括用于实现聚合通信的聚合交换机和安装了可扩展的分层聚合协议守护进程的计算节点。
所述的可扩展的分层聚合协议守护进程用于完成其所在计算节点通道适配器与聚合交换机之间的连接管理,以及完成其所在计算节点与其他计算节点的信息交换。
所述的可扩展的分层聚合协议树是由计算节点作为叶子结点,由聚合交换机作为非叶子节点,由叶子结点和非叶子节点所组成的树形网络拓扑结构,位于该可扩展的分层聚合协议树的最顶层的非叶子节点对应的聚合交换机称为根聚合交换机;在执行聚合通信操作时,叶子结点作为数据源,将参数或/和梯度数据发送给聚合交换机,聚合交换机负责数据的聚合和转发。
所述的用于分布式深度学习训练的聚合通信方法,其具体步骤包括:
S1,在各个计算节点上执行分布式深度学习训练任务;在进行聚合通信操作之前,收集各个计算节点的执行任务信息,然后将该执行任务信息发给聚合管理器;聚合管理器根据收到的执行任务信息,按照分布式深度学习训练任务中各个计算节点的聚合通信需求,将聚合通信操作所需的聚合通信资源分配给各个计算节点;聚合管理器将聚合通信资源信息发送到计算节点的可扩展的分层聚合协议守护进程,并为每个计算节点提供可执行聚合通信操作的聚合交换机;
S2,初始化通信域,通信域包括上下文和进程组,上下文包括计算节点的设备参数信息以及参与分布式深度学习训练任务的进程需要用到的全局变量信息,一个通信域对应一个进程组;按照聚合管理器分配的聚合通信资源以及分布式深度学习训练任务所需的进程,选择相应的计算节点与聚合交换机建立连接,所有参与分布式深度学习训练任务的进程构成通信域的进程组,利用进程组与上下文构建通信域,并对通信域进行初始化,后续的聚合通信操作都通过通信域中的进程组和上下文来实现;
S3,注册内存,从深度学习训练框架获取存储训练参数或/和梯度数据的内存地址,然后将该内存地址进行注册和绑定,以确保该内存地址在分布式深度学习训练过程中不被其他程序所占用,并将该内存地址产生的内存句柄存入哈希表中以备后续使用;
S4,进行聚合通信,从已经注册的内存地址上获取训练参数或/和梯度数据,并将所获取的训练参数或/和梯度数据发送给聚合交换机,当聚合交换机接收到的训练参数或/和梯度数据的数量等于计算节点数量时,聚合交换机对接收到的数据执行聚合通信操作,得到当前聚合结果,该聚合交换机向其在可扩展的分层聚合协议树中的上一层的聚合交换机发送当前聚合结果,直到训练参数或/和梯度数据到达根聚合交换机后,根聚合交换机进行最终的聚合通信操作,得到最终聚合结果,根聚合交换机将最终聚合结果沿由可扩展的分层聚合协议树中的根聚合交换机到计算节点的方向,依次广播给各个计算节点,最终聚合结果到达所有计算节点后,完成聚合通信操作。
所述的执行任务信息包括所执行的分布式深度学习训练任务的任务序号、计算节点名称以及服务质量信息QoS。
所述的深度学习训练框架包括TensorFlow、PyTorch以及MXNet。
所述的通信域的环境,包括执行分布式深度学习训练的进程的编号、进程数目和计算节点地址等信息。
所述的聚合通信操作模块利用上下文模块提供的通信功能来实现其聚合通信操作。
所述的聚合管理器用于配置和管理聚合交换机的聚合通信功能,并创建可扩展的分层聚合协议树,根据分布式深度学习训练任务的资源需求分配聚合通信资源,并在分布式深度学习训练任务结束时释放聚合通信资源。
所述的聚合通信资源包括用于实现聚合通信的聚合交换机和安装了可扩展的分层聚合协议守护进程的计算节点。
所述的可扩展的分层聚合协议守护进程用于完成其所在计算节点通道适配器(HCA)与聚合交换机之间的连接管理,以及完成其所在计算节点与其他计算节点的信息交换。
所述的可扩展的分层聚合协议树是由计算节点作为叶子结点,由聚合交换机作为非叶子节点,由叶子结点和非叶子节点所组成的树形网络拓扑结构,位于该可扩展的分层聚合协议树的最顶层的非叶子节点对应的聚合交换机称为根聚合交换机。在执行聚合通信操作时,叶子结点作为数据源,将参数或/和梯度数据发送给聚合交换机,聚合交换机负责数据的聚合和转发。
所述的聚合交换机用于执行数据的聚合通信操作以及数据的转发操作。
本发明公开了一种分布式深度学习训练的聚合通信方法,其具体步骤包括:
S1,在各个计算节点上执行分布式深度学习训练任务;在进行聚合通信之前,收集各个计算节点的执行任务信息,执行任务信息包括所执行的分布式深度学习训练任务的任务序号、计算节点名称以及服务质量信息QoS,然后将该执行任务信息发给聚合管理器。聚合管理器根据收到的执行任务信息,按照分布式深度学习训练任务中各个计算节点的聚合通信需求,将聚合通信操作所需的聚合通信资源分配给各个计算节点。聚合管理器将聚合通信资源信息发送到计算节点的可扩展的分层聚合协议守护进程,并为每个计算节点提供可执行聚合通信操作的聚合交换机;
S2,初始化通信域,通信域包括上下文(context)和进程组(group),上下文包括计算节点的设备参数信息以及参与分布式深度学习训练任务的进程需要用到的全局变量信息等,一个通信域对应一个进程组。按照聚合管理器分配的聚合通信资源以及分布式深度学习训练任务所需的进程,选择相应的计算节点与聚合交换机建立连接,所有参与分布式深度学习训练任务的进程构成通信域的进程组,利用进程组与上下文构建通信域,并对通信域进行初始化,后续的聚合通信过程都通过通信域中的进程组和上下文来实现。所述的通信域中的进程发起聚合通信请求后,计算节点将进程需要的训练参数或/和梯度数据发送到其直接连接的聚合交换机上;
S3,注册内存,从深度学习训练框架获取存储训练参数或/和梯度数据的内存地址,然后将该内存地址进行注册和绑定,以确保该内存地址在分布式深度学习训练过程中不被其他程序所占用,并将该内存地址产生的内存句柄存入哈希表中以备后续使用;深度学习训练框架包括TensorFlow、PyTorch以及MXNet等。
S4,进行聚合通信,从已经注册的内存地址上获取训练参数或/和梯度数据,并将所获取的训练参数或/和梯度数据发送给聚合交换机,当聚合交换机接收到的训练参数或/和梯度数据的数量等于计算节点数量时,聚合交换机对接收到的数据执行聚合通信操作,得到当前聚合结果,该聚合交换机向其在可扩展的分层聚合协议树中的上一层的聚合交换机,发送当前聚合结果,直到训练参数或/和梯度数据到达根聚合交换机后,根聚合交换机进行最终的聚合通信操作,得到最终聚合结果,然后将最终聚合结果沿由可扩展的分层聚合协议树中的根聚合交换机到计算节点的方向,依次广播给各个计算节点,最终聚合结果到达所有计算节点后,完成聚合通信操作。
本发明的有益效果为:
本发明公开了一种分布式深度学习训练的聚合通信方法,获得了以下优势:通过将聚合通信操作从计算节点转移到交换机上,能够极大地减少网络中的数据流量,减缓了网络拥塞,很大程度降低了分布式深度学习训练过程中的通信开销。利用ImageNet数据集和VGG19、AlexNet以及ResNet-50三个深度学习神经网络模型对本发明的聚合通信方法进行了评估,实验结果证明能够极大地加速了分布式深度学习的训练速度,同时由于通信库不改变神经网络训练的流程,所以不会改变模型的收敛精度。相比于OpenMPI和NCCL这两个通信库,本发明的聚合通信方法的实现结构相对简洁,代码量少,不存在分布式深度学习不需要的多余模块,方便研究人员使用,而且通信开销较少;相比于Gloo通信库,本发明的聚合通信方法能够利用在网计算功能来完成聚合通信,极大地减小了分布式深度学习训练的通信开销,加速了训练速度。
附图说明
图1为本发明方法的实现原理图;
图2为本发明的可扩展的分层聚合协议树的拓扑图;
图3为不同数据大小的本发明聚合操作和Gloo聚合通信操作的延迟对比;
图4为VGG19、AlexNet以及ResNet-50三个网络模型利用本发明聚合操作和Gloo通信库进行分布式深度学习训练通信时的吞吐量对比。
具体实施方式
为了更好的了解本发明内容,这里给出一个实施例。
本发明公开了一种用于分布式深度学习训练的聚合通信方法,其利用聚合通信操作模块和上下文(context)模块来实现,并利用可扩展的分层聚合协议实现其在网计算功能。聚合通信操作模块用于实现各个计算节点之间数据的归约、广播以及屏障同步操作,上下文模块用于管理通信域的环境,并实现各个计算节点之间的连接,以及完成计算节点之间数据的传输。分布式深度学习训练任务通过若干个计算节点和交换机所构成的计算集群来完成。将计算集群中的一个计算节点作为聚合管理器,除聚合管理器外的其余的计算节点负责完成分布式深度学习训练任务的计算任务,将集群中的部分交换机设置为聚合交换机。
所述的可扩展的分层聚合协议,用于将原本需要在计算节点执行的聚合通信操作转移到交换机上执行。
所述的通信域的环境,包括执行分布式深度学习训练的进程的编号、进程数目和计算节点地址等信息。
所述的聚合通信操作模块利用上下文模块提供的通信功能来实现其聚合通信操作。
所述的聚合管理器是一个系统管理组件,用于配置和管理聚合交换机的聚合通信功能,并创建可扩展的分层聚合协议树,根据分布式深度学习训练任务的资源需求分配聚合通信资源,并在分布式深度学习训练任务结束时释放聚合通信资源。
所述的聚合通信资源包括用于实现聚合通信的聚合交换机和安装了可扩展的分层聚合协议守护进程的计算节点。
所述的可扩展的分层聚合协议守护进程是一个运行在计算节点的软件,用于完成其所在计算节点通道适配器(HCA)与聚合交换机之间的连接管理,以及完成其所在计算节点与其他计算节点的信息交换。
所述的可扩展的分层聚合协议树是由计算节点作为叶子结点,由聚合交换机作为非叶子节点,由叶子结点和非叶子节点所组成的树形网络拓扑结构,位于该可扩展的分层聚合协议树的最顶层的非叶子节点对应的聚合交换机称为根聚合交换机。在执行聚合通信操作时,叶子结点作为数据源,将参数或/和梯度数据发送给聚合交换机,聚合交换机负责数据的聚合和转发。
所述的聚合交换机用于执行数据的聚合通信操作以及数据的转发操作。
本发明公开了一种分布式深度学习训练的聚合通信方法,其具体步骤包括:
S1,在各个计算节点上执行分布式深度学习训练任务;在进行聚合通信之前,收集各个计算节点的执行任务信息,执行任务信息包括所执行的分布式深度学习训练任务的任务序号、计算节点名称以及服务质量信息QoS,然后将该执行任务信息发给聚合管理器。聚合管理器根据收到的执行任务信息,按照分布式深度学习训练任务中各个计算节点的聚合通信需求,将聚合通信操作所需的聚合通信资源分配给各个计算节点。聚合管理器将聚合通信资源信息发送到计算节点的可扩展的分层聚合协议守护进程,并为每个计算节点提供可执行聚合通信操作的聚合交换机;
S2,初始化通信域,通信域包括上下文(context)和进程组(group),上下文包括计算节点的设备参数信息以及参与分布式深度学习训练任务的进程需要用到的全局变量信息等,一个通信域对应一个进程组。按照聚合管理器分配的聚合通信资源以及分布式深度学习训练任务所需的进程,选择相应的计算节点与聚合交换机建立连接,所有参与分布式深度学习训练任务的进程构成通信域的进程组,利用进程组与上下文构建通信域,并对通信域进行初始化,后续的聚合通信过程都通过通信域中的进程组和上下文来实现。所述的通信域中的进程发起聚合通信请求后,计算节点将进程需要的训练参数或/和梯度数据发送到其直接连接的聚合交换机上;
S3,注册内存,从深度学习训练框架获取存储训练参数或/和梯度数据的内存地址,然后将该内存地址进行注册和绑定,以确保该内存地址在分布式深度学习训练过程中不被其他程序所占用,并将该内存地址产生的内存句柄存入哈希表中以备后续使用;深度学习训练框架包括TensorFlow、PyTorch以及MXNet等。
S4,进行聚合通信,从已经注册的内存地址上获取训练参数或/和梯度数据,并将所获取的训练参数或/和梯度数据发送给聚合交换机,当聚合交换机接收到的训练参数或/和梯度数据的数量等于计算节点数量时,聚合交换机对接收到的数据执行聚合通信操作,得到当前聚合结果,该聚合交换机向其在可扩展的分层聚合协议树中的上一层的聚合交换机,发送当前聚合结果,直到训练参数或/和梯度数据到达根聚合交换机后,根聚合交换机进行最终的聚合通信操作,得到最终聚合结果,然后将最终聚合结果沿由可扩展的分层聚合协议树中的根聚合交换机到计算节点的方向,依次广播给各个计算节点,最终聚合结果到达所有计算节点后,完成聚合通信操作。
不管是基于Ring、Tree算法的聚合通信操作,节点之间都会有频繁的数据传输,而基于本发明的在网计算过程,不仅算法高效简单,而且能够减少网络中传输的数据量,消除网络可能发生的拥塞。所述的聚合通信的在网计算过程,首先,聚合管理器给计算节点和聚合节点分配资源并构建进行聚合通信操作的可扩展的分层聚合协议树;其次,计算节点的可扩展的分层聚合协议守护进程根据聚合管理器分配的资源和需要进行聚合通信操作的进程组构建并初始化通信域;然后,该通信域中的进程发起聚合通信请求,计算节点将数据发送到其直接连接的聚合交换机上;最后,聚合交换机对接收到的数据进行聚合通信操作并往父聚合节点发送聚合结果,依次进行聚合通信操作直到到达根聚合交换机,根聚合交换机执行最后的聚合通信操作并将结果广播回各个子节点。
图1为本发明方法的实现原理图,其利用聚合通信操作模块和上下文模块来实现。聚合通信操作模块负责执行归约、广播和屏障同步等聚合通信操作,上下文模块负责执行各个计算节点之间、计算节点与交换机之间的通信。聚合通信操作模块利用上下文模块的点对点通信功能来实现归约、广播和屏障同步等聚合通信操作。
图2是本发明的可扩展的分层聚合协议树的拓扑图,由图2可见,其由聚合管理器、计算节点和聚合交换机组成。在执行聚合通信操作时,数据从计算节点发送到聚合交换机,聚合交换机则执行聚合通信操作,得到聚合通信操作结果,并将聚合通信操作结果向上往父聚合交换机发送,经过各个层的聚合,最后到达根聚合交换机,根聚合交换机则将最终的聚合通信操作结果往计算节点方向广播,最终各计算节点都获得最终的聚合结果。
我们在由1个聚合管理器、4个计算节点和1个聚合交换机组成的集群中进行了实验。图3和图4分别展示了实验结果。图3展示的是我们采用可扩展的分层聚合协议和Gloo分别做全归约、归约、广播和全收集操作的实验结果,可以看到在这四种操作中,可扩展的分层聚合协议完成操作所需要的时间开销都比Gloo低,明显降低了完成这些操作的时间开销。图4展示的是在进行分布式深度学习训练时,分别采用可扩展的分层聚合协议和Gloo时,各个神经网络模型训练的吞吐量,可以看到在VGG19和AlexNet神经网络模型的训练中,可扩展的分层聚合协议在四个批量大小中都表现出比Gloo高得多的吞吐量;在ResNet50神经网络模型中,可扩展的分层聚合协议在16、32和64这三个批量大小下同样是有着比Gloo高的吞吐量,而在128批量大小下则跟Gloo持平。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种用于分布式深度学习训练的聚合通信方法,其特征在于,
其利用聚合通信操作模块和上下文模块来实现,聚合通信操作模块实现各个计算节点之间数据的归约、广播以及屏障同步操作,上下文模块管理通信域的环境,并实现各个计算节点之间的连接,以及完成计算节点之间数据的传输;分布式深度学习训练任务通过若干个计算节点和交换机所构成的计算集群来完成;每个计算节点均包括聚合通信操作模块和上下文模块;将计算集群中的一个计算节点作为聚合管理器,除聚合管理器外的其余的计算节点负责完成分布式深度学习训练任务的计算任务,将集群中的部分交换机设置为聚合交换机;所述的聚合交换机执行数据的聚合通信操作以及数据的转发操作。
2.如权利要求1所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的通信域的环境,包括执行分布式深度学习训练的进程的编号、进程数目和计算节点地址信息。
3.如权利要求1所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的聚合通信操作模块利用上下文模块提供的通信功能来实现其聚合通信操作。
4.如权利要求1所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的聚合管理器用于配置和管理聚合交换机的聚合通信功能,并创建可扩展的分层聚合协议树,根据分布式深度学习训练任务的资源需求分配聚合通信资源,并在分布式深度学习训练任务结束时释放聚合通信资源;
所述的聚合通信资源包括用于实现聚合通信的聚合交换机和安装了可扩展的分层聚合协议守护进程的计算节点。
5.如权利要求4所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的可扩展的分层聚合协议守护进程用于完成其所在计算节点通道适配器与聚合交换机之间的连接管理,以及完成其所在计算节点与其他计算节点的信息交换。
6.如权利要求5所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的可扩展的分层聚合协议树是由计算节点作为叶子结点,由聚合交换机作为非叶子节点,由叶子结点和非叶子节点所组成的树形网络拓扑结构,位于该可扩展的分层聚合协议树的最顶层的非叶子节点对应的聚合交换机称为根聚合交换机;在执行聚合通信操作时,叶子结点作为数据源,将参数或/和梯度数据发送给聚合交换机,聚合交换机负责数据的聚合和转发。
7.如权利要求6所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的用于分布式深度学习训练的聚合通信方法,其具体步骤包括:
S1,在各个计算节点上执行分布式深度学习训练任务;在进行聚合通信操作之前,收集各个计算节点的执行任务信息,然后将该执行任务信息发给聚合管理器;聚合管理器根据收到的执行任务信息,按照分布式深度学习训练任务中各个计算节点的聚合通信需求,将聚合通信操作所需的聚合通信资源分配给各个计算节点;聚合管理器将聚合通信资源信息发送到计算节点的可扩展的分层聚合协议守护进程,并为每个计算节点提供可执行聚合通信操作的聚合交换机;
S2,初始化通信域,通信域包括上下文和进程组,上下文包括计算节点的设备参数信息以及参与分布式深度学习训练任务的进程需要用到的全局变量信息,一个通信域对应一个进程组;按照聚合管理器分配的聚合通信资源以及分布式深度学习训练任务所需的进程,选择相应的计算节点与聚合交换机建立连接,所有参与分布式深度学习训练任务的进程构成通信域的进程组,利用进程组与上下文构建通信域,并对通信域进行初始化,后续的聚合通信操作都通过通信域中的进程组和上下文来实现;
S3,注册内存,从深度学习训练框架获取存储训练参数或/和梯度数据的内存地址,然后将该内存地址进行注册和绑定,以确保该内存地址在分布式深度学习训练过程中不被其他程序所占用,并将该内存地址产生的内存句柄存入哈希表中以备后续使用;
S4,进行聚合通信,从已经注册的内存地址上获取训练参数或/和梯度数据,并将所获取的训练参数或/和梯度数据发送给聚合交换机,当聚合交换机接收到的训练参数或/和梯度数据的数量等于计算节点数量时,聚合交换机对接收到的数据执行聚合通信操作,得到当前聚合结果,该聚合交换机向其在可扩展的分层聚合协议树中的上一层的聚合交换机发送当前聚合结果,直到训练参数或/和梯度数据到达根聚合交换机后,根聚合交换机进行最终的聚合通信操作,得到最终聚合结果,根聚合交换机将最终聚合结果沿由可扩展的分层聚合协议树中的根聚合交换机到计算节点的方向,依次广播给各个计算节点,最终聚合结果到达所有计算节点后,完成聚合通信操作。
8.如权利要求7所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的执行任务信息包括所执行的分布式深度学习训练任务的任务序号、计算节点名称以及服务质量信息QoS。
9.如权利要求7所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的深度学习训练框架包括TensorFlow、PyTorch以及MXNet。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901380.0A CN115277454B (zh) | 2022-07-28 | 2022-07-28 | 用于分布式深度学习训练的聚合通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901380.0A CN115277454B (zh) | 2022-07-28 | 2022-07-28 | 用于分布式深度学习训练的聚合通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115277454A true CN115277454A (zh) | 2022-11-01 |
CN115277454B CN115277454B (zh) | 2023-10-24 |
Family
ID=83771369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901380.0A Active CN115277454B (zh) | 2022-07-28 | 2022-07-28 | 用于分布式深度学习训练的聚合通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115277454B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366467A (zh) * | 2023-05-29 | 2023-06-30 | 北京大学 | 服务器无感知的分布式训练软件定义聚合通信框架和方法 |
CN117332881A (zh) * | 2023-11-27 | 2024-01-02 | 荣耀终端有限公司 | 分布式训练方法及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9210048B1 (en) * | 2011-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Clustered dispersion of resource use in shared computing environments |
CN107533518A (zh) * | 2015-01-20 | 2018-01-02 | 乌尔特拉塔有限责任公司 | 用于容错对象存储器结构的分布式索引 |
CN113297127A (zh) * | 2020-02-21 | 2021-08-24 | 深圳致星科技有限公司 | 一种大规模分布式训练集群的参数更新方法、平台系统 |
CN113326900A (zh) * | 2021-06-30 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 联邦学习模型的数据处理方法、装置及存储介质 |
CN113553279A (zh) * | 2021-07-30 | 2021-10-26 | 中科计算技术西部研究院 | 一种rdma通信加速集合通信的方法及系统 |
US11176489B1 (en) * | 2018-04-17 | 2021-11-16 | Amazon Technologies, Inc. | Optimal message scheduling for aggregation |
CN114363248A (zh) * | 2020-09-29 | 2022-04-15 | 华为技术有限公司 | 计算系统、加速器、交换平面及聚合通信方法 |
-
2022
- 2022-07-28 CN CN202210901380.0A patent/CN115277454B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9210048B1 (en) * | 2011-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Clustered dispersion of resource use in shared computing environments |
CN107533518A (zh) * | 2015-01-20 | 2018-01-02 | 乌尔特拉塔有限责任公司 | 用于容错对象存储器结构的分布式索引 |
US11176489B1 (en) * | 2018-04-17 | 2021-11-16 | Amazon Technologies, Inc. | Optimal message scheduling for aggregation |
CN113297127A (zh) * | 2020-02-21 | 2021-08-24 | 深圳致星科技有限公司 | 一种大规模分布式训练集群的参数更新方法、平台系统 |
CN114363248A (zh) * | 2020-09-29 | 2022-04-15 | 华为技术有限公司 | 计算系统、加速器、交换平面及聚合通信方法 |
CN113326900A (zh) * | 2021-06-30 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 联邦学习模型的数据处理方法、装置及存储介质 |
CN113553279A (zh) * | 2021-07-30 | 2021-10-26 | 中科计算技术西部研究院 | 一种rdma通信加速集合通信的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366467A (zh) * | 2023-05-29 | 2023-06-30 | 北京大学 | 服务器无感知的分布式训练软件定义聚合通信框架和方法 |
CN116366467B (zh) * | 2023-05-29 | 2023-08-08 | 北京大学 | 服务器无感知的分布式训练软件定义聚合通信框架和方法 |
CN117332881A (zh) * | 2023-11-27 | 2024-01-02 | 荣耀终端有限公司 | 分布式训练方法及电子设备 |
CN117332881B (zh) * | 2023-11-27 | 2024-04-05 | 荣耀终端有限公司 | 分布式训练方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115277454B (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Accelerating federated learning over reliability-agnostic clients in mobile edge computing systems | |
EP3143511B1 (en) | Method and apparatus for affinity-based network configuration | |
CN115277454A (zh) | 用于分布式深度学习训练的聚合通信方法 | |
US11210277B2 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
Xiao et al. | Optimizing resource-efficiency for federated edge intelligence in IoT networks | |
CN106201720B (zh) | 虚拟对称多处理虚拟机创建方法、数据处理方法及系统 | |
Cao et al. | HADFL: Heterogeneity-aware decentralized federated learning framework | |
CN112235344A (zh) | 一种面向分布式机器学习的稀疏通信模型的实现方法 | |
CN113515341A (zh) | 一种灵活的分布式ai训练云平台部署方法及相关平台 | |
Dichev et al. | Optimization of collective communication for heterogeneous hpc platforms | |
CN114884908A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
Kim et al. | Efficient large-scale deep learning framework for heterogeneous multi-GPU cluster | |
Kanwal et al. | A genetic based leader election algorithm for IoT cloud data processing | |
Feng et al. | In-network aggregation for data center networks: A survey | |
CN104618480B (zh) | 基于网络链路利用率驱动的云系统资源分配方法 | |
CN102427420B (zh) | 基于图模式匹配的虚拟网络映射方法及装置 | |
Temuçin et al. | Efficient multi-path NVLink/PCIe-aware UCX based collective communication for deep learning | |
Doan et al. | Reusing sub-chains of network functions to support mec services | |
CN113608858A (zh) | 一种基于MapReduce架构的数据同步用块任务执行系统 | |
CN102611752A (zh) | 一种电信运营商参与对等计算技术的监管服务器的实现方法 | |
CN112445675B (zh) | 基于层树网络的大规模并行程序性能数据快速收集方法 | |
Fang et al. | Accelerating Distributed Training With Collaborative In-Network Aggregation | |
CN113986222A (zh) | 云计算的api接口翻译系统 | |
Goldsztajn et al. | Server saturation in skewed networks | |
Yuan et al. | Computing resource allocation scheme based on edge computing under augmented reality application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |