没有合适的资源?快使用搜索试试~ 我知道了~
1764∼→→分布式深度学习训练中的缩放性能建模与优化刘婷1,2,*,苗天豪1,2,*,吴清华1,3,李振宇1,3,何光新1,2,吴教仁4,张胜卓4,杨兴武4,Gareth Tyson5,6,谢高岗2,71中国科学院计算技术研究所2中国科学院大学3紫金山实验室4、中国快寿,5、香港科技大学,香港6英国伦敦玛丽皇后大学7中国科学院计算机网络信息中心{liuting19g,miaotianhao18z,wuqinghua,zyli}@ict.ac.cn,heguangxin17@mails.ucas.ac.cn{wujiaoren,zhangshengzhuo03,yangxingwu}@kuaishou.com,g. qmul.ac.uk,xie@cnic.cn摘要分布式深度学习(Distributed Deep Learning,简称DAI)被广泛用于加速各种Web应用程序的深度神经网络训练。在每次迭代训练中,每个工人与其他工人一起学习神经网络梯度。 这引入了通信开销并且降低了缩放性能。本文提出了一个递归模型OSF(ScalingFactor Considering Overlap),用于估计神经网络模型的递归训练的缩放性能,给出了递归系统的设置 OSF捕获了可重构训练的两个主要特征:计算和通信之间的重叠,以及用于批量更新的张量融合。在实际的GPS系统上的测量表明,OSF获得了较低的估计误差(对于不同的模型,范围从0.5%到8.4% 使用OSF,我们确定了降低缩放性能的因素,并提出了解决方案,以有效地miti门的影响。具体而言,所提出的自适应张量融合的缩放性能提高了32.2%-150%相比,恒定的张量融合缓冲区的大小。CCS概念• 计算方法学机器学习;分布式计算方法学;网络网络测量。关键词分布式深度学习,伸缩性能,性能建模,张量融合ACM参考格式:刘婷1,2,*,苗天豪1,2,*,吴清华1,3,李振宇1,3,何光新1,2,吴教仁4,张胜卓4,杨兴武4,Gareth Tyson5,6,谢高岗2,7. 2022年在分布式深度学习训练中建模和优化缩放性能。在ACM Web的会议记录中* 共同第一作者。本作品采用知识共享署名国际协议(Creative Commons Attribution International)授权4.0许可证。WWW©2022版权归所有者/作者所有。ACM ISBN978-1-4503-9096-5/22/04。https://doi.org/10.1145/3485447.3511981会议2022(WWWACM,美国纽约州纽约市,10页。https://doi.org/10.1145/3485447.35119811引言Web每天都在不断地产生数万亿字节的数据。 这些数据被馈送到深度学习模型,以大大提高Web应用程序的性能,例如,图像识别[19,46],语音识别[17]和语言翻译[12]的精度。 随着Web数据规模的不断增加和深度学习模型规模的不断扩大,在单一机器上进行模型训练面临着巨大的挑战。例如,Google将BERT模型应用于搜索服务,而BERT基础模型有1.1亿个参数,需要在单个TPUv2卡上进行大约两周的训练。过长的模型训练时间严重阻碍了Web应用程序开发的进程。有一种趋势是使用分布式深度学习(Distributed Deep Learning,缩写为EML)来加速这种模型训练。在迭代训练中,每个工人在本地训练深度神经网络的副本,并在迭代结束时与其他工人一起对模型梯度进行迭代[25,27,33]。当然,随着训练系统规模的扩大,这些工作者之间的通信开销会增加,从而影响训练过程的性能[34]。有两个关键的架构采用在XML中:参数服务器[29]和所有减少[15]架构。 在参数服务器架构中,所有训练工作器连接到每个共享参数服务器,并在每次迭代结束时上传其模型梯度。然后服务器更新梯度,并在下一次迭代之前将其广播回所有培训工作者。如果存在大量的工作者,服务器可能会成为瓶颈[36]。在All-Reduce架构中,每个训练工作者与逻辑拓扑(环形或树形)中的相邻工作者这是以All-Reduce[35]的方式完成的,它消除了集中式服务器的瓶颈 与参数服务器方法相比,All-Reduce架构更常用于分布式系统,因为它更好地利用了网络带宽[15,22,44]。因此,在本文中,我们将重点放在All-Reduce架构上。有许多关于提高All-Reduce训练的缩放性能的工作在这里,我们将扩展性能定义为引入额外工作器的增量加速例如,梯度量化[3,40]和稀疏化[2,23,31]减少了WWWT. liu等人1765∼以增加的计算开销和精度损失为代价,通过减少传递的梯度的量来减少通信开销。大批量训练[53,54]和异步SGD [20,52,56]降低了梯度同步的频率,以节省通信开销,这可能会减慢模型的收敛速度由于存在梯度的多个神经网络层,因此这些梯度的通信也可以是同步的。:正向中的第i向前计算通信:层i在向后落后重叠n空闲:Update-gradients中的图层i更新梯度…21通过张量融合[41],张量分区[18,24]或根据梯度的计算时间[38,55]进行调度,以减轻通信开销的影响。尽管有这些努力,到目前为止,我们缺乏对关键因素如何影响可伸缩训练的扩展性能以及如何缓解这些因素在本文中,我们首先建立了一个递归模型,OSF(考虑重叠的缩放因子),以描述训练的缩放因子,给定的神经网络模型的参数和设置的并行系统。 OSF抓住了分布式训练中的两个主要特征:计算和通信之间的重叠,以及将多个小的All-Reduce操作合并为一个。 我们建立了一个可扩展的测试平台,并使用它来评估OSF在预测各种神经网络模型的缩放性能方面的准确性,并测量张量融合对缩放性能的影响。最后,为了减轻通信时间对缩放性能的影响,我们建议用替代模型块替换通信密集型层,以提高缩放性能而不降低精度。提出了一种自适应的张量融合策略,根据模型各层的FLOP和参数大小来决定是否进行张量概括起来,本文的贡献如下:我们提出了OSF模型(§2)来估计神经网络训练的缩放性能,给定了神经网络系统的设置和神经网络(NN)模型的参数。OSF的估计误差在0.5%~ 8.4%之间,比基于C2C(通信到计算)的估计方法低83.8%以上。• 我们测量了典型NN模型的缩放性能(§3)一次迭代训练图1:计算、沟通及其在训练中的重叠都是在All-Reduce架构中训练出来的我们使用缩放因子来表示神经网络模型在训练中的缩放性能。比例因子(SF)由等式1定义SF=T1、(1)TN· N其中,T1表示一个训练工作者对于具有预设数据集、模型和训练目标的训练作业的执行时间TN表示系统在处理相同的训练任务时有N个工人的执行时间。例如,对于给定的培训作业,假设1个工人花费9个小时完成作业,8个工人花费1.25个小时完成作业。具有8个工人的系统的比例因子将是9/(1.25*8)= 0.9。缩放因子越高,训练的性能越高2.1考虑重叠的缩放因子(OSF)机器人训练时间大致由两部分组成:单个工人的计算和工人之间的通信。前-[44]提出了通信计算(C2C)比率来描述神经网络模型的可扩展性。C2C比率越高,模型的可扩展性就越低。然后,如等式2所示推导出全归约架构中的基于C2C的缩放因子(CSF),其中Tcomp是模型在一次训练迭代中的计算时间,Tcomp是一次训练迭代中的通信时间,并且C2C是通信时间与计算时间的比率。通过对通信时间的细分分析,发现:T组分1(1) 通信调度的效率(例如, 重叠通信和计算,张量融合)取决于NN层的内部属性(例如,(2)张量融合中缓冲区大小的不适当设置会导致ALLREDUCE时间过长或WAIT时间增加,从而降低缩放性能。我们提出了两个优化(§4):(1)层替换,减轻了通信密集型层的影响,将缩放性能从0.25提高到0.75(使用32个GPU时);(2)自适应张量融合(adaFusion),根据模型各个层的FLOP和参数大小确定是否融合张量。 使用adaFusion,缩放因子比使用恒定张量融合缓冲区大小的缩放因子高32.2%-150.0%,也比MG-MFBP高9.0%-19.6%[43]。第2章缩放因子在本节中,我们将对神经网络在训练中的缩放性能进行在本文中,所有神经网络模型CSF=Tcomp+Tcomp=1+C 2C(2)由于深度神经网络模型是由多层组成的,在反向传递中,一层的计算一完成就可以开始通信,上层的计算也可以同时开始。因此,计算和通信之间存在重叠,C2C和CSF忽略了这一点,因此无法预测缩放性能。定义重叠:计算和通信之间的重叠如图1所示。 从图中可以看出,训练系统中的一次迭代由三个部分组成:向前、向后和更新梯度操作。每个GPU在前向和后向阶段期间在本地计算梯度,其中前向传递是指按照从输入层到输出层的顺序计算模型的中间变量和输出,而后向传递是指按照相反顺序遍历网络的模型参数的梯度的计算。然后,它在更新梯度操作期间执行梯度同步和SGD优化,这构成了通信开销。当计算线程启动反向我我我n-1·1…nnn-1…21·分布式深度学习训练中的缩放性能建模与优化WWW1766·()下一页–−≥(−)(−)N··π·s−.(10)作为n−1t(j)). τ(i)的递归定义如下:在相邻层的通信之间,如图1所示。接下来,我们分别定义T_comp、T_update和T_o_v_erlap。我·落后表1:建模中的变量比例因子操作的一个小批量的数据需要计算在一个迭代的前向传递层i,和M C(i)是计算的时间在一个小批量的前向传递层i [16,29]。nTcomp =3T向前=13名男·女(一)(5)cπ定义T更新:设t(i)在等式6a中定义的。ckward表示的是t(i)(一)2M·C(i)落后 =2·t向前=Cπ(6)此外,令t_update_D表示具有大小D的层或张量的更新梯度时间,在等式7中定义。2(N− 1)(N− 1)tupdate(D)=β·N·D+N·π·s·D+δ,(7)其中D表示层或张量的参数的大小操作时,通信线程检查是否有gra-2(N−1)·Dr表示梯度的传输时间,其中(N−1)β·N(N−1)准备转移。一旦它们准备好了,通信线程就以全精简的方式将它们与其他GPU进行理想情况下,向后和更新梯度操作应该并行运行,以提高缩放性能。这是因为非重叠通信时间越少,它对缩放性能的影响就越小 从图1中可以看出,当神经网络模型的层n完成后向操作时,层n 1开始其后向操作,并且层n同时开始更新梯度。对于层i(n1i 1),其更新梯度的开始受到层i的后向的完成和层i+1的更新梯度的完成在一些实施例中,每个浮点数表示离散-归约迭代和N1个全聚集迭代的计算时间,D表示在N1个离散-归约迭代中梯度聚合的计算时间,s表示每个浮点参数占用的字节数,并且δ是每个全归约操作中的通信开销,其可以在给定的并行系统的情况下直接测量。我们使用τ(i)表示层的更新梯度的开始时间i,它是以递归的方式定义的。 对于层n,更新梯度τ(n)的开始时间为0。 对于层i(n> i 1),更新梯度的开始时间τ(i)不早于层i+1的更新梯度的结束(表示为τ(i+1)+t_update(D(i+1)以及ac_c。从layern−1到layeri(表示为d考虑重叠(OSF)指标的因子如等式3所示,OSF被定义为计算时间T_comp与计算时间T_comp之和的比率。方程B8a.ckward计算时间和通信时间Tupdate减去重叠时间Toverlap。 值得注意的是,OSF中的T更新不等于CSF中的T更新,因为T更新包含空闲时间τ(i)=π 0,如果i=nmax(τ(i+1)+t(D(i+1)),n.−1t(j)),否则(八)表1列出了所有涉及的变量。OSF=TcompTcomp + T更新 −Toverlap(三)最后,根据定义,我们有:不更新 =τ(1)+t更新(D(1))。(九)定义Toverlap:对于一次迭代的更新梯度定义Tcomp:Tcomp可以计算为所需的计算操作除以一个工人的计算能力。在这里,我们假设梯度与参数大小相同,根据[44]。向后操作的时间复杂度是向前操作的两倍[10,42]。因此,计算时间被描述为:Tcomp =T向前+T向后=3·T向前(4)训练平台使用不同的算法(例如,GEMM,开始不能早于第n层后向的完成。此外,完成不能早于层1的后向完成。考虑到连续执行一次迭代的向后操作,重叠时间Toverlap被估计为从n_1到1的层的向后时间之和,如等式10所示。这给了我们一个缩放性能的估计,其中考虑了重叠。Winograd [26]),根据其属性(例如,过滤器大小,批量大小),Tov erlap=n−11i向后并且因此具有不同的GPU利用率系数(c),其可以通过在真实的GPU系统中测量来确定。 总之,T_comp可以表示为等式5,其中M表示具有SGD的小批量的大小,C(i)表示浮点数通过分别用等式5、9、10替换等式3中的Tcomp、Tupdate和Toverlap,可以用我们的OSF模型估计给定的神经网络系统设置的任何神经网络模型的缩放因子.考虑到上述见解,我们接下来提出了缩放更新可变意义N工人的数量(即,GPU)β中相邻GPU之间的网络带宽拓扑δ通信开销,由延迟决定GPU和拓扑规模之间的关系n模型中的层数D(i)模型中第i层参数的大小M具有SGD的小批的大小C(i)一个小批处理所需的浮点操作数为了在层i的前向传递的迭代中计算π计算平台的峰值计算能力(inFLOPS)C模型的梯度运算可以利用GPUS一个内存占用的字节数浮点参数WWWT. liu等人176712341234中文(简体)中文(简体)•−落后落后等T+T−TOSF=,(11)等.t(更新更新落后(十四)2.2张量融合下的OSF张量i(一个层中可能有多个张量)。在层i1的反向传递完成之前发生超时• 缓冲区没有足够的空间来存储张量落后缓冲区大小= 2张量푡푖푚푒层i-1。否则,当前层的张量存储在缓冲区中。设F(i)表示完成后转移张量的大小,All-Reduce w/o Fusion层i的后向传递,其在等式13中定义。All-Reduce w/Fusion等等F(i)=B(i),如果i=1或t(i)>timeout或B(i)+D(i−1)>Q图2:训练中的张量融合示例上面定义的OSF仅考虑以下场景:10万美元,(十三)All-Reduce操作在计算完图层在训练过程中,通信调度程序还可以批处理多个小的All-Reduce对于层i,当通信调度器决定传送缓冲器中的张量(直到层i)时,层i的张量可以已经被缓冲了短的持续时间,表示为t(i),将多个操作合二为一,以减少通信开销。这被称为张量融合,如图2所示。缓冲区大小决定了一次迭代中应该融合多少张量在公式14中定义。等减少所有沟通。在示例中,缓冲区大小设置为如果i>1且t(i−1)t(t(−>超时两个张量以便于说明。对于张量4和张量3,如果它们被融合在一起,减少了总的通信时间我等=I1落后,否则如果i>1且B(i)+D(i−1)>Q融合在一起,总的通信时间增加,因为对于第i层,给定传输的张量F(i)的量,等待时间比通过融合保存的ALLREDUCE时间长因此,我们接下来建模张量融合对缩放的影响传输前的时间t(i)和反向传递的持续时间性能,如公式11所示t(i),张量转移的开始时间不早于Tcompff压缩更新或迭代其中,Tcomp和Toverlap具有与等式3. 接下来,我们用公式表示通信时间T febnadcktiwmaerd的第i+1层的张量传递以及第i层的反向通过的完成时间。因此,层i的张量传送的开始时间(表示为τ(i))在等式15中定义,其中t_update(F(i+1))是全归约操作所需的时间缓冲张量F(i+1)。张量融合下的更新,以模拟其对缩放性能的影响。在张量融合中,影响分布式训练性能的主要参数有两个:融合缓冲区大小Q,它是在一次全归约中传输的张量的最大量。τ(i)=π 0,如果i=nmax(τ(i+1)+t(i+1)+tupdate(F(i+1)),n−1我j向后),否则(15)超时超时,这是最长的时间等待上层的张量 对于每一层,在其反向传递完成后,张量被放入缓冲器中以进行融合传输。当缓冲区已满或发生超时时,缓冲区中的张量将以全归约方式传输并清除缓冲区。张量融合不影响并行训练的计算时间和重叠时间对于每个层i,在其反向传递完成之后,通信调度器尝试将该层的张量放入融合缓冲器中,只要缓冲器容量允许。因此,在将层i的张量放入缓冲器之后,缓冲张量的大小(表示为B(i))在等式12中定义。综上所述,张量融合下的总通信时间定义在等式16中Tf=τ(1)+tupdate(F(1))(16)通过用公式16替换公式11中的Tf f,我们可以计算任何神经网络模型的比例因子,给定了神经网络系统的设置以及张量融合的参数。3测量缩放性能在本节中,我们将检查OSF在估计B㈠=D(i),如果i=n或B(i+1)+D(i)>Q或t(i)B(i+1)+D(i),否则≥超时(十二)扩展性能,并评估各种因素对扩展性能的影响。 为此,我们首先构建了一个可代表Web应用程序使用的可扩展系统的规范和配置的可扩展系统[4,5,7]。当层i的张量被缓冲以用于融合时,如果满足以下条件之这是层1,意味着在此迭代中没有更多的层3.1测量设置硬件:我们在一个由4台机器组成的集群上进行实验,连接速度为25Gbps。 每台机器配备8个Nvidia GeForce RTX 2080 Ti GPU和1个Mellanox ConnectX-4 Lx NIC。我因为All-Reduce的一次迭代节省的时间大于WAIT时间。但是,对于张量2和张量1,如果它们·0,否则分布式深度学习训练中的缩放性能建模与优化WWW17680.60.50.40.30.20.10.0VGG16VGG19ResNet50ResNet101 ResNet152降低ResNet模型的缩放性能。比较CSF和OSF,CSF中的所有张量在一个All-Reduce操作中传输以消除通信开销(δ),一个层中的所有张量在反向传递完成后立即传输,这消除了层1的反向传递的等待时间。从表2中可以看出,ResNet模型有许多微小的层和张量。对于这类模型,“计算后通信”(CSF建立在此基础上)具有更高的图3:不同型号的CSF、SF和OSF每个GPU都有11 GB的内存,并通过PCIe 3.0 x16连接在一台机器上。软件:TensorFlow用于在本地训练模型,Horovod是一个广泛使用的分布式深度学习平台而不是“一次计算后立即通信”(OSF建立在此基础上)。 它还证明了张量融合的有用性,这将在本节稍后进行研究。训练,用于在工作者之间同步模型梯度。培训工作者之间的通信组织在一个环形的All-Reduce架构中,该架构由通信库NVIDIANCCL 支 持 。 实 验 中 使 用 的 软 件 版 本 为 Horovod 0.20.0 、TensorFlow2.3.0 、 NCCL2.8.4 。 带 有 镜 像 的 Dockerhorovod/horovod:0.20.0-tf2.3.0-py3.7-cuda10.1用于软件系统的快速部署0.70.60.50.40.30.20.10.01KB 1MB 100MB1GB张量融合缓冲区大小(a) ResNet1010.300.250.200.150.100.050.001KB 1MB 100MB 1GB张量融合缓冲区大小(b) VGG16我 们 选 择 了 五 个 代 表 性 的 神 经 网 络 模 型 : ResNet50 ,ResNet101,ResNet152 [19],VGG16 [46]和VGG19。表2列出了模型的参数和相关信息。 我们采用合成数据集,这是更适合于比现实世界的数据集时,测量的缩放性能,随机生成的样本和标签消除的元素,这是无关的测量。 在Synthetic数据集中,根据Horovod的指导原则,随机生成大 小 为 224x224x3 的图像( 与ImageNet [11]中的图像相同)和分类标签[21]。表2:基准模型名称GFLOPs参数大小(MB)#层#张量图4:不同张量融合缓冲区大小下模型的CSF、SF和OSF函数接下来,我们评估当张量融合打开时OSF模型的准确性图4显示了ResNet101和VGG16在不同张量融合缓冲区大小下的CSF、SF和OSF函数值对于图4a中的ResNet 101,我们看到OSFf获得了最大估计误差(3.2%),远低于CSF(16.1%),这证明了OSFf在张量融合下建模缩放性能的准确性。请注意,在这组实验中,CSF将所有张量融合到一个All-Reduce操作中。当缓冲区大小为1 KB或1 MB时,CSF值高于SF和OSF值;但当缓冲区大小为100 MB或1GB时,CSF值低于SF和OSF值。这观察表明,融合缓冲器的大小需要仔细调整,以获得更好的缩放性能,这将在下面的部分中进行研究。对于图4b中的VGG16,CSF的估计误差与OSF的估计误差是可比较的,这意味着计算和通信之间的重叠3.2测量OSF的准确性我们首先评估所提出的OSF模型的准确性图3显示了在我们的测试平台上训练的不同模型的SF,CSF和OSF。在这里,我们将GPU的数量固定为32,并关闭张量融合 在图中,SF的每个条上的数字表示测量的缩放因子; CSF和OSF的每个条上的数字分别表示它们相对于SF的估计误差。OSF的估计误差在0.5%~ 8.4%之间,远低于CSF的估计误差(8%~ 51.9%)。具体而言,与CSF相比,OSF将估计误差降低了83.8%以上。结果表明,OSF建模的效率在估计缩放性能给定的神经网络模型和可伸缩系统设置。另一个有趣的观察是,ResNet模型的CSF值高于OSF和SF值,表明通信和计算之间的重叠(由OSF捕获)性能此外,当张量融合缓冲区的大小小于1GB时,SF和OSF的f值几乎保持不变,这意味着张量融合对其缩放性能的影响可以忽略不计。 这两个现象可以解释为VGG16的一个完全连接层占用了总通信时间的74.2%,这不受计算和通信之间的重叠或张量融合的影响。 当缓冲区大小设置为1GB时,由于张量融合增加了WAIT时间,SF和OSF的f值略有下降,这将在接下来进行研究。然而,在张量融合的情况下,OSF f估计总是能够以相当低的误差估计SF值。3.3测量张量融合的影响张量融合的基本原理是将多个小的All-Reduce操作批处理为一个,以减少ALLREDUCE时间,代价是增加WAIT时间。为了研究张量融合对CSFSF OSF百分之三十五点六百分之五十一点九百分之三十四点五3.3%1.4%8.4%百分之零点八0.5% 10.4%百分之八点零CSF SFOSF融合百分之零点六百分之零点五百分之十六点一6.3%16.1%3.2%百分之十一点二百分之一点六CSFSFOSF融合1.4%百分之一点五百分之零点三7.2%8.8%百分之九点六1.0%百分之零点九SFSFSFResNet5049850176ResNet1018170101346ResNet15212230152516VGG16165281622VGG19205491924WWWT. liu等人1769缩放性能,我们首先将通信时间分解为不同的组成部分。分 解 沟 通 时 间 : 培训中的 沟 通 时间由四部分组成,即NEGOTI-ATE、ALLREDUCE、WAIT和MISC。在训练过程中,TensorFlow执行的计算图会导致多个GPU之间的张量传输顺序不同因此,有一个GPU作为主GPU(负责张量排序)。一旦一个层的梯度准备就绪,GPU将张量发送4003503002502001501005000 1KB 1MB 100MB1GB张量融合缓冲区大小(a) #(所有Reduce操作)0.70.60.50.40.30.20.10.0ResNet101VGG160 1KB1MB100MB1GB张量融合缓冲区大小(b) 扩展性能向主人致敬主节点确定张量的转移顺序,并将该顺序报告给工作节 点 。 用 于 确 定 GPU 之 间 张 量 传 输 顺 序 的 阶 段 称 为NEGOTIATE。在此之后,所有涉及的GPU同步张量(即,通过All-Reduce通信。这个阶段被称为ALLREDUCE。 如果启用张量融合,则在接收到来自主设备的响应之后,每个GPU还可以在传输之前等待(缓冲)与其他张量的融合。这个阶段被称为等待。还有MISC阶段(包括内存复制,等待计算),它占用相对较小且恒定的通信时间。图6:张量融合缓冲区大小的影响在图6a中,All-Reduce操作的数量急剧下降。 这导致图6b中的比例因子的增长。 当缓冲区大小增加到1GB时,ResNet101的缩放因子开始减小(尽管仍然比没有张量融合的情况多40%)。相比之下,对于VGG16,当缓冲区大小从0增加到100 MB时,缩放因子几乎保持不变。 由于VGG 16的层数较少,因此All-Reduce操作的数量也相对较少,如图6a所示。当缓冲区大小设置为1GB时,与没有张量融合的情况相比,VGG16的缩放因子降低了9%。60050040030020010004 8 16 2432的gpu80060040020004 8 16 2432的gpu600500400300200100001KB1MB100MB1GB张量融合缓冲区大小(a) ResNet1018006004002000谈判全面减少等待杂项01KB1MB100MB1GB张量融合缓冲区大小(b) VGG16(a) ResNet101(b) VGG16图7:ResNet101图5:ResNet101和VGG16在不同GPU接下来,我们测量每个阶段的比例,以研究缩放性能如何受到通信时间的四个组成部分的影响。图5显示了ResNet101和VGG16的通 信 时 间 对 于 图 5a 中 的 ResNet101 , 当 增 加 GPU数 量 时,ALLREDUCE在32个GPU下占用了88%的通信时间。 与ResNet101相比,VGG16始终具有较高的ALLREDUCE比例和较低的MISC比例。这是由于(通信密集型)VGG16模型的参数更大 我们还看到,对于这些模型,多个GPU之间的NEGOTIATE时间可以忽略 不 计 , 这 与 [ 39 ] 中 的 先 前 观 察 结 果 相 矛 盾 , 其 中NEGOTIATE中的长旋转等待[6]会导致显着减速。 在该系统中,GPU的相等计算能力和合成数据集的使用分别消除了计算和工作负载的不平衡,从而导致相对较短的谈判时间。由此,我们得出结论,具有相同计算能力的GPU可以改善分布式训练,因为谈判时间(以及扩展性能)由最慢的工人决定测量张量融合缓冲区大小的影响:我们首先测量一次训练迭代中All-Reduce操作的数量,以及ResNet 101和VGG 16在32个GPU上运行的各种缓冲区大小的缩放因子,如图6所示。对于ResNet101,卷积层中有许多小张量。当缓冲区大小从0增加到100 MB时,和VGG16与张量融合当改变缓冲区大小时,缩放因子的差异来自于张量融合对ALLREDUCE时间和WAIT时间之间的权衡有影响的事实。接下来,我们分析ResNet101和VGG16在不同缓冲区大小下的通信时间,并研究其影响,如图7所示。对于图7a中的ResNet 101,当缓冲区大小从0增加到100 MB时,通信时间会减少,因为微小张量的融合有效地减少了ALLREDUCE时间。 随着缓冲区大小继续增加,WAIT时间相应增加,这会降低缩放因子。相比之下,对于图7b 中的VGG16,当缓冲区大小增加到100MB时,ALLREDUCE时间几乎不变,并且WAIT时间几乎为0。当缓冲区大小增加到1GB时,最大的张量可以与其他张量融合,节省了ALLREDUCE时间,但代价是大大增加了WAIT时间,这使得通信时间比没有张量融合时增加了8%3.4结果总结所提出的OSF模型具有更低的估计误差比C2C推导的CSF模型建模的缩放性能的训练,因为我们的OSF模型精确地捕捉计算和通信之间的重叠,并更新。系统和神经网络模型设计者可以利用OSF模型来估计和改进可重构系统的缩放性能。谈判全面减少等待杂项谈判全面减少等待杂项ResNet101VGG16谈判全面减少等待杂项时间(毫秒)时间(毫秒)#ALLREDUCE操作时间(毫秒)SF时间(毫秒)分布式深度学习训练中的缩放性能建模与优化WWW1770等更新表3:VGG16和具有层替换的VGG16的相关层1.00.80.60.40.20.0VGG16VGG16,带层替换4 8 16 24 32的gpu我们使用它来更好地理解扩展性能。我们发现,对于具有许多微小张量的神经网络模型(例如,ResNet101),重叠计算和通信可能导致比“在所有计算之后通信”策略更差的缩放性能。此外,对于具有单个大张量的神经网络模型(例如,VGG 16),张量融合对其伸缩性能。此外,不适当的设置(例如,使用默认值)可以进一步导致较长的ALLREDUCE时间或增加的WAIT时间。4基于我们在上一节中的分析,我们通过使用两种机制来提高缩放性能。第一台机甲--NISM(称为层替换)旨在减轻通信密集层(具有大参数大小)对缩放性能的影响。第二种机制(称为自适应机制)图8:VGG16和VGG16的缩放因子,层重新不同数量GPU下的布局7654320 20 40 60 80 100 120时代图9:VGG16和VGG16层替换的训练损失当融合张量的等待时间与通信时间之和小于分别传送张量的通信时间时,可以也就是说,层i的张量仅在以下情况下融合:张量融合(tensor fusion,adaFusion)允许适当设置缓冲区大小张量融合t更新(B(i+1)+D(i))+t(i)< t更新(B(i+1))+t更新(D(i))。(十七)4.1层替换受[30]中网络中网络方法的启发,我们建议用卷积层和全局平均池化层代替全连接层。表3说明了VGG16的替换。我们测量了这种方法的有效性,并在图8中展示了扩展性能。 我们使用ImageNet数据集[ 11 ]对VGG16和VGG16进行了层替换训练,发现层替换后的缩放因子得到了很大的改善。当使用32个GPU进行训练时,比例因子从0.25增加到0.72。因此,我们确认,层替换提供了一个有效的策略,提高通信重层的伸缩性能。此外,VGG16和层替换VGG16在120 °后的训练损失分别为1.82和1.39epoch,如图9所示,表明层替换估计通信时间:adaFusion依赖于对ALLREDUCE时间的准确估计。传统方法[43]通过假设通信时间与给定恒定带宽的数据大小呈线性关系来估计通信时间。 只有当数据集大到足以使带宽饱和时,这种方法才是合理的,这总是低估了在训练中普遍存在的小张量的通信时间。考虑到RDMA[32]中慢(重)启动的影响,我们采用分段函数来估计不同参数大小的通信时间。对于较大的参数大小,其中通信时间相对较长并且主要与稳定带宽相关联,线性函数用于拟合数据。对于一个小的参数大小,采用对数函数来模拟在慢启动过程中增加窗口的行为。因此,给定数据大小的通信时间表示为:在训练过程中不会影响模型的准确性4.2自适应张量融合t′(D)=0 a1×log2(D)+b1,如果DDThresh(18)
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 广东石油化工学院机械设计基础课程设计任务书(二).docx
- 数控车床操作工技师理论知识复习题.docx
- 广州数控gsk980td车床数控系统详细对刀方法[1].docx
- 基于SolidWorks的注塑模具CAD系统设计.docx
- 基于柴油机拆装的零件设计与数控编程说明书.docx
- 单凹机常见机械故障分析.docx
- 数控宏程序教程车床篇.docx
- 摩托车启动电机壳体冲压工艺及模具设计.docx
- 数控技能大赛数控铣加工中心软件应用竞赛模拟题.docx
- 基于柴油机拆装的零件设计和数控编程.docx
- 华中数控综合试验台实验指导书.docx
- 叉形支架机械工艺规程设计.docx
- springboot+vue“智慧食堂”设计与实现springboot002.docx
- DH1765-3-北京大华单路程控直流电源用户协议手册,USB驱动,开发手册
- 数控车床零件程序编制及模拟加工实训.docx
- 数控设备的安装调试.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功