CN116542324A - 一种面向智能计算的分布式异步规约方法和装置 - Google Patents
一种面向智能计算的分布式异步规约方法和装置 Download PDFInfo
- Publication number
- CN116542324A CN116542324A CN202310821100.XA CN202310821100A CN116542324A CN 116542324 A CN116542324 A CN 116542324A CN 202310821100 A CN202310821100 A CN 202310821100A CN 116542324 A CN116542324 A CN 116542324A
- Authority
- CN
- China
- Prior art keywords
- computing
- global
- parameters
- training iteration
- node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012549 training Methods 0.000 claims abstract description 175
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 230000001360 synchronised effect Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 13
- 239000003999 initiator Substances 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 15
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
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 (8)
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)下一轮的全局参数的训练迭代次序同步前,先查看每个计算节点的原子变量:
当计算节点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,并清除本次全局参数的训练迭代次序同步的发起者的记录。
5.根据权利要求3所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述子步骤(a4)具体为:
如果计算节点i的原子变量V sync,i 为true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点不是计算节点i,则回复拒绝计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求;
如果计算节点i的原子变量V sync,i 为true并且发起全局参数和全局参数的训练迭代次序同步请求的计算节点是计算节点i,则回复同意计算节点i发送过来的全局参数和全局参数的训练迭代次序同步请求;
如果计算节点i的原子变量V sync,i 为false,将自己的原子变量设置为true,再记录本次全局参数和全局参数的训练迭代次序同步的发起者为计算节点i;同时,将自己当前的全局参数和全局参数的训练迭代次序返回给计算节点i。
6.根据权利要求4所述的一种面向智能计算的分布式异步规约方法,其特征在于,所述系统时间T为8~10s。
7.一种面向智能计算的分布式异步规约装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-6中任一项所述的面向智能计算的分布式异步规约方法。
8.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-6中任一项所述的面向智能计算的分布式异步规约方法。
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 true CN116542324A (zh) | 2023-08-04 |
CN116542324B 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 (9)
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 | 南开大学 | 一种基于差分隐私和混沌加密的联邦学习方法 |
US20210342749A1 (en) * | 2020-04-29 | 2021-11-04 | International Business Machines Corporation | Adaptive asynchronous federated learning |
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聚合算法的异步联邦学习方法及系统 |
US20220398500A1 (en) * | 2021-05-27 | 2022-12-15 | Google Llc | Partially local federated learning |
CN115865607A (zh) * | 2023-03-01 | 2023-03-28 | 山东海量信息技术研究院 | 一种分布式训练的计算节点管理方法及相关装置 |
-
2023
- 2023-07-06 CN CN202310821100.XA patent/CN116542324B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210342749A1 (en) * | 2020-04-29 | 2021-11-04 | International Business Machines Corporation | Adaptive asynchronous federated learning |
CN112463189A (zh) * | 2020-11-20 | 2021-03-09 | 中国人民解放军国防科技大学 | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 |
CN112818394A (zh) * | 2021-01-29 | 2021-05-18 | 西安交通大学 | 具有本地隐私保护的自适应异步联邦学习方法 |
US20220398500A1 (en) * | 2021-05-27 | 2022-12-15 | Google Llc | Partially local federated learning |
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)
Title |
---|
HONGBIN ZHU等: "Client Selection With Staleness Compensation in Asynchronous Federated Learning", 《IEEE TRANSACTIONS ON VEHICULAR TECHNOLOGY》, vol. 72, no. 3, pages 4124 - 4129 * |
SHUXIN ZHENG等: "Asynchronous Stochastic Gradient Descent with Delay Compensation", 《ARXIV-MACHINE LEARNING》, pages 1 - 20 * |
张嘉瑞: "面向强化学习的分布式加速方法研究", 《万方数据库》, pages 7 - 50 * |
田有亮等: "基于激励机制的联邦学习优化算法", 《通信学报》, vol. 44, no. 05, pages 169 - 180 * |
Also Published As
Publication number | Publication date |
---|---|
CN116542324B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134636B (zh) | 模型训练方法、服务器和计算机可读存储介质 | |
WO2016134590A1 (zh) | 处理事务的方法、处理节点、中心节点和集群 | |
US10402235B2 (en) | Fine-grain synchronization in data-parallel jobs for distributed machine learning | |
WO2021109588A1 (zh) | 一种数据处理方法、装置、电子设备及可读存储介质 | |
CN111124993B (zh) | 减小i/o处理时缓存数据镜像时延的方法、设备和程序产品 | |
CN110837505B (zh) | 状态数据存储方法、状态数据同步方法、设备和存储介质 | |
CN114327280B (zh) | 一种基于冷热分离存储的消息存储方法及系统 | |
CN112948025B (zh) | 数据加载方法、装置及存储介质、计算设备、计算系统 | |
US11356334B2 (en) | Communication efficient sparse-reduce in distributed machine learning | |
CN111597035A (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CN116542324B (zh) | 一种面向智能计算的分布式异步规约方法和装置 | |
CN111522689B (zh) | 全局快照方法、装置、电子设备及计算机可读存储介质 | |
CN115688867A (zh) | 用于训练神经网络的方法、装置、设备和存储介质 | |
CN115712486A (zh) | 虚拟机的热迁移控制方法和装置、介质和计算机设备 | |
CN118036776A (zh) | 一种模型训练方法及相关装置 | |
CN103631726B (zh) | 一种串接流式计算节点的文件处理方法及装置 | |
US11443191B2 (en) | Computing device and parameter synchronization method implemented by computing device | |
CN111401541A (zh) | 一种数据传输控制方法及装置 | |
CN114021715A (zh) | 基于Tensorflow框架的深度学习训练方法 | |
CN108293040A (zh) | 转送控制装置、车辆和转送控制方法 | |
US10083067B1 (en) | Thread management in a storage system | |
CN110990490A (zh) | 区块链网络中区块链的入账方法、装置、设备及介质 | |
CN113568665B (zh) | 一种数据处理装置 | |
CN113485805B (zh) | 基于异构加速平台的分布式计算调整方法、装置及设备 | |
CN116303304B (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 |