CN115129471A - 面向大规模gpu集群的分布式局部随机梯度下降方法 - Google Patents

面向大规模gpu集群的分布式局部随机梯度下降方法 Download PDF

Info

Publication number
CN115129471A
CN115129471A CN202210749875.6A CN202210749875A CN115129471A CN 115129471 A CN115129471 A CN 115129471A CN 202210749875 A CN202210749875 A CN 202210749875A CN 115129471 A CN115129471 A CN 115129471A
Authority
CN
China
Prior art keywords
local
gradient
weight
training
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.)
Pending
Application number
CN202210749875.6A
Other languages
English (en)
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 CN202210749875.6A priority Critical patent/CN115129471A/zh
Publication of CN115129471A publication Critical patent/CN115129471A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种面向大规模GPU集群的分布式局部随机梯度下降方法,其利用参数服务器和计算节点来实现,本方法首先利用本地权重在计算节点计算本地梯度,并对相邻几次迭代产生的本地梯度进行平均计算,之后利用产生的平均梯度对本地权重进行更新,并将各个计算节点的平均梯度推送给服务器进行聚合,聚合后的梯度将对全局权重进行更新,在全局权重完成更新前,计算节点会利用本地权重继续进行本地训练,在全局权重更新完毕后,将全局权重拉取到计算节点,替换掉原有的本地权重参与训练。本方法采用了独特的梯度平均机制和本地更新机制来解决分布式训练通信瓶颈问题,具有速度快精度高的优点。

Description

