CN116542324B - 一种面向智能计算的分布式异步规约方法和装置 - Google Patents

一种面向智能计算的分布式异步规约方法和装置 Download PDF

Info

Publication number
CN116542324B
CN116542324B CN202310821100.XA CN202310821100A CN116542324B CN 116542324 B CN116542324 B CN 116542324B CN 202310821100 A CN202310821100 A CN 202310821100A CN 116542324 B CN116542324 B CN 116542324B
Authority
CN
China
Prior art keywords
computing
global
computing node
parameters
training iteration
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
CN202310821100.XA
Other languages
English (en)
Other versions
CN116542324A (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310821100.XA priority Critical patent/CN116542324B/zh
Publication of CN116542324A publication Critical patent/CN116542324A/zh
Application granted granted Critical
Publication of CN116542324B publication Critical patent/CN116542324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

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

Description

一种面向智能计算的分布式异步规约方法和装置
技术领域
本发明属于计算机系统智能计算系统领域,尤其涉及一种面向智能计算的分布式异步规约方法和装置。
背景技术
深度学习的出现给图像识别、语音处理、计算机视觉等领域带来了巨大的更新。但是随着深度学习模型越来越大,有些大模型的参数量甚至超过了几百亿的参数,如此大的参数量显然无法在单张GPU上完成计算,需要通过构建分布式机器学习系统来分摊算力。同时,因为单张GPU算力有限,在模型训练的时候通过在多台机器和多张GPU卡上构建数据并行等分布式训练方法来加快模型训练,已经成为一种非常普遍的方法。但是,随着GPU等计算设备的计算能力的不断提升,节点之间的通信性能和计算能力的差距越来越大,从而使得分布式训练中的通信开销愈发明显。分布式训练过程中的通信开销甚至占用了总训练60%到90&的时间,已经成为制约分布式训练性能提升的主要瓶颈之一。为了提升训练效率,将计算和通信并行起来,以隐藏通信开销成为提升分布式训练效率的主要方法。
分布式训练可以细分为算法效率和系统效率。算法效率是指优化器的收敛速度。收敛最快的优化器是同步规约,比如mini-SGD。同步规约要求所有节点和所有的GPU的训练迭代次序严格保持一致,在GPU计算梯度后,需要等待所有梯度完成规约,收到所有GPU的梯度信息后再依此更新参数。同步规约的行为和单卡训练是保持一致的,因此具有最高的收敛速度。但是,同步规约中,GPU都需要等待规约和参数更新完成后才能继续计算,从而导致计算和通信的并行性较低,所以其系统效率非常低。相比于同步规约,异步规约并不严格要求所有GPU的训练迭代次序保持一致。以SSP为例,SSP只要求最快的训练节点和最慢的训练节点之间训练迭代次序相差不过指定的阈值即可。因此在异步规约中,可以实现更好的通信和计算并行,特别是计算较慢的节点可以最大程度的降低通信开销。但是目前异步规约算法都是基于参数服务器的架构设计的。参数服务器承担集群内所有GPU的梯度规约和参数更新,实现相当简单灵活,也能满足在小规模集群下的性能需求。但是当集群规模达到一定程度后,参数服务器很容易成为通信的瓶颈,影响整体系统性能的提升。因此,当前智能计算系统更多地是采用基于集合通信的无中心分布式规约方法,这种结构通信效率比参数服务器更高,但是实现方法相对更为服务。当前还没有有效的基于集合通信的分布式异步规约算法。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种面向智能计算的分布式异步规约方法和装置。
本发明的目的是通过以下技术方案来实现的:一种面向智能计算的分布式异步规约方法,包括以下步骤:
(1)设置计算集群:所述计算集群包括N个计算节点,每个计算节点对应一个CPU;每个计算节点包括至少一个GPU,将每个计算节点内部的GPU组成一个组;
(2)开始新的一轮迭代训练:每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;在完成本地梯度规约后,每个计算节点根据本地参数的陈旧程度继续进行下一次本地参数的迭代训练;
(3)完成每一轮迭代训练后,每个计算节点分别计算各自的梯度信息,并保存在各自的到主机内存中;然后通过各自的CPU将主机内存中保存的梯度信息发送给其他计算节点;其他计算节点收到梯度信息后,使用梯度信息更新本地参数,并使用更新后的本地参数重复步骤(2)。
进一步地,同一个计算节点内的GPU通过NvLink连接。
进一步地,所述步骤(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 中。
进一步地,所述全局参数和全局参数的训练迭代次序同步,具体包括以下子步骤:
(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收到所有的其他计算节点返回来的各自的当前最新的本地参数和本地参数的训练迭代次序后,从中选择最小的本地参数的训练迭代次序作为最新的全局参数的训练迭代次序iter min 发送给其他计算节点,并将训练迭代次序最小的本地参数作为最新的全局参数g-iter min 发送给其他计算节点;其他计算节点收到后,将主机内存保存的全局参数的训练迭代次序更新为iter min 并将主机内存保存的全局参数更新为g-iter min ,然后将原子变量设置为false,并清除本次全局参数的训练迭代次序同步的发起者的记录。
进一步地,所述子步骤(a4)具体为:
如果计算节点i的原子变量V sync,i true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点不是计算节点i,则回复拒绝计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求;
如果计算节点i的原子变量V sync,i true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点是计算节点i,则回复同意计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求;
如果计算节点i的原子变量V sync,i false,将自己的原子变量设置为true,再记录本次全局参数和全局参数的训练迭代次序同步的发起者为计算节点i;同时,将自己当前的全局参数和全局参数的训练迭代次序返回给计算节点i
进一步地,所述系统时间T为8~10s。
本发明还提供了一种面向智能计算的分布式异步规约装置,包括一个或多个处理器,用于实现上述面向智能计算的分布式异步规约方法。
本发明还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述面向智能计算的分布式异步规约方法。
本发明的有益效果是:极大地缓解了最慢计算节点对整体训练的性能影响,同时也降低了性能较差节点的通信开销,并有效提升了分布式训练中的通信和计算的并行性,提升了分布式训练的系统效率和性能。
附图说明
图1为一种面向智能计算的分布式异步规约方法的流程示意图;
图2为实施例1中步骤(3)的流程示意图;
图3为实施例1中步骤(4)的流程示意图;
图4为实施例2提供的一种计算集群的结构示意图;
图5为一种面向智能计算的分布式异步规约装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加明白清楚,结合附图和实施例,对本发明进一步的详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均在本发明保护范围。
实施例1:如图1所示,本发明提供一种面向智能计算的分布式异步规约方法,包括以下步骤:
(1)设置计算集群:所述计算集群包括N个计算节点,每个计算节点对应一个CPU;每个计算节点包括至少一个GPU,将每个计算节点内部的GPU组成一个组。
同一个计算节点内部的GPU通过NvLink链接,采用SGD同步训练优化器对同一个计算节点内部的GPU进行训练。
计算节点内部的GPU通过NvLink链接,通信效率要远高于节点之间的通信效率,所以先将GPU按照计算节点将分成多个组,即每个计算节点内部的GPU组成一个组。
(2)开始新的一轮迭代训练:每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;在完成本地梯度规约后,每个计算节点根据本地参数的陈旧程度继续进行下一次本地参数的迭代训练,如图2所示。
所述步骤(2)具体包括以下子步骤:
(2.1)每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;
(2.2)在完成本地梯度规约后,当计算节点i的本地参数的陈旧程度大于阈值stale max 时,计算节点i的本地参数的陈旧程度为本地参数的训练迭代次序和全局参数的训练迭代次序W global 之差,即为/>-W global ,则从主机内存M i 中获取保存的全局参数的训练迭代次序;当主机内存M i 中保存的全局参数的训练迭代次序大于计算节点i中的全局参数的训练迭代次序时,将主机内存M i 中保存的全局参数和全局参数的训练迭代次序拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;当主机内存M i 中保存的全局参数的训练迭代次序等于计算节点i中的全局参数的训练迭代次序时,计算节点i主动发起一次全局参数和全局参数的训练迭代次序同步,获得集群内最新的全局参数和全局参数的训练迭代次序;并将最新的全局参数拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练。这样做的目的是为了防止计算较快的计算节点和计算较慢的计算节点之间的本地参数的版本相差太大,因版本相差太大会影响精度。
当计算节点i的本地参数的陈旧程度小于阈值stale max 时,直接用规约后的梯度更新本地参数并继续进行下一次本地参数的迭代训练;同时,把更新后的本地参数和本地参数的训练迭代次序保存到计算节点i的CPU的主机内存M i 中,方面后续的全局参数同步。
计算节点i的本地参数是指计算节点i上当前的训练迭代次序,因是异步更新,不同计算节点上的本地参数可能会不一样,有些计算能力强的计算节点上的本地参数会更新地比较快,即本地参数的训练迭代次序会更大。全局参数是指N个计算节点中本地参数的训练迭代次序最小的计算节点的本地参数,全局参数的训练迭代次序即指该计算节点的训练迭代次序。
当主机内存M i 中保存的全局参数的训练迭代次序大于计算节点i中的全局参数的训练迭代次序时,即说明其他计算节点对计算节点i进行全局参数和全局参数的训练迭代次序同步
,那么计算节点i就不需要发起一次全局参数和全局参数的训练迭代次序同步了。反之,当主机内存M i 中保存的全局参数的训练迭代次序等于计算节点i中的全局参数的训练迭代次序时,即说明其他计算节点还没有对计算节点i发起全局参数和全局参数的训练迭代次序同步,那么计算节点i就可以向其他计算节点发起一次全局参数和全局参数的训练迭代次序同步了。这样做的目的是为了使计算较快的计算节点负责更多的全局参数和全局参数的训练迭代次序同步。
所述全局参数和全局参数的训练迭代次序同步,具体包括以下子步骤:
(a1)当计算节点i收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量V sync,i true。同时为了防止网络或者节点故障挂其这次训练迭代次序同步,本发明设置一个计时器,当超过设定的时间,就强制终止本次全局参数和全局参数的训练迭代次序同步,计算节点i则将自己的原子变量V sync,i 为设置为false,防止无限等待。
计时器是为了防止网络或者节点故障,然后计算节点i长时间无法结束这次训练迭代次序同步。所以,不管这次训练迭代是否同步完成,都会将这次训练迭代次序同步结束掉。
当计算节点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 判断是否已经收到其他计算节点的全局参数和全局参数的训练迭代次序同步请求。
所述子步骤(a4)具体为:
如果计算节点i的原子变量V sync,i true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点不是计算节点i,则回复拒绝计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求。
如果计算节点i的原子变量V sync,i true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点是计算节点i,则回复同意计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求。
如果计算节点i的原子变量V sync,i false,将自己的原子变量设置为true,再记录本次全局参数和全局参数的训练迭代次序同步的发起者为计算节点i;同时,将自己当前的全局参数和全局参数的训练迭代次序返回给计算节点i。因为在实现上有可能因为网络等原因收到重复请求的情况。
(a5)计算节点i如果收到任何一个拒绝同步的回复,等待超过系统时间T后,跳到子步骤(a1)重新执行;反之,继续执行子步骤(a6)。所述系统时间T为8~10s。
(a6)计算节点i收到所有的其他计算节点返回来的各自的当前最新的本地参数和本地参数的训练迭代次序后,从中选择最小的本地参数的训练迭代次序作为最新的全局参数的训练迭代次序iter min 发送给其他计算节点,并将训练迭代次序最小的本地参数作为最新的全局参数g-iter min 发送给其他计算节点;其他计算节点收到后,将主机内存保存的全局参数的训练迭代次序更新为iter min 并将主机内存保存的全局参数更新为g-iter min ,然后将原子变量设置为false,并清除本次全局参数的训练迭代次序同步的发起者的记录。
(3)完成每一轮迭代训练后,每个计算节点分别计算各自的梯度信息,并保存在各自的到主机内存中;然后通过各自的CPU将主机内存中保存的梯度信息发送给其他计算节点;其他计算节点收到梯度信息后,使用梯度信息更新本地参数,并使用更新后的本地参数重复步骤(2),如图3所示。
实施例2:如图4所示,本发明实施例中的计算集群可包括4个计算节点,每个计算节点对应一个CPU;每个计算节点可包括4个GPU,每个计算节点内部的GPU组成一个组。同一个计算节点内的GPU实现同步规约;所有CPU之间实现异步规约。
实施例3:与前述一种面向智能计算的分布式异步规约方法的实施例1相对应,本发明还提供了一种面向智能计算的分布式异步规约装置的实施例。
参见图5,本发明实施例提供的一种面向智能计算的分布式异步规约装置,包括一个或多个处理器,用于实现上述实施例中的一种面向智能计算的分布式异步规约方法。
本发明一种面向智能计算的分布式异步规约装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明一种面向智能计算的分布式异步规约装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种面向智能计算的分布式异步规约方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (7)

1.一种面向智能计算的分布式异步规约方法,其特征在于,包括以下步骤:
(1)设置计算集群:所述计算集群包括N个计算节点,每个计算节点对应一个CPU;每个计算节点包括至少一个GPU,将每个计算节点内部的GPU组成一个组;
(2)开始新的一轮迭代训练:每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;在完成本地梯度规约后,每个计算节点根据本地参数的陈旧程度继续进行下一次本地参数的迭代训练;
所述步骤(2)具体包括以下子步骤:
(2.1)每个计算节点进行一次本地参数的迭代训练后,同一计算节点内的GPU之间进行本地梯度规约,得到该计算节点的规约后的梯度;
(2.2)在完成本地梯度规约后,当计算节点i的本地参数的陈旧程度大于阈值stalemax时,计算节点i的本地参数的陈旧程度为本地参数的训练迭代次序Wl i ocal和全局参数的训练迭代次序Wglobal之差,则从主机内存Mi中获取保存的全局参数的训练迭代次序;当主机内存Mi中保存的全局参数的训练迭代次序大于计算节点i中的全局参数的训练迭代次序时,将主机内存Mi中保存的全局参数和全局参数的训练迭代次序拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;当主机内存Mi中保存的全局参数的训练迭代次序等于计算节点i中的全局参数的训练迭代次序时,计算节点i主动发起一次全局参数和全局参数的训练迭代次序同步,获得集群内最新的全局参数和全局参数的训练迭代次序;并将最新的全局参数拷贝到计算节点i内的所有GPU继续进行下一次本地参数的迭代训练;
当计算节点i的本地参数的陈旧程度小于阈值stalemax时,直接用规约后的梯度更新本地参数并继续进行下一次本地参数的迭代训练;同时,把更新后的本地参数和本地参数的训练迭代次序保存到计算节点i的CPU的主机内存Mi中;
(3)完成每一轮迭代训练后,每个计算节点分别计算各自的梯度信息,并保存在各自的到主机内存中;然后通过各自的CPU将主机内存中保存的梯度信息发送给其他计算节点;其他计算节点收到梯度信息后,使用梯度信息更新本地参数,并使用更新后的本地参数重复步骤(2)。
2.根据权利要求1所述的一种面向智能计算的分布式异步规约方法,其特征在于,同一个计算节点内的GPU通过NvLink连接。
3.根据权利要求1所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述全局参数和全局参数的训练迭代次序同步,具体包括以下子步骤:
(a1)当计算节点i收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量Vsync,i为true;设置一个计时器,当超过设定的时间,就强制终止本次全局参数和全局参数的训练迭代次序同步,计算节点i将自己的原子变量Vsync,i为设置为false;
当计算节点i没有收到其他计算节点发起的全局参数和全局参数的训练迭代次序同步,设置计算节点i的原子变量Vsync,i为false;
(a2)下一轮的全局参数的训练迭代次序同步前,先查看每个计算节点的原子变量:
当计算节点i的原子变量Vsync,i为false,则计算节点i主动发起一次全局参数和全局参数的训练迭代次序同步获取集群内最新的全局参数和全局参数的训练迭代次序;
当计算节点i的原子变量Vsync,i为true,则计算节点i等待其他计算节点发起的全局参数和全局参数的训练迭代次序同步完成或超时结束;
(a3)计算节点i把当前最新的本地参数和本地参数的训练迭代次序发送给其他计算节点,同时等待其他计算节点返回各自当前最新的本地参数和本地参数的训练迭代次序或者拒绝同步的回复;
(a4)其他计算节点在收到计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求后,根据计算节点i的原子变量Vsync,i判断之前是否已经收到其他计算节点的全局参数和全局参数的训练迭代次序同步请求;
(a5)计算节点i如果收到任何一个拒绝同步的回复,等待超过系统时间T后,跳到子步骤(a1)重新执行;反之,继续执行子步骤(a6);
(a6)计算节点i收到所有的其他计算节点返回来的各自的当前最新的本地参数和本地参数的训练迭代次序后,从中选择最小的本地参数的训练迭代次序作为最新的全局参数的训练迭代次序itermin发送给其他计算节点,并将训练迭代次序最小的本地参数作为最新的全局参数g-itermin发送给其他计算节点;其他计算节点收到后,将主机内存保存的全局参数的训练迭代次序更新为itermin并将主机内存保存的全局参数更新为g-itermin,然后将原子变量设置为false,并清除本次全局参数的训练迭代次序同步的发起者的记录。
4.根据权利要求1所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述子步骤(a4)具体为:
如果计算节点i的原子变量Vsync,i为true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点不是计算节点i,则回复拒绝计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求;
如果计算节点i的原子变量Vsync,i为true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点是计算节点i,则回复同意计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求;
如果计算节点i的原子变量Vsync,i为false,将自己的原子变量设置为true,再记录本次全局参数和全局参数的训练迭代次序同步的发起者为计算节点i;同时,将自己当前的全局参数和全局参数的训练迭代次序返回给计算节点i。
5.根据权利要求3所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述系统时间T为8~10s。
6.一种面向智能计算的分布式异步规约装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-5中任一项所述的面向智能计算的分布式异步规约方法。
7.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-5中任一项所述的面向智能计算的分布式异步规约方法。
CN202310821100.XA 2023-07-06 2023-07-06 一种面向智能计算的分布式异步规约方法和装置 Active CN116542324B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310821100.XA CN116542324B (zh) 2023-07-06 2023-07-06 一种面向智能计算的分布式异步规约方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310821100.XA CN116542324B (zh) 2023-07-06 2023-07-06 一种面向智能计算的分布式异步规约方法和装置

Publications (2)

Publication Number Publication Date
CN116542324A CN116542324A (zh) 2023-08-04
CN116542324B true CN116542324B (zh) 2023-10-10

Family

ID=87449215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310821100.XA Active CN116542324B (zh) 2023-07-06 2023-07-06 一种面向智能计算的分布式异步规约方法和装置

Country Status (1)

Country Link
CN (1) CN116542324B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463189A (zh) * 2020-11-20 2021-03-09 中国人民解放军国防科技大学 基于通信操作稀疏化的分布式深度学习多步延迟更新方法
CN112818394A (zh) * 2021-01-29 2021-05-18 西安交通大学 具有本地隐私保护的自适应异步联邦学习方法
CN113239404A (zh) * 2021-06-04 2021-08-10 南开大学 一种基于差分隐私和混沌加密的联邦学习方法
CN115129471A (zh) * 2022-06-28 2022-09-30 中国人民解放军国防科技大学 面向大规模gpu集群的分布式局部随机梯度下降方法
CN115310566A (zh) * 2022-10-12 2022-11-08 浪潮电子信息产业股份有限公司 分布式训练系统、方法、装置、设备及可读存储介质
CN115374853A (zh) * 2022-08-22 2022-11-22 复旦大学 基于T-Step聚合算法的异步联邦学习方法及系统
CN115865607A (zh) * 2023-03-01 2023-03-28 山东海量信息技术研究院 一种分布式训练的计算节点管理方法及相关装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11574254B2 (en) * 2020-04-29 2023-02-07 International Business Machines Corporation Adaptive asynchronous federated learning
US20220398500A1 (en) * 2021-05-27 2022-12-15 Google Llc Partially local federated learning

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463189A (zh) * 2020-11-20 2021-03-09 中国人民解放军国防科技大学 基于通信操作稀疏化的分布式深度学习多步延迟更新方法
CN112818394A (zh) * 2021-01-29 2021-05-18 西安交通大学 具有本地隐私保护的自适应异步联邦学习方法
CN113239404A (zh) * 2021-06-04 2021-08-10 南开大学 一种基于差分隐私和混沌加密的联邦学习方法
CN115129471A (zh) * 2022-06-28 2022-09-30 中国人民解放军国防科技大学 面向大规模gpu集群的分布式局部随机梯度下降方法
CN115374853A (zh) * 2022-08-22 2022-11-22 复旦大学 基于T-Step聚合算法的异步联邦学习方法及系统
CN115310566A (zh) * 2022-10-12 2022-11-08 浪潮电子信息产业股份有限公司 分布式训练系统、方法、装置、设备及可读存储介质
CN115865607A (zh) * 2023-03-01 2023-03-28 山东海量信息技术研究院 一种分布式训练的计算节点管理方法及相关装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Asynchronous Stochastic Gradient Descent with Delay Compensation;Shuxin Zheng等;《arXiv-Machine Learning》;第1-20页 *
Client Selection With Staleness Compensation in Asynchronous Federated Learning;Hongbin Zhu等;《IEEE Transactions on Vehicular Technology》;第72卷(第3期);第4124-4129页 *
基于激励机制的联邦学习优化算法;田有亮等;《通信学报》;第44卷(第05期);第169-180页 *
面向强化学习的分布式加速方法研究;张嘉瑞;《万方数据库》;第7-50页 *

Also Published As

Publication number Publication date
CN116542324A (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
CN110134636B (zh) 模型训练方法、服务器和计算机可读存储介质
US11010313B2 (en) Method, apparatus, and system for an architecture for machine learning acceleration
US20090125907A1 (en) System and method for thread handling in multithreaded parallel computing of nested threads
US10402235B2 (en) Fine-grain synchronization in data-parallel jobs for distributed machine learning
CN111027708A (zh) 一种面向分布式机器学习的参数通信优化方法
WO2021109588A1 (zh) 一种数据处理方法、装置、电子设备及可读存储介质
CN110837505B (zh) 状态数据存储方法、状态数据同步方法、设备和存储介质
WO2020042813A1 (zh) 一种分布式数据连接处理方法、装置、设备及存储介质
CN113642734A (zh) 一种深度学习模型的分布式训练方法、装置以及计算设备
CN112333234B (zh) 分布式机器学习训练方法、装置、电子设备及存储介质
CN113885945A (zh) 一种计算加速方法、设备以及介质
US9830263B1 (en) Cache consistency
US11941528B2 (en) Neural network training in a distributed system
CN114327280B (zh) 一种基于冷热分离存储的消息存储方法及系统
US11356334B2 (en) Communication efficient sparse-reduce in distributed machine learning
CN112948025B (zh) 数据加载方法、装置及存储介质、计算设备、计算系统
CN116542324B (zh) 一种面向智能计算的分布式异步规约方法和装置
CN116258197B (zh) 基于参数计算和通信调度的分布式训练加速方法和系统
CN111597035B (zh) 基于多线程的仿真引擎时间推进方法及系统
CN116663639A (zh) 一种梯度数据同步方法、系统、装置及介质
CN112950349B (zh) 一种基分布式系统冲正交易时序异常处理方法及系统
CN114461336A (zh) 一种gpu实时迁移方法、装置及电子设备
CN111401541A (zh) 一种数据传输控制方法及装置
CN103631726B (zh) 一种串接流式计算节点的文件处理方法及装置
US20200410359A1 (en) Computing device and parameter synchronization method implemented by computing device

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