CN115277454B - 用于分布式深度学习训练的聚合通信方法 - Google Patents

用于分布式深度学习训练的聚合通信方法 Download PDF

Info

Publication number
CN115277454B
CN115277454B CN202210901380.0A CN202210901380A CN115277454B CN 115277454 B CN115277454 B CN 115277454B CN 202210901380 A CN202210901380 A CN 202210901380A CN 115277454 B CN115277454 B CN 115277454B
Authority
CN
China
Prior art keywords
aggregation
communication
deep learning
switch
learning training
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.)
Active
Application number
CN202210901380.0A
Other languages
English (en)
Other versions
CN115277454A (zh
Inventor
董德尊
黄泽彪
王笑雨
于恩达
汪杨海
杨维铃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202210901380.0A priority Critical patent/CN115277454B/zh
Publication of CN115277454A publication Critical patent/CN115277454A/zh
Application granted granted Critical
Publication of CN115277454B publication Critical patent/CN115277454B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection 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 (3)

1.一种用于分布式深度学习训练的聚合通信方法,其特征在于,
其利用聚合通信操作模块和上下文模块来实现,聚合通信操作模块实现各个计算节点之间数据的归约、广播以及屏障同步操作,上下文模块管理通信域的环境,并实现各个计算节点之间的连接,以及完成计算节点之间数据的传输;分布式深度学习训练任务通过若干个计算节点和交换机所构成的计算集群来完成;每个计算节点均包括聚合通信操作模块和上下文模块;将计算集群中的一个计算节点作为聚合管理器,除聚合管理器外的其余的计算节点负责完成分布式深度学习训练任务的计算任务,将集群中的执行数据的聚合通信操作以及数据的转发操作的交换机设置为聚合交换机;
所述的通信域的环境,包括执行分布式深度学习训练的进程的编号、进程数目和计算节点地址信息;
所述的聚合通信操作模块利用上下文模块提供的通信功能来实现其聚合通信操作;
所述的聚合管理器用于配置和管理聚合交换机的聚合通信功能,并创建可扩展的分层聚合协议树,根据分布式深度学习训练任务的资源需求分配聚合通信资源,并在分布式深度学习训练任务结束时释放聚合通信资源;
所述的聚合通信资源包括用于实现聚合通信的聚合交换机和安装了可扩展的分层聚合协议守护进程的计算节点;
所述的可扩展的分层聚合协议守护进程用于完成其所在计算节点通道适配器与聚合交换机之间的连接管理,以及完成其所在计算节点与其他计算节点的信息交换;
所述的可扩展的分层聚合协议树是由计算节点作为叶子结点,由聚合交换机作为非叶子节点,由叶子结点和非叶子节点所组成的树形网络拓扑结构,位于该可扩展的分层聚合协议树的最顶层的非叶子节点对应的聚合交换机称为根聚合交换机;在执行聚合通信操作时,叶子结点作为数据源,将参数或/和梯度数据发送给聚合交换机,聚合交换机负责数据的聚合和转发;
所述的用于分布式深度学习训练的聚合通信方法,其具体步骤包括:
S1,在各个计算节点上执行分布式深度学习训练任务;在进行聚合通信操作之前,收集各个计算节点的执行任务信息,然后将该执行任务信息发给聚合管理器;聚合管理器根据收到的执行任务信息,按照分布式深度学习训练任务中各个计算节点的聚合通信需求,将聚合通信操作所需的聚合通信资源分配给各个计算节点;聚合管理器将聚合通信资源信息发送到计算节点的可扩展的分层聚合协议守护进程,并为每个计算节点提供可执行聚合通信操作的聚合交换机;
S2,初始化通信域,通信域包括上下文和进程组,上下文包括计算节点的设备参数信息以及参与分布式深度学习训练任务的进程需要用到的全局变量信息,一个通信域对应一个进程组;按照聚合管理器分配的聚合通信资源以及分布式深度学习训练任务所需的进程,选择相应的计算节点与聚合交换机建立连接,所有参与分布式深度学习训练任务的进程构成通信域的进程组,利用进程组与上下文构建通信域,并对通信域进行初始化,后续的聚合通信操作都通过通信域中的进程组和上下文来实现;
S3,注册内存,从深度学习训练框架获取存储训练参数或/和梯度数据的内存地址,然后将该内存地址进行注册和绑定,以确保该内存地址在分布式深度学习训练过程中不被其他程序所占用,并将该内存地址产生的内存句柄存入哈希表中以备后续使用;
S4,进行聚合通信,从已经注册的内存地址上获取训练参数或/和梯度数据,并将所获取的训练参数或/和梯度数据发送给聚合交换机,当聚合交换机接收到的训练参数或/和梯度数据的数量等于计算节点数量时,聚合交换机对接收到的数据执行聚合通信操作,得到当前聚合结果,该聚合交换机向其在可扩展的分层聚合协议树中的上一层的聚合交换机发送当前聚合结果,直到训练参数或/和梯度数据到达根聚合交换机后,根聚合交换机进行最终的聚合通信操作,得到最终聚合结果,根聚合交换机将最终聚合结果沿由可扩展的分层聚合协议树中的根聚合交换机到计算节点的方向,依次广播给各个计算节点,最终聚合结果到达所有计算节点后,完成聚合通信操作。
2.如权利要求1所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的执行任务信息包括所执行的分布式深度学习训练任务的任务序号、计算节点名称以及服务质量信息QoS。
3.如权利要求1所述的用于分布式深度学习训练的聚合通信方法,其特征在于,
所述的深度学习训练框架包括TensorFlow、PyTorch以及MXNet。
CN202210901380.0A 2022-07-28 2022-07-28 用于分布式深度学习训练的聚合通信方法 Active CN115277454B (zh)

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 CN115277454A (zh) 2022-11-01
CN115277454B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366467B (zh) * 2023-05-29 2023-08-08 北京大学 服务器无感知的分布式训练软件定义聚合通信框架和方法
CN117332881B (zh) * 2023-11-27 2024-04-05 荣耀终端有限公司 分布式训练方法及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 计算系统、加速器、交换平面及聚合通信方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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通信加速集合通信的方法及系统

Also Published As

Publication number Publication date
CN115277454A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN115277454B (zh) 用于分布式深度学习训练的聚合通信方法
CN108566659B (zh) 一种基于可靠性的5g网络切片在线映射方法
WO2016165392A1 (zh) 一种基于遗传算法的云计算资源调度方法
CN102291467B (zh) 一种适应私有云环境的通信平台和通信方法
CN107357661A (zh) 一种针对混合负载的细粒度gpu资源管理方法
CN108667657B (zh) 一种面向sdn的基于局部特征信息的虚拟网络映射方法
US11210277B2 (en) Distributing and processing streams over one or more networks for on-the-fly schema evolution
CN104123182A (zh) 基于主从架构的MapReduce任务跨数据中心调度系统及方法
CN104754008B (zh) 网络存储节点、网络存储系统以及用于网络存储节点的装置和方法
WO2022141727A1 (zh) 一种基于云上成本的资源部署系统及方法
CN106201720B (zh) 虚拟对称多处理虚拟机创建方法、数据处理方法及系统
CN115408152A (zh) 一种自适应资源匹配获取方法及系统
WO2023207035A1 (zh) 一种数据同步方法、装置、设备及存储介质
US11176489B1 (en) Optimal message scheduling for aggregation
CN111404818B (zh) 一种面向通用多核网络处理器的路由协议优化方法
Malik et al. Optimistic synchronization of parallel simulations in cloud computing environments
Dichev et al. Optimization of collective communication for heterogeneous hpc platforms
Kim et al. Efficient large-scale deep learning framework for heterogeneous multi-GPU cluster
Nguyen et al. Rethinking virtual link mapping in network virtualization
CN103297542A (zh) 一种支持构件在线伸缩的云操作系统总线及均衡方法
CN114884830B (zh) 基于广域网的分布式并行仿真推演系统
CN108829562A (zh) 数据中心的云资源管理方法
WO2023273157A1 (zh) 一种工作流生成方法、装置、设备及存储介质
CN109450809B (zh) 一种数据中心调度系统及方法
CN110058970B (zh) 一种灾难风险模型下的双虚拟机准同步撤离方法

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