面向大规模GPU集群的分布式局部随机梯度下降方法
技术领域
本发明涉及分布式计算与存储领域,尤其涉及一种面向大规模GPU集群的分布式局部随机梯度下降方法。
背景技术
随着深层神经网络模型变得更加复杂,其计算工作量也随之增加,这就排除了利用单个节点在合理时间内训练成熟模型的可能性。在这种情况下,分布式训练成为深度学习模型训练的必要条件。目前,对深度学习模型的分布式训练主要分为数据并行和模型并行两种方式。庞大的数据集和模型被分发给多个计算节点以完成相应的培训任务。因此,这些计算节点必须定期通信,以保持参数的同步性和新鲜度。然而,网络技术的发展速度远远落后于计算硬件。例如,自2012年以来,网络带宽从10Gbps增加到100Gbps,但Nvidia GPU的计算能力在过去10年中增加了30倍。计算能力和带宽的不平衡使得计算节点之间的通信成为性能瓶颈,限制了分布式系统的可扩展性。例如,当在一个由1Gbps以太网连接的NvidiaP100 GPU集群上使用16节点训练ResNet-50时,通信成本是计算成本的九倍以上。当计算节点数量增加时,通信成本往往会急剧增加。为了应对通信挑战,人们提出了各种方法,这些方法主要采用两种策略:掩盖通信开销和降低通信频率。
为了掩盖通信开销,利用流水线将下一层反向传播计算与通信并行执行。此外,通信优先级调度机制能让计算节点在计算和通信之间实现更高的并行效率。然而,这些方法在大规模训练中稍显不足,原因是大规模训练中的通信开销太大,通信开销无法完全被计算所隐藏。为了解决这个问题,人们提出了梯度压缩技术,通过只发送部分梯度或以低比特形式表达数据来减少通信流量。这些方法有效地降低了通信压力,但降低了收敛精度,并引入了额外的计算开销。
为了减少通信频率,主要思路是增加批量大小以减少培训的迭代次数。当批量大小与计算节点数量呈线性增加时,使用大批量SGD方法可实现线性加速,然而大批量SGD会导致泛化性能大幅下降。基于这些发现,越来越多的研究开始关注用较灵活的本地SGD代替大批量SGD。在本地SGD中,计算节点计算梯度并在本地更新其权重,并每k次迭代一次进行通信,以平均本地权重。K-AVG和周期模型平均算法证明了局部更新可以保证收敛,并具有良好的实用性能,它们提高了整体通信效率,缓解了快速计算节点在每次迭代中等待慢速计算节点引发的参数同步时间过长的问题。然而,局部参数相比于全局最优解残差过大时,需要频繁的参数通信以确保收敛。此外,计算节点需要等到权重平均完成后才能开始新的局部计算,这仍然会极大地影响训练效果。因此,本地SGD需要找到合适的通信频率,以在精度和速度之间实现平衡。
在降低通信频率,同时完全掩盖通信开销的方法方面,已经存在一些研究,但它们的效果仍然不令人满意。OD-SGD使用局部权重而不是全局权重来计算梯度,以消除相邻迭代之间的依赖性,但是其需要频繁通信。一次平均法和STL-SGD提出了一种新的本地SGD方案:随着学习速率的降低或迭代次数的增加,令训练的通信频率逐渐降低,但是它们仍需要较长的预热期才能获得稳定的局部权重。DaSGD方法在参数同步后使用旧的局部权重开始下一次迭代,以掩盖通信开销。然而,当需要多个局部计算迭代来掩盖通信时,就有必要考虑陈旧的权重更新是否对训练的正确性有意义或产生误导。综上所述,在深度学习模型的分布式训练方面,有三个问题需要解决:首先,用来掩盖通信开销的操作应该有助于训练,用无效操作填充气泡是没有意义的。其次,本地更新应该引入尽可能少的残差。最后,应该做到不需要很长时间预热就能达到所需的精度。
发明内容
针对大规模GPU集群的分布式训练中通信优化中面临的通信开销过大和本地更新导致的长预热和精度下降问题,本发明公开了一种面向大规模GPU集群的分布式局部随机梯度下降方法,其利用参数服务器和计算节点来实现,计算节点用于进行本地梯度以及本地权重的计算,参数服务器用于接收并聚合所有的计算节点发送的梯度信息并进行全局权重更新,参数服务器与计算节点之间的数据交互采用一个参数服务器与多个计算节点相通信的模式,本方法的具体步骤包括:
S1,在计算节点设置本地权重更新器,本地权重更新器用于利用本地权重进行本地梯度计算。
S2,在每次迭代中,计算节点利用本地权重,计算每次迭代训练的本地梯度,第j个计算节点在第i次迭代训练中的本地梯度值Gradi,j的计算公式为:
Figure BDA0003717920980000031
其中,
Figure BDA0003717920980000032
表示第j个计算节点在第i次迭代训练使用的本地权重,grad_cal为用于本地梯度计算的函数;对于本地梯度值Gradi,j的计算,利用本地权重
Figure BDA0003717920980000033
和输入到第j个计算节点的样本特征Xj来计算得到第j个计算节点的预测结果Yj’,由预测结果Yj’和第j个计算节点的标签Yj计算出损失值loss,再对损失值loss求导,即得到第j个计算节点的在第i次迭代训练时的本地梯度值Gradi,j
S3,在本地权重更新器中建立梯度变量,第j个计算节点的本地权重更新器所建立的梯度变量为
Figure BDA0003717920980000034
对于每个计算节点,利用每次迭代训练中所计算得到的本地梯度值Gradi,j,与梯度变量
Figure BDA0003717920980000035
相加,得到更新后的梯度变量,梯度变量
Figure BDA0003717920980000036
的更新公式为:
Figure BDA0003717920980000037
S4,在每个计算节点执行k次迭代训练后的首次迭代训练中,所有的计算节点之间进行一次参数同步,将该执行参数同步的迭代训练命名为通信迭代,如果当前迭代训练是通信迭代,则执行步骤S5,否则执行步骤S6;
S5,每个计算节点对其梯度变量执行平均操作,对于第j个计算节点的梯度变量
Figure BDA0003717920980000038
其平均操作的计算公式为:
Figure BDA0003717920980000039
用平均操作后得到的梯度变量
Figure BDA00037179209800000310
参与本地权重
Figure BDA00037179209800000311
的更新过程,得到更新后的本地权重
Figure BDA0003717920980000041
更新过程的计算公式为:
Figure BDA0003717920980000042
其中η是超参数学习率,将所有计算节点的平均操作后得到的梯度变量发送给参数服务器,参数服务器收集到来自各个计算节点的梯度变量后,更新全局权重Wl,更新全局权重的公式为:
Figure BDA0003717920980000043
其中η是超参数学习率,N为计算节点个数。
S6,执行步骤S1和步骤S2,在每次通信迭代之后的第2次迭代训练,参数服务器将全局权重Wl发送到所有工作节点,所有工作节点利用全局权重Wl对其本地权重分别进行更新,更新公式为:
Figure BDA0003717920980000044
重复执行步骤S4若干次后,得到最终收敛的本地权重和全局权重。
所述的收敛,对于本地权重而言,是指前后两次迭代训练得到的本地权重值之差小于某阈值,对于全局权重而言,是指前后两次迭代训练得到的全局权重值之差小于某阈值。
所述的面向大规模GPU集群的分布式局部随机梯度下降方法,其在MXNet环境中,基于PS架构进行实施,其步骤包括,
在计算节点布置本地更新器、计数器CountA、用于装载本地权重的缓冲区loc_buf以及用于装载本地梯度的缓冲区comm_buf,其中CountA用于控制计算节点通信的时机以及将全局权重Wl拉取到计算节点作为本地权重的时机。在训练迭代阶段,计算节点利用缓冲区loc_buf中的本地权重计算本地梯度,再将计算得到的本地梯度存储到计算节点上的缓冲区comm_buf中,计算节点根据计数器CountA的输出信号,在通信迭代时对梯度变量执行平均计算,将执行平均计算后的梯度变量用于更新本地权重,参数服务器获取所有计算节点的梯度变量后更新全局权重,得到更新后的全局权重,计算节点在获取更新后的全局权重后,将更新后的全局权重复制到缓冲区loc_buf中,并更新本地权重,计算节点在下一次迭代训练中,利用更新后的本地权重计算本地梯度。MXNet的依赖引擎可确保缓冲区loc_buf中的本地权重在参与本地梯度计算后才被下一时刻的全局权重副本覆盖。
本发明的有益效果为:
本方法采用了独特的梯度平均与本地更新相结合的训练机制。本方法中梯度平均机制,适用于所有的本地更新方法,是一种加速训练的主流技术,现有本地更新方法都可以用该方法来弥补精度损失,因此本方法具有适用范围广的优点。
附图说明
图1为采用不同方法在4个计算节点上(每个节点配置4个V100 GPU)进行ResNet-50模型训练的Epoch-精度对比图;
图2为采用不同方法在4个计算节点上(每个节点配置4个V100 GPU)进行Inception-Bn模型训练的时间-精度对比图;
图3为采用不同方法在4个计算节点上(每个节点配置4个V100 GPU)进行ResNet-20模型训练的通信次数-精度对比图;
图4为不同方法在V100集群采用4个计算节点进行训练的速度对比;
图5为不同方法在V100集群采用8个计算节点进行训练的速度对比。
具体实施方式
为了更好的了解本发明内容,这里给出一个实施例。
本发明公开了一种面向大规模GPU集群的分布式局部随机梯度下降方法,其利用参数服务器和计算节点来实现,计算节点用于进行本地梯度以及本地权重的计算,参数服务器用于接收并聚合所有的计算节点发送的梯度信息并进行全局权重更新,参数服务器与计算节点之间的数据交互采用一个参数服务器与多个计算节点相通信的模式,本方法的具体步骤包括:
S1,在计算节点设置本地权重更新器,本地权重更新器用于利用本地权重进行本地梯度计算。
S2,在每次迭代中,计算节点利用本地权重,计算每次迭代训练的本地梯度,第j个计算节点在第i次迭代训练中的本地梯度值Gradi,j的计算公式为:
Figure BDA0003717920980000051
其中,
Figure BDA0003717920980000061
表示第j个计算节点在第i次迭代训练使用的本地权重,grad_cal为用于本地梯度计算的函数;对于本地梯度值Gradi,j的计算,利用本地权重
Figure BDA0003717920980000062
和输入到第j个计算节点的样本特征Xj来计算得到第j个计算节点的预测结果Yj’,由预测结果Yj’和第j个计算节点的标签Yj计算出损失值loss,再对损失值loss求导,即得到第j个计算节点的在第i次迭代训练时的本地梯度值Gradi,j;所述的grad_cal,可以采用SGD算法、DCSGD算法、Adam算法等实现;
S3,在本地权重更新器中建立梯度变量,第j个计算节点的本地权重更新器所建立的梯度变量为
Figure BDA0003717920980000063
对于每个计算节点,利用每次迭代训练中所计算得到的本地梯度值Gradi,j,与梯度变量
Figure BDA0003717920980000064
相加,得到更新后的梯度变量,梯度变量
Figure BDA0003717920980000065
的更新公式为:
Figure BDA0003717920980000066
S4,在每个计算节点执行k次迭代训练后的首次迭代训练中,所有的计算节点之间进行一次参数同步,将该执行参数同步的迭代训练命名为通信迭代,如果当前迭代训练是通信迭代,则执行步骤S5,否则执行步骤S6;
S5,每个计算节点对其梯度变量执行平均操作,对于第j个计算节点的梯度变量
Figure BDA0003717920980000067
其平均操作的计算公式为:
Figure BDA0003717920980000068
用平均操作后得到的梯度变量
Figure BDA0003717920980000069
参与本地权重
Figure BDA00037179209800000610
的更新过程,得到更新后的本地权重
Figure BDA00037179209800000611
更新过程的计算公式为:
Figure BDA00037179209800000612
其中η是超参数学习率,将所有计算节点的平均操作后得到的梯度变量发送给参数服务器,参数服务器收集到来自各个计算节点的梯度变量后,更新全局权重Wl,更新全局权重的公式为:
Figure BDA00037179209800000613
其中η是超参数学习率,N为计算节点个数。
S6,执行步骤S1和步骤S2,在每次通信迭代之后的第2次迭代训练,参数服务器将全局权重Wl发送到所有工作节点,所有工作节点利用全局权重Wl对其本地权重分别进行更新,更新公式为:
Figure BDA0003717920980000071
重复执行步骤S4若干次后,得到最终收敛的本地权重和全局权重。
步骤S4重复执行的次数由损失值确定。具体地,对损失值乘以某系数即可得到的步骤S4重复执行的次数。
训练不同复杂程度的模型需要重复正式训练的次数不一,同时也受使用者对精度预期的限制,经实验,本专利方法的收敛性与S-SGD接近,因此训练周期数的设定可参考S-SGD的训练样例。
本地梯度是指用于控制本地权重大小变化的参数,全局梯度是指对所有计算节点的梯度参数进行累加并平均后的梯度,本地权重是指各个计算节点用于进行对样本进行预测计算的参数,全局权重是指参数服务器生成并发送给所有计算节点的用于同步本地权重的参数。
所述的面向大规模GPU集群的分布式局部随机梯度下降方法,其在MXNet环境中,基于PS架构进行实施,其步骤包括,
在计算节点布置本地更新器、计数器CountA、用于装载本地权重的缓冲区loc_buf以及用于装载本地梯度的缓冲区comm_buf,其中CountA用于控制计算节点通信的时机以及将全局权重Wl拉取到计算节点作为本地权重的时机。在训练迭代阶段,计算节点利用缓冲区loc_buf中的本地权重计算本地梯度,再将计算得到的本地梯度存储到计算节点上的缓冲区comm_buf中,计算节点根据计数器CountA的输出信号,在通信迭代时对梯度变量执行平均计算,将执行平均计算后的梯度变量用于更新本地权重,参数服务器获取所有计算节点的梯度变量后更新全局权重,得到更新后的全局权重,计算节点在获取更新后的全局权重后,将更新后的全局权重复制到缓冲区loc_buf中,并更新本地权重,计算节点在下一次迭代训练中,利用更新后的本地权重计算本地梯度。MXNet的依赖引擎可确保缓冲区loc_buf中的本地权重在参与本地梯度计算后才被下一时刻的全局权重副本覆盖。
本发明方法可在现有的主流分布式学习框架上实施,为了更好的了解本发明内容,这里给出在MXNet上布置基于PS架构的本发明方法简称DSL-SGD。
本发明公开了所述的面向大规模GPU集群的分布式局部随机梯度下降方法,其在MXNet环境中,基于PS架构进行实施,其步骤包括,
S1,在训练启动模块加入本地更新器的接口,本地更新器包括本地学习率、本地学习率变化算法和本地更新算法的参数信息,训练启动模块用于每次迭代训练的启动,本地更新器用于实现本地更新算法,本地更新算法用于实现对权重参数的更新;
S2,Model模块接收训练启动模块的参数信息,同时将本地更新器的参数信息传递给KVstore模块,Model模块用于搭建要训练的深度学习模型,KVstore模块用于实现计算节点和参数服务器之间的参数通信;
S3,对API执行模块加入本地更新算法的执行函数和参数接收函数,API执行模块用于对迭代训练时的计算操作和通信操作进行调度,
S4,对KVstore模块加入API执行模块和Model模块的接口,再加入缓冲区loc_buf、计数器CountA、梯度累计函数、梯度平均函数、梯度推送控制函数和权重拉取控制函数。梯度推送控制函数用于将计算节点的梯度参数信息发送给参数服务器,权重拉取控制函数用于将参数服务器上的全局权重信息发送给计算节点。
所添加的功能函数具体工作逻辑如下:在每次迭代训练中,计算节点使用缓冲区loc_buf中的本地权重
Figure BDA0003717920980000081
计算本地梯度Gradi,j,KVstore模块的梯度累计函数将计算得的本地梯度Gradi,j累加到计算节点的缓冲区comm_buf中,之后根据计数器CountA的内容判断是否应该执行梯度推送操作,如果应该执行,则先调用梯度平均函数对缓冲区comm_buf中的数据执行平均操作,之后启动本地更新器用计算后的梯度变量
Figure BDA0003717920980000082
更新本地权重
Figure BDA0003717920980000083
同时,把梯度变量
Figure BDA0003717920980000084
从计算节点推送到参数服务器,参数服务器聚合了所有的节点的
Figure BDA0003717920980000085
之后,开始更新全局权重Wl;如果计数器判断需要执行权重拉取操作,则把全局权重Wl从参数服务器拉取到计算节点的缓冲区loc_buf中,将全局权重Wl作为新的本地权重,MXNet的依赖引擎确保缓冲区loc_buf中的本地权重在参与本地梯度计算后才被全局权重Wl覆盖,所以并不会出现访存错误和计算错误;如果计数器判断不需要执行所述的梯度推送操作和权重拉取操作,则继续使用原有的本地权重
Figure BDA0003717920980000086
进行本地梯度计算。由于在拉取Wl之前,计算节点仍会利用现有的本地权重
Figure BDA0003717920980000091
进行梯度计算,所以本发明采用的计算/通信机制能确保下一次迭代中的计算不会因通信而延迟,从而消除通信瓶颈带来的影响。
本发明的目的的是为了解决本地更新类算法难以兼顾高速度与高精度两项有点这一难题,通过对通信开销进行掩盖,提高计算与通信的重叠性以提高训练效率,并且梯度累计这一技巧能帮助参数的更新迅速而平稳。这里对DSL-SGD方法是否到达上述目的进行了有效性评估。图1为采用不同方法在4个计算节点上(每个节点配置4个V100 GPU)进行ResNet-50模型训练的Epoch-精度对比图;图2为采用不同方法在4个计算节点上(每个节点配置4个V100 GPU)进行Inception-Bn模型训练的时间-精度对比图;图3为采用不同方法在4个计算节点上(每个节点配置4个V100 GPU)进行ResNet-20模型训练的通信次数-精度对比图;图4为不同方法在V100集群采用4个计算节点进行训练的速度对比;图5为不同方法在V100集群采用8个计算节点进行训练的速度对比。
图1到图3给出了DSL-SGD(本发明方法)、S-SGD(传统高精度同步更新算法)、Local-SGD(目前最先进的一种本地更新算法)、OD-SGD(一种本地更新算法,本专利借鉴了它的本地更新机制思想)几种方法的收敛精度与训练Epoch数量、时间、通信次数等变量的关系的曲线对比图。实验中采用了4个参数参数服务器和4个计算节点,单节点批大小为128,所有算法的全局学习率(lr)为0.1,DSL-SGD和OD-SGD以及Local-SGD的本地lr为0.4。此外,DSL-SGD和Local-SGD的通信步长k大小为5。基于图1到图3,可以得出下述结论:(1)Local-SGD的测试准确率略低于其他三种方法,而DSL-SGD没有这一问题,其收敛性能非常接近S-SGD,甚至高于OD-SGD。(2)DSL-SGD具有速度更快,对通信次数需求更低的特点,这能极大程度消除分布式通信瓶颈问题。
图4到图5给出了上述方法在V100集群上使用1Gbps带宽进行训练的平均节点速度对比。DSL-SGD和Local-SGD的通信步长k大小为10,每个柱状图的顶端、中点、末端分别对应使用批大小为512、256、和128时各个算法的速度情况,其余参数设置同上述介绍。基于图4到图5,可以得出下述结论:(1)使用4节点训练不同模型时DSL-SGD的速度下限总是比较高,这能反映出DSL-SGD在网络较差的环境中也能具有比其他算法更好的性能表现(2)使用更多节点训练时,DSL-SGD的平均节点速度受到影响较小,这说明DSL-SGD具有近似线性的可扩展性(3)即使和目前最先进的本地更新算法相比,DSL-SGD仍能具有更高的速度优势,这说明在DSL-SGD中采用的通信掩盖策略是十分有效的。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (3)

