CN110908799A - 一种分布式训练中的通信方法、装置、设备、介质 - Google Patents
一种分布式训练中的通信方法、装置、设备、介质 Download PDFInfo
- Publication number
- CN110908799A CN110908799A CN201911089852.1A CN201911089852A CN110908799A CN 110908799 A CN110908799 A CN 110908799A CN 201911089852 A CN201911089852 A CN 201911089852A CN 110908799 A CN110908799 A CN 110908799A
- Authority
- CN
- China
- Prior art keywords
- gpu
- communication
- node
- gpus
- architecture
- 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.)
- Withdrawn
Links
- 230000006854 communication Effects 0.000 title claims abstract description 209
- 238000004891 communication Methods 0.000 title claims abstract description 207
- 238000012549 training Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种分布式训练中的通信方法、装置、设备、介质,该方法包括:以服务器为单位,将GPU分成不同的通信组;从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All‑Reduce架构进行通信。由此可见,本申请先以服务器为单位,将GPU分成不同的通信组,再从每组所述通信组的所述GPU中确定出主节点和相应的工作节点GPU,然后在所述主节点GPU与相应的所述工作节点GPU之间采用PS架构进行通信,在不同的所述主节点GPU之间采用All‑Reduce架构进行通信,这样可以充分利用同一个服务器内带宽宽的特点,减少GPU板卡之间的通信次数,提高通信效率。
Description
技术领域
本申请涉及云计算技术领域,特别涉及一种分布式训练中的通信方法、装置、设备、介质。
背景技术
深度学习已经为人工智能领域带来了巨大的发展进步,训练深度学习模型需要大量的计算。在具有一个现代GPU的单台机器上完成一次基于ImageNet等基准数据集的训练可能要耗费多达一周的时间,在多台机器上的分布式训练能极大减少训练时间,相应的,在大规模分布式训练中服务器通信结构和服务期内GPU板卡通信结构就成为一个不可避免的技术问题,如何合理的搭建集群之间的通信架构是一个急需解决的问题。
在当前的分布式训练中,最常用的板卡间的通信结构一般为单一的PS架构或All-Reduce架构。对于All-Reduce架构来说,当集群中节点数量非常多时,GPU每次发送的数据就会变得非常小,这样GPU间的数据传输就会变成很多次的很小的碎片传输,无法充分利用网络带宽,降低通信效率。对于PS架构来说,当集群数量增大时,由于主节点需要和多个工作节点进行通信,主节点的通信一般会成为瓶颈,降低通信效率。
发明内容
有鉴于此,本申请的目的在于提供一种分布式训练中的通信方法、装置、设备、介质,能够充分利用网络带宽进行通信,减少GPU板卡之间的通信次数,提高通信效率。其具体方案如下:
第一方面,本申请公开了一种分布式训练中的通信方法,包括:
以服务器为单位,将GPU分成不同的通信组;
从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;
在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;
在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
可选的,所述从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU,包括:
从每组所述通信组的所述GPU中确定出一个主节点GPU;
将每组所述通信组的所述GPU中除所述主节点GPU之外的部分确定为工作节点GPU。
可选的,所述在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信,包括:
如果一个通信组中的所述工作节点GPU数量大于1,则将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU。
可选的,所述在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信,包括:
基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;
基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
可选的,所述在不同的所述主节点GPU之间采用All-Reduce架构进行通信,包括:
在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
第二方面,本申请公开了一种分布式训练中的通信装置,包括:
通信组划分模块,用于以服务器为单位,将GPU分成不同的通信组;
节点确定模块,用于从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;
第一通信模块,用于在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;
第二通信模块,用于在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
可选的,所述第一通信模块,包括:
第一通信单元,用于基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;
第二通信单元,用于基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
可选的,所述第二通信模块,具体用于:
在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
第三方面,本申请公开了一种分布式训练中的通信设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的分布式训练中的通信方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的分布式训练中的通信方法。
可见,本申请先以服务器为单位,将GPU分成不同的通信组;再从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;然后在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All-Reduce架构进行通信。由此可见,本申请先以服务器为单位,将GPU分成不同的通信组,再从每组所述通信组的所述GPU中确定出主节点和相应的工作节点GPU,然后在所述主节点GPU与相应的所述工作节点GPU之间采用PS架构进行通信,在不同的所述主节点GPU之间采用All-Reduce架构进行通信,这样可以充分利用同一个服务器内带宽宽的特点,减少GPU板卡之间的通信次数,提高通信效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种分布式训练中的通信方法流程图;
图2为本申请公开的一种具体的PS架构通信图;
图3为本申请公开的一种具体的All-Reduce架构通信图;
图4a-图4e为本申请公开的一种具体的All-Reduce架构的参数传递过程图;
图5为本申请公开的一种具体的分布式训练中的通信架构示意图;
图6为本申请公开的一种具体的分布式训练中的通信方法流程图;
图7a-图7d为本申请公开的一种具体的分布式训练中的通信过程图;
图8为本申请公开的一种分布式训练中的通信装置结构示意图;
图9为本申请公开的一种分布式训练中的通信设备结构图;
图10为本申请公开的一种服务器结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在分布式训练中,最常用的板卡间的通信结构一般为单一的PS架构或All-Reduce架构。对于All-Reduce架构来说,当集群中节点数量非常多时,GPU每次发送的数据就会变得非常小,这样GPU间的数据传输就会变成很多次的很小的碎片传输,无法充分利用网络带宽,降低通信效率。对于PS架构来说,当集群数量增大时,由于主节点需要和多个工作节点进行通信,主节点的通信一般会成为瓶颈,降低通信效率。有鉴于此,本申请提出了一种分布式训练中的通信方法,能够充分利用网络带宽进行通信,减少GPU板卡之间的通信次数,提高通信效率。
本申请实施例公开了一种分布式训练中的通信方法,参见图1所示,该方法包括:
步骤S11:以服务器为单位,将GPU分成不同的通信组。
本实施例中,先以服务器为单位,将GPU分成不同的通信组,每个通信组中可以包括多个GPU。
步骤S12:从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU。
可以理解的是,服务器内部板卡间的通信通过PCIE或者NVLINK实现,带宽一般比较大,有上百G的带宽,而服务器之间的带宽通常通过普通光口或者电口实现,带宽一般只有十几G或者几十G。所以在服务器中的GPU之间通过采用PS(Parameter server,参数服务器)架构进行通信。也即,在每个所述通信组内部采用PS架构进行通信。先从每个所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU。所从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU,包括:从每组所述通信组的所述GPU中确定出一个主节点GPU;将每组所述通信组的所述GPU中除所述主节点GPU之外的部分确定为工作节点GPU。具体的,当每组所述通信组中的所述GPU相同时,从每组所述通信组的所述GPU中任一挑选出一个GPU作为主节点GPU,该通信组的其他GPU作为工作节点GPU。
步骤S13:在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信。
本实施例中,确定出每组所述通信组的所述主节点GPU和相应的工作节点GPU之后,在所述主节点和相应的工作节点GPU之间采用PS架构进行通信。在所述PS结构中,所述主节点GPU又称Parameter server,所述工作节点GPU又称worker。其中,parameter server存放模型的参数,而worker负责计算参数的梯度。在每个迭代过程,worker从parametersever中获得参数,然后将计算的梯度返回给parameter server,parameter server聚合从worker传回的梯度,然后更新参数,并将新的参数广播给worker。参见图2所示,为一个具体的PS架构通信图,PS0表示主节点GPU,GPU0至GPU7表示工作节点GPU,PS0将存放的参数传递给GPU0至GPU7,GPU0至GPU7进行相应的计算,再将计算得到的梯度返回给PS0,PS0接收到所述计算结果后,更新相应的参数,在将更新后的参数广播给GPU0至GPU7。所述在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信,包括:如果一个通信组中的所述工作节点GPU数量大于1,则将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU。
步骤S14:在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
可以理解的是,在不同服务器之间的带宽通常通过普通光口或者电口实现,带宽一般只有十几G或者几十G,若在不同的服务器的板卡之间直接采用PS架构进行通信,则会降低通信的效率。所以在不同的所述主节点GPU之间采用All-Reduce架构进行通信。在All-Reduce架构中每个所述GPU都是worker,并且形成一个环,没有中心节点来聚合所有worker计算的梯度。在一个迭代过程,每个worker完成自己的mini-batch训练,计算出梯度,并将梯度传递给环中的下一个worker,同时它也接收从上一个worker的梯度。对于一个包含N个worker的环,各个worker需要收到其它N-1个worker的梯度,以更新模型参数。
参见图3所示,为一种具体的All-Reduce架构通信图,GPU0至GPU4依次前后相连接,形成一个环形,GPU0至GPU4都要接收上一个GPU传递的梯度,并再次进行梯度的计算,再将计算得到的梯度发送给下一个GPU。该All-Reduce架构的参数传递过程如图4a-图4e所示,以对一个浮点数的大数组求和为例,首先如图4a所示,先按照节点数,将各个GPU中的数据分成相应数量的数据块。具体的,将GPU0至GPU4中的数据均平均分成5各数据块,也即,将GPU0中的数据平均分成a0、b0、c0、d0、e0,将GPU1中的数据平均分成a1、b1、c1、d1、e1,将GPU2中的数据平均分成a2、b2、c2、d2、e2,将GPU3中的数据平均分成a3、b3、c3、d3、e3,将GPU4中的数据平均分成a4、b4、c4、d4。然后如图4b所示,GPU0至GPU4都将进行4次Scatter-Reduce迭代;在每次迭代中,每个GPU将向其右邻居发送一个数据块,并从其左邻居接收一个数据块。每个GPU发送和接收的数据块在每次迭代中都是不同的;第N个GPU从发送数据块N和接收数据块N-1开始,然后从依次向后进行,每次迭代都发送它在前一次迭代中接收到的数据块。具体的,在第一次Scatter-Reduce迭代时,GPU0将a0发送给GPU1,并接收GPU4发送的e4,GPU1接收GPU0发送的a0,并将b1发送给GPU2,GPU2接收GPU1发送的b1,并将c2发送给GPU3,GPU3接收GPU2发送的c2,并将d3发送给GPU4,GPU4接收GPU3发送的d3,并将e4发送给GPU1。以此类推,经过4次Scatter-Reduce迭代后,如图4c所示,每个GPU都有一个值数组,其中有一个数据块是最终的值,包括来自所有GPU的贡献。为了完成All-Reduce通信,每个GPU必须交换这些数据块,以便所有GPU都具有所有必需的值。如图4d所示,GPU0至GPU4都将进行4次all-gather迭代,在第一次all-gather迭代中,GPU0将b1+b2+b3+b4+b0发送给GPU1,并接收GPU4发送的a1+a0+a2+a3+a4,GPU1接收GPU0发送的b1+b2+b3+b4+b0,并将c3+c2+c4+c0+c1发送给GPU2,GPU2接收GPU1发送的c3+c2+c4+c0+c1,并将d4+d3+d0+d1+d2发送给GPU3,GPU3接收GPU2发送的d4+d3+d0+d1+d2,并将e0+e4+e1+e2+e3发送给GPU4,GPU4接收GPU3发送的e0+e4+e1+e2+e3,并将a1+a0+a2+a3+a4发送给GPU0。以此类推,经过4次all-gather迭代后,如图4e所示,每个GPU将拥有整个数组的完整累积值。由此可知,在具有N各GPU的All-Reduce架构中,N个GPU中的每一个都将发送N-1次scatter-reduce,并接收N-1次scatter-reduce,同样发送N-1次all-gather,也接收N-1次all-gather,以完成一次通信。
参见图5所示,为一种分布式训练中的通信架构示意图。GPU1至GPU3为第一个通信组ps1,且GPU3为主节点GPU;GPU4至GPU6为第二个通信组ps2,且GPU6为主节点GPU;GPU7至GPU9为第三个通信组ps3,且GPU7为主节点GPU;GPU10至GPU12为第四个通信组ps4,且GPU10为主节点GPU。每个通信组内部采用PS构架进行通信,不同的主节点GPU之间采用All-Reduce架构进行通信。
可见,本申请先以服务器为单位,将GPU分成不同的通信组;再从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;然后在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All-Reduce架构进行通信。由此可见,本申请先以服务器为单位,将GPU分成不同的通信组,再从每组所述通信组的所述GPU中确定出主节点和相应的工作节点GPU,然后在所述主节点GPU与相应的所述工作节点GPU之间采用PS架构进行通信,在不同的所述主节点GPU之间采用All-Reduce架构进行通信,这样可以充分利用同一个服务器内带宽宽的特点,减少GPU板卡之间的通信次数,提高通信效率。
参见图6所示,本申请实施例公开了一种具体的分布式训练中的通信方法,该方法包括:
步骤S21:以服务器为单位,将GPU分成不同的通信组。
步骤S22:从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU。
步骤S23:基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU。
步骤S24:在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
步骤S25:基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
本实施例中,在各个所述通信组中的所述主节点GPU与相应的工作节点GPU之间采用PS架构进行通信,在不同的所述主节点GPU之间采用All-Reduce架构进行通信,首先进行各个所述通信组内的数据交换,也即基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;接着在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据;然后基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。如图7a-图7d所示,为一种具体的分布式训练中的通信过程图,首先如图7a所示,GPU1至GPU3为第一个通信组ps1,且GPU3为主节点GPU;GPU4至GPU6为第二个通信组ps2,且GPU6为主节点GPU;GPU7至GPU9为第三个通信组ps3,且GPU7为主节点GPU;GPU10至GPU12为第第四个通信组ps4,且GPU10为主节点GPU。每个通信组内部采用PS构架进行通信,不同的主节点GPU之间采用All-Reduce架构进行通信。根据主节点GPU数量,将各个GPU中的数据分成相应数量的数据块,GPU1中的数据块为a1、a2、a3、a4;GPU2中的数据块为b1、b2、b3、b4;GPU3中的数据块为b1、b2、b3、b4;GPU4中的数据块为d1、d2、d3、d4;GPU5中的数据块为e1、e2、e3、e4;GPU6中的数据块为f1、f2、f3、f4;GPU7中的数据块为g1、g2、g3、g4;GPU8中的数据块为i1、i2、i3、i4;GPU9中的数据块为j1、j2、j3、j4;GPU10中的数据块为h1、h2、h3、h4;GPU11中的数据块为k1、k2、k3、k4;GPU12中的数据块为l1、l2、l3、l4;如图7b所示,基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU,所述主节点GPU3、所述主节点GPU6、所述主节点GPU7以及所述主节点GPU10得到相应工作节点GPU的数据。如图7c所示,所述主节点GPU3、所述主节点GPU6、所述主节点GPU7以及所述主节点GPU10之间基于All-Reduce架构进行通信,每个所述主节点GPU经过6次迭代之后,每个主节点GPU所拥有的数据包括各个节点的数据,且各个所述主节点GPU中的数据相同。如图7d所示,各个所述主节点GPU将相同的数据并行广播给相应的工作节点GPU,使得各个不同的GPU中的数据相同,以完成一次完整的通信。由图7中可知,对于图中的12个GPU来说,一共进行8步即可完成一次通信,若完全采用All-Reduce架构进行通信,则12个GPU一共需要22次迭代,方可完成一次完整的通信。可以看出,以服务器为单位,将GPU分成不同的通信组;从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All-Reduce架构进行通信的通信方法,减少了通信步数,提高了通信效率。
参见图8所示,本申请实施例公开了一种分布式训练中的通信装置,包括:
通信组划分模块11,用于以服务器为单位,将GPU分成不同的通信组;
节点确定模块12,用于从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;
第一通信模块13,用于在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;
第二通信模块14,用于在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
可见,本申请先以服务器为单位,将GPU分成不同的通信组;再从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;然后在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All-Reduce架构进行通信。由此可见,本申请先以服务器为单位,将GPU分成不同的通信组,再从每组所述通信组的所述GPU中确定出主节点和相应的工作节点GPU,然后在所述主节点GPU与相应的所述工作节点GPU之间采用PS架构进行通信,在不同的所述主节点GPU之间采用All-Reduce架构进行通信,这样可以充分利用同一个服务器内带宽宽的特点,减少GPU板卡之间的通信次数,提高通信效率。
进一步的,所述第一通信模块13,包括:
第一通信单元,用于基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;
第二通信单元,用于基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
进一步的,所述第二通信模块14,具体用于:
在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
进一步的,参见图9所示,本申请实施例还公开了一种分布式训练中的通信设备,包括:处理器21和存储器22。
其中,所述存储器22,用于存储计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的分布式训练中的通信方法。
其中,关于上述分布式训练中的通信方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
参见图10所示,本申请公开了一种服务器20,包括前述实施例中的处理器21和存储器22。关于上述处理器21具体可以执行的步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本实施例中的终端20,还可以具体包括:电源23、通信接口24、输入输出接口25以及通信总线26;其中,所述电源23用于为所述终端20上的各硬件设备提供工作电压;所述通信接口24能够为所述终端20与外接设备之间的数据传输通道,其所遵循的通信协议是能够使用于本申请技术方案的任意通信协议,在此不对其做具体限定;所述输入输出接口25,用于获取外界输入的数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:
以服务器为单位,将GPU分成不同的通信组;从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
可见,本申请先以服务器为单位,将GPU分成不同的通信组;再从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;然后在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;在不同的所述主节点GPU之间采用All-Reduce架构进行通信。由此可见,本申请先以服务器为单位,将GPU分成不同的通信组,再从每组所述通信组的所述GPU中确定出主节点和相应的工作节点GPU,然后在所述主节点GPU与相应的所述工作节点GPU之间采用PS架构进行通信,在不同的所述主节点GPU之间采用All-Reduce架构进行通信,这样可以充分利用同一个服务器内带宽宽的特点,减少GPU板卡之间的通信次数,提高通信效率。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:从每组所述通信组的所述GPU中确定出一个主节点GPU;将所述GPU中除所述主节点GPU之外的部分确定为工作节点GPU。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:如果一个通信组中的所述工作节点GPU数量大于1,则将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种分布式训练中的通信方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种分布式训练中的通信方法,其特征在于,包括:
以服务器为单位,将GPU分成不同的通信组;
从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;
在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;
在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
2.根据权利要求1所述的分布式训练中的通信方法,其特征在于,所述从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU,包括:
从每组所述通信组的所述GPU中确定出一个主节点GPU;
将每组所述通信组的所述GPU中除所述主节点GPU之外的部分确定为工作节点GPU。
3.根据权利要求1所述的分布式训练中的通信方法,其特征在于,所述在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信,包括:
如果一个通信组中的所述工作节点GPU数量大于1,则将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU。
4.根据权利要求1至3任一项所述的分布式训练中的通信方法,其特征在于,所述在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信,包括:
基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;
基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
5.根据权利要求4所述的分布式训练中的通信方法,其特征在于,所述在不同的所述主节点GPU之间采用All-Reduce架构进行通信,包括:
在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
6.一种分布式训练中的通信装置,其特征在于,包括:
通信组划分模块,用于以服务器为单位,将GPU分成不同的通信组;
节点确定模块,用于从每组所述通信组的所述GPU中确定出主节点GPU和相应的工作节点GPU;
第一通信模块,用于在所述主节点GPU和相应的所述工作节点GPU之间采用PS架构进行通信;
第二通信模块,用于在不同的所述主节点GPU之间采用All-Reduce架构进行通信。
7.根据权利要求6所述的分布式训练中的通信装置,其特征在于,所述第一通信模块,包括:
第一通信单元,用于基于PS架构,将所述工作节点GPU中的数据并行发送给相应的所述主节点GPU;
第二通信单元,用于基于PS架构,将所述主节点GPU中从其他的所述主节点GPU中获取到的数据并行发送给相应的所述工作节点GPU。
8.根据权利要求6所述的分布式训练中的通信装置,其特征在于,所述第二通信模块,具体用于:
在不同的所述主节点GPU之间采用All-Reduce架构进行通信,使得各个所述主节点GPU获得相同的数据。
9.一种分布式训练中的通信设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至5任一项所述的分布式训练中的通信方法。
10.一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的分布式训练中的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911089852.1A CN110908799A (zh) | 2019-11-08 | 2019-11-08 | 一种分布式训练中的通信方法、装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911089852.1A CN110908799A (zh) | 2019-11-08 | 2019-11-08 | 一种分布式训练中的通信方法、装置、设备、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110908799A true CN110908799A (zh) | 2020-03-24 |
Family
ID=69817337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911089852.1A Withdrawn CN110908799A (zh) | 2019-11-08 | 2019-11-08 | 一种分布式训练中的通信方法、装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908799A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000468A (zh) * | 2020-08-03 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于侦测调节模块的gpu管理装置、方法及gpu服务器 |
CN113626369A (zh) * | 2021-08-14 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种多节点集群环形通信的方法、装置、设备及可读介质 |
CN114091969A (zh) * | 2021-12-01 | 2022-02-25 | 上海明胜品智人工智能科技有限公司 | 餐品品质评估方法、装置、电子设备及可读存储介质 |
WO2022105295A1 (zh) * | 2020-11-19 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 基于nGraph的GPU后端分布式训练方法和*** |
WO2023040197A1 (zh) * | 2021-09-14 | 2023-03-23 | 苏州浪潮智能科技有限公司 | 一种跨节点通信方法、装置、设备及可读存储介质 |
WO2023071193A1 (zh) * | 2021-10-28 | 2023-05-04 | 华为技术有限公司 | 一种模型训练***和方法 |
WO2023207035A1 (zh) * | 2022-04-29 | 2023-11-02 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180260256A1 (en) * | 2016-04-15 | 2018-09-13 | Nec Laboratories America, Inc. | Fine-grain synchronization in data-parallel jobs for distributed machine learning |
CN110135575A (zh) * | 2017-12-29 | 2019-08-16 | 英特尔公司 | 用于分布式机器学习的通信优化 |
-
2019
- 2019-11-08 CN CN201911089852.1A patent/CN110908799A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180260256A1 (en) * | 2016-04-15 | 2018-09-13 | Nec Laboratories America, Inc. | Fine-grain synchronization in data-parallel jobs for distributed machine learning |
CN110135575A (zh) * | 2017-12-29 | 2019-08-16 | 英特尔公司 | 用于分布式机器学习的通信优化 |
Non-Patent Citations (1)
Title |
---|
XIANGYAN JIA: "Highly Scalable Deep Learning Training System with Mixed-Precision: Training ImageNet in Four Minutes", 《ARXIV》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000468A (zh) * | 2020-08-03 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于侦测调节模块的gpu管理装置、方法及gpu服务器 |
CN112000468B (zh) * | 2020-08-03 | 2023-02-24 | 苏州浪潮智能科技有限公司 | 一种基于侦测调节模块的gpu管理装置、方法及gpu服务器 |
WO2022105295A1 (zh) * | 2020-11-19 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 基于nGraph的GPU后端分布式训练方法和*** |
US12001960B2 (en) | 2020-11-19 | 2024-06-04 | Inspur Suzhou Intelligent Technology Co., Ltd. | NGraph-based GPU backend distributed training method and system |
CN113626369A (zh) * | 2021-08-14 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种多节点集群环形通信的方法、装置、设备及可读介质 |
CN113626369B (zh) * | 2021-08-14 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 一种多节点集群环形通信的方法、装置、设备及可读介质 |
WO2023040197A1 (zh) * | 2021-09-14 | 2023-03-23 | 苏州浪潮智能科技有限公司 | 一种跨节点通信方法、装置、设备及可读存储介质 |
WO2023071193A1 (zh) * | 2021-10-28 | 2023-05-04 | 华为技术有限公司 | 一种模型训练***和方法 |
CN114091969A (zh) * | 2021-12-01 | 2022-02-25 | 上海明胜品智人工智能科技有限公司 | 餐品品质评估方法、装置、电子设备及可读存储介质 |
WO2023207035A1 (zh) * | 2022-04-29 | 2023-11-02 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908799A (zh) | 一种分布式训练中的通信方法、装置、设备、介质 | |
TWI803663B (zh) | 一種運算裝置和運算方法 | |
CN111030861B (zh) | 一种边缘计算分布式模型训练方法、终端和网络侧设备 | |
CN113239639B (zh) | 策略信息生成方法、装置、电子装置和存储介质 | |
CN111106999A (zh) | 一种ip-光网络通信业务联合分配方法及装置 | |
CN111563598B (zh) | 预估量子计算模拟时间的方法、*** | |
CN113132232B (zh) | 一种能量路由优化方法 | |
CN106534295B (zh) | 一种邻近协作网络的邻对计算自分配方法 | |
CN111160560B (zh) | 预估模拟量子计算所需资源的方法、*** | |
CN113298222A (zh) | 一种基于神经网络的参数更新方法、分布式训练平台*** | |
CN111461335A (zh) | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 | |
CN109510681B (zh) | 一种通信网络时间同步级数最小的基准节点选择方法 | |
CN111491382B (zh) | 卫星容量分配方法、装置和电子设备 | |
CN116962438A (zh) | 一种梯度数据同步方法、***、电子设备及可读存储介质 | |
CN115879543B (zh) | 一种模型训练方法、装置、设备、介质及*** | |
CN115952385B (zh) | 用于大规模稀疏方程组求解的并行超节点排序方法及*** | |
CN112217652B (zh) | 一种基于中心通信模式的网络拓扑装置及方法 | |
CN111722923A (zh) | 一种异构资源的调用方法、装置和计算机可读存储介质 | |
CN111985181A (zh) | 一种节点布局方法、装置、计算机设备及存储介质 | |
CN114567563B (zh) | 网络拓扑模型的训练方法、网络拓扑的重构方法及装置 | |
JP6036848B2 (ja) | 情報処理システム | |
CN105183692A (zh) | 一种集群***设备间数据通信方法与*** | |
CN109933858B (zh) | 配电网分核并行仿真方法 | |
CN111291893A (zh) | 调度方法、调度***、存储介质和电子装置 | |
CN114095289B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200324 |