1.一种面向大规模GPU集群的分布式局部随机梯度下降方法,其特征在于,其利用参数服务器和计算节点来实现;
计算节点用于进行本地梯度以及本地权重的计算;
参数服务器用于接收并聚合所有的计算节点发送的梯度信息并进行全局权重更新;
参数服务器与计算节点之间的数据交互采用一个参数服务器与多个计算节点相通信的模式。
2.如权利要求1所述的面向大规模GPU集群的分布式局部随机梯度下降方法,其特征在于,其具体步骤包括:
S1,在计算节点设置本地权重更新器;
S2,在每次迭代中,计算节点利用本地权重,计算每次迭代训练的本地梯度,第j个计算节点在第i次迭代训练中的本地梯度值Gradi,j的计算公式为:
Figure FDA0003717920970000011
其中,
Figure FDA0003717920970000012
表示第j个计算节点在第i次迭代训练使用的本地权重,grad_cal为用于本地梯度计算的函数,N为计算节点的个数;对于本地梯度值Gradi,j的计算,利用本地权重
Figure FDA0003717920970000013
和输入到第j个计算节点的样本特征Xj来计算得到第j个计算节点的预测结果Yj’,由预测结果Yj’和第j个计算节点的标签Yj计算出损失值loss,再对损失值loss求导,即得到第j个计算节点的在第i次迭代训练时的本地梯度值Gradi,j
S3,在本地权重更新器中建立梯度变量,第j个计算节点的本地权重更新器所建立的梯度变量为
Figure FDA0003717920970000014
对于每个计算节点,利用每次迭代训练中所计算得到的本地梯度值Gradi,j,与梯度变量
Figure FDA0003717920970000015
相加,得到更新后的梯度变量;
S4,在每个计算节点执行k次迭代训练后的首次迭代训练中,所有的计算节点之间进行一次参数同步,将该执行参数同步的迭代训练命名为通信迭代,如果当前迭代训练是通信迭代,则执行步骤S5,否则执行步骤S6;
S5,每个计算节点对其梯度变量执行平均操作,对于第j个计算节点的梯度变量
Figure FDA0003717920970000021
其平均操作的计算公式为:
Figure FDA0003717920970000022
用平均操作后得到的梯度变量
Figure FDA0003717920970000023
参与本地权重
Figure FDA0003717920970000024
的更新过程,得到更新后的本地权重
Figure FDA0003717920970000025
更新过程的计算公式为:
Figure FDA0003717920970000026
其中η是超参数学习率,将所有计算节点的平均操作后得到的梯度变量发送给参数服务器,参数服务器收集到来自各个计算节点的梯度变量后,更新全局权重Wl,更新全局权重的公式为:
Figure FDA0003717920970000027
其中η是超参数学习率,N为计算节点个数;
S6,执行步骤S1和步骤S2,在每次通信迭代之后的第2次迭代训练,参数服务器将全局权重Wl发送到所有工作节点,所有工作节点利用全局权重Wl对其本地权重分别进行更新,更新公式为:
Figure FDA0003717920970000028
重复执行步骤S4若干次后,得到最终收敛的本地权重和全局权重。
3.如权利要求2所述的面向大规模GPU集群的分布式局部随机梯度下降方法,其特征在于,所述的本地权重更新器用于利用本地权重进行本地梯度计算。
CN202210749875.6A 2022-06-28 2022-06-28 面向大规模gpu集群的分布式局部随机梯度下降方法 Pending CN115129471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210749875.6A CN115129471A (zh) 2022-06-28 2022-06-28 面向大规模gpu集群的分布式局部随机梯度下降方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210749875.6A CN115129471A (zh) 2022-06-28 2022-06-28 面向大规模gpu集群的分布式局部随机梯度下降方法

Publications (1)

Publication Number Publication Date
CN115129471A true CN115129471A (zh) 2022-09-30

Family

ID=83380335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210749875.6A Pending CN115129471A (zh) 2022-06-28 2022-06-28 面向大规模gpu集群的分布式局部随机梯度下降方法

Country Status (1)

Country Link
CN (1) CN115129471A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116542324A (zh) * 2023-07-06 2023-08-04 之江实验室 一种面向智能计算的分布式异步规约方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116542324A (zh) * 2023-07-06 2023-08-04 之江实验室 一种面向智能计算的分布式异步规约方法和装置
CN116542324B (zh) * 2023-07-06 2023-10-10 之江实验室 一种面向智能计算的分布式异步规约方法和装置

Similar Documents

Publication Publication Date Title
CN114756383B (zh) 一种分布式计算方法、系统、设备及存储介质
CN110533183B (zh) 流水线分布式深度学习中异构网络感知的任务放置方法
Zhao et al. Dynamic stale synchronous parallel distributed training for deep learning
US11436065B2 (en) System for efficient large-scale data distribution in distributed and parallel processing environment
CN110942138B (zh) 一种混合内存环境下深度神经网络的训练方法和系统
CN109635922B (zh) 一种分布式深度学习参数量化通信优化方法及系统
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
CN111079921A (zh) 一种基于异构分布式系统的高效神经网络训练调度方法
CN113794748B (zh) 一种性能感知的服务功能链智能部署方法及装置
CN112862088A (zh) 一种基于流水线环形参数通信的分布式深度学习方法
CN114357676B (zh) 一种针对层次化模型训练框架的聚合频率控制方法
CN113159287B (zh) 一种基于梯度稀疏的分布式深度学习方法
CN113627519B (zh) 具有压缩和延迟补偿的分布式随机梯度下降方法
CN109032630B (zh) 一种参数服务器中全局参数的更新方法
CN115293342A (zh) 一种基于混合并行的深度卷积神经网络并行训练方法
CN115129471A (zh) 面向大规模gpu集群的分布式局部随机梯度下降方法
CN116137593A (zh) 一种数字孪生辅助动态资源需求预测的虚拟网络功能迁移方法
CN115994567A (zh) 一种深度神经网络模型并行计算任务异步调度方法
CN114465900B (zh) 基于联邦边缘学习的数据共享时延优化方法及装置
CN117234710A (zh) 一种采用强化学习实现ai模型训练内存优化的方法
Duan et al. Mercury: A simple transport layer scheduler to accelerate distributed DNN training
KR102463147B1 (ko) 초병렬 심층 학습 방법 및 장치
CN109636709A (zh) 一种适用于异构平台的图计算方法
Zhou et al. AdaptCL: Efficient collaborative learning with dynamic and adaptive pruning
CN113342313B (zh) 一种基于参数服务器异步更新Spark MLlib中线性分类模型参数的方法

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