CN117955901A - 通信方法、系统及服务器 - Google Patents

通信方法、系统及服务器 Download PDF

Info

Publication number
CN117955901A
CN117955901A CN202211284784.6A CN202211284784A CN117955901A CN 117955901 A CN117955901 A CN 117955901A CN 202211284784 A CN202211284784 A CN 202211284784A CN 117955901 A CN117955901 A CN 117955901A
Authority
CN
China
Prior art keywords
data
accelerator
accelerators
node
target
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
CN202211284784.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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211284784.6A priority Critical patent/CN117955901A/zh
Priority to PCT/CN2023/101734 priority patent/WO2024082670A1/zh
Publication of CN117955901A publication Critical patent/CN117955901A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种通信方法、系统和服务器。该方法应用于第一节点中互连的m个第一加速器,m个第一加速器与第二节点中互连的m个第二加速器一一对应通过网卡通信,方法包括:m个第一加速器通过自身互连的链路,调整第一数据在m个第一加速器的分布,使得各自调整后自身具有的第一数据中的数据的数据量差异小于等于预设阈值;第一数据为m个第一加速器存储的标记分别指示m个第二加速器的终加速器标识的数据;m个第一加速器各自通过自身配置的网卡,将调整后自身具有的第一数据中的数据发往对应的第二加速器,将节点内通过网络发送的数据均分在不同的加速器上,避免了某个加速器的通信量过大导致节点等待。

Description

通信方法、系统及服务器
技术领域
本申请涉及通信技术领域,尤其涉及一种通信方法、系统及服务器。
背景技术
随着算法技术的发展,模型训练对算力的需求越来越高,通常使用多个加速器来完成计算任务,在模型并行下,每个加速器上存储部分的模型,在模型训练过程中都需要使用聚合通信来完成数据交换。
目前,聚合通信采用分层的方式实现,具体原理如下:
对于任一节点的互连的多个加速器中的任一加速器,该加速器与其他节点的加速器通过网卡通信,首先,通过该节点中的多个加速器之间互连的链路,将需要发往与该加速器通信的其他节点的加速器的数据汇聚到该加速器,其次,通过自身的网卡将汇聚的数据发往与该加速器通信的其他节点的加速器。
但是上述聚合通信的方式的通信的时间取决于最后一个完成传输的加速器,由于不同节点的加速器通过网络传输的数据量会存在不同,可能会增加通信时长。
发明内容
本申请实施例提供了一种通信方法、系统及服务器,能够将节点内的通过网络发送到其他节点的数据均分在节点内不同的加速器上,避免了节点中的某个加速器的通信量过大导致其他的节点等待,确保网络通信效率。
第一方面,本申请实施例提供了一种通信方法,应用于第一节点,所述第一节点中互连的m个第一加速器与第二节点中互连的m个第二加速器一一对应,所述m个第一加速器各自和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m为大于等于2的正整数,所述方法包括:
所述m个第一加速器通过自身互连的链路,调整第一数据在所述m个第一加速器的分布,使得各自调整后自身具有的所述第一数据中的数据的数据量差异小于等于预设阈值;其中,所述第一数据为所述多份数据中标记分别指示m个第二加速器的终加速器标识的数据;
所述m个第一加速器各自通过自身配置的网卡,将调整后自身具有的所述第一数据中的数据发往对应的第二加速器,以使m个第二加速器通过自身互连的链路,调整接收到的所述第一数据在m个第二加速器的分布,使得所述m个第二加速器具有所述第一数据中标记终加速器标识指示自身的数据。
本方案中,能够将节点内的通过网络发送到其他节点的数据均分在节点内不同的加速器上,避免了节点中的某个加速器的通信量过大导致其他的节点等待,确保网络通信效率;后续,节点再通过内部m个加速器之间的互连的通道,改变数据分布,使得节点中的每个加速器得到其他节点需要发往自身的数据。
在一种可能的实现方式中,所述方法还包括:m个第一加速器各自通过自身的网卡接收对应的第二加速器发送的第二数据;其中,所述第二数据包括未在标记的终加速器标识指示的第一加速器内的数据;所述m个第一加速器通过自身互连的链路,将未在标记的终加速器标识指示的第一加速器内的数据传输至指示的第一加速器。
本方案中,在节点接收到其他节点发送的数据时,可以基于内部m个加速器之间的互连的通道,改变数据在节点中的m个加速器之间的分布,使得节点中的每个加速器得到其他节点需要发往自身的数据。
在一种可能的实现方式中,所述多份数据标记的多个终加速器标识包括指示第一加速器的终加速器标识,所述方法还包括:所述m个第一加速器通过自身互连的链路,各自将未在标记的终加速器标识指示的第一加速器内的数据传输至指示的第一加速器。
本方案中,基于内部m个加速器之间的互连的通道,将终加速器标识指示节点内的加速器传输到对应的加速器内,使得节点中的每个加速器得到节点内的其他的加速器需要发往自身的数据。
在一种可能的实现方式中,所述方法还包括:基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略;所述m个第一加速器通过自身互连的链路,按照所述第一分布策略调整所述第一数据在所述m个第一加速器的分布。
可选地,所述基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略,包括:确定m个第一加速器各自对应的第一外传数据量;其中,所述第一外传数据量指示了对应的第一加速器存储的所述第一数据中的数据的数据量之和;基于所述m个第一加速器各自对应的第一外传数据量、所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略。
可选地,所述基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略,包括:基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述m个第一加速器各自对应的第二外传数据量;其中,所述第二外传数据量指示了所述第一数据中标记的终加速器标识为通信加速器标识的数据的数据量,所述通信加速器标识指示了对应的第一加速器通过网卡通信的第二加速器;基于所述m个第一加速器各自对应的第二外传数据量、所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略。
在一种可能的实现方式中,所述第一分布策略指示了所述m个第一加速器各自存储的第一数据中的数据和其他的第一加速器之间的通信情况。
第二方面,本申请实施例提供了一种通信系统,包括第一节点和第二节点,所述第一节点中互连的m个第一加速器与所述第二节点中互连的m个第二加速器一一对应,所述m个第一加速器各自和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m为大于等于2的正整数,所述第一节点用于执行如第一方面所述的方法。
第三方面,本申请实施例提供了一种服务器,包括:至少一个存储器,用于存储程序;
互连的m个第一加速器,与第二节点中互连的m个第二加速器一一对应,所述m个第一加速器中每个第一加速器和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m个第一加速器执行所述至少一个存储器存储的程序,实现如第一方面所述的方法,所述m为大于等于2的正整数。
根据一种可行的实现方式,服务器包括处理器,所述处理器用于基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略;对应的,所述m个第一加速器通过自身互连的链路,按照所述第一分布策略调整所述第一数据在所述m个第一加速器的分布。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面中所提供的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面中所提供的方法。
附图说明
图1是本申请实施例提供的一种通信系统的系统架构图;
图2a是本申请实施例提供的电子设备的结构示意图一;
图2b是本申请实施例提供的电子设备的结构示意图二;
图2c是本申请实施例提供的电子设备的结构示意图三;
图3是本申请实施例提供的应用场景的示意图一;
图4是图3所示的应用场景下的现有的通信方案的示意图;
图5a是图3所示的应用场景下的本发明实施提供的数据传输路径的示意图一;
图5b是图3所示的应用场景下的本发明实施提供的数据传输路径的示意图二。
图6是本申请实施例提供的通信方法的流程示意图一;
图7a是图6中步骤620的流程示意图一;
图7b是图6中步骤620的流程示意图二;
图8a是本申请实施例提供的应用场景的示意图二;
图8b是图8a所示的应用场景下的本申请实施例提供的通信方法的流程示意图;
图9a是本申请实施例提供的应用场景的示意图三;
图9b是图9a所示的应用场景中的数据标记的节点内加速器标识的示意图;
图9c是图9a所示的应用场景中的节点内的数据传输后的示意图;
图9d是图9c所示的应用场景中的节点间的数据传输后的示意图;
图9e是图9d所示的应用场景中的节点内的数据传输后的示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个终端是指两个或两个以上的终端。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
图1是本发明实施例提供的一种通信系统的系统架构图。如图1所示,通信系统包括:N个节点node,N个节点表示为node0、node1、…、nodeN-1、。图1示出了4个节点node0、node1、node2、node3,即N=4。
其中,节点node和节点node之间通过网络通信。网络可以为有线网络或无线网络。示例地,有线网络可以为电缆网络、光纤网络、数字数据网(Dataital Data Network,DDN)等,无线网络可以为电信网络、内部网络、互联网、局域网络(Local Area Network,LAN)、广域网络(Wide Area Network,WAN)、无线局域网络(Wireless Local Area Network,WLAN)、城域网(Metropolitan Area Network,MAN)、互连结构(InfiniBand,I B)网络、远程直接数据存取(RDMA over Converged Ethernet,RoCE)网络等或其任意组合。可以理解的是,网络可使用任何已知的网络通信协议来实现不同客户端层和网关之间的通信,上述网络通信协议可以是各种有线或无线通信协议,诸如以太网、通用串行总线(universal serial bus,USB)、火线(firewire)、全球移动通讯系统(global system for mobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(codedivision multipleaccess,CDMA)、宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA)、长期演进(long term evolution,LTE)、新空口(new radio,NR)、蓝牙(bluetooth)、无线保真(wireless fidelity,Wi-Fi)等通信协议。
图2a至图2b为本发明实施例提供的电子设备的结构示意图。如图2a至图2c所示,根据一种可行的实现方式,一台电子设备中可以包括一个节点node,也可以包括多个节点node。如图2a和图2b所示,一台电子设备包括一个节点node0。如图2c所示,一台服务器包括两个节点node0和node1。
在一个例子中,本方案中涉及的电子设备可以为服务器、计算机等实体设备。本方案中涉及的电子设备的示例性实施例包括但不限于搭载iOS、android、Windows、鸿蒙系统(Harmony OS)或者其他操作系统的电子设备。本申请实施例对电子设备的类型不做具体限定。
进一步的,如图2a和图2c所示,节点0包括处理器,比如CPU(central processingunit,中央处理器)和m个加速器(device),可以简称加速器D,多个加速器D之间互连,通过互连的链路通信,m个加速器D中每个加速器D设置有网卡,通过网卡和其他的节点通过网络(参加上文描述,不再赘述)通信。这里,加速器D用于模型训练或模型计算的设备,本发明实施例并不意图限制模型的类型和结构。加速器D可以包括一个或多个芯片,比如,GPU(Graphic Processing Unit,图形处理器),MIC(Many Integrated Core,众核协处理器)、NPU(Neural-network Processing Unit,嵌入式神经网络处理器)。
其中,m个加速器D可以为2个及2个以上,图2a示出了2个互连的加速器D,图2b示出了4个加速器D。
在一个例子中,如图2a和图2c所示,加速器D设置的网卡连接交换机,多个加速器D(device)通过网卡连接的交换机实现网络通信。
通信系统中的其他节点node的结构参见上文对节点0的描述,不再赘述。本发明实施例中,N个节点中的加速器D的数目相同m均为m;从当前的发展来看,目前主流的架构为N个节点中的加速器D的数目相同,本发明实施例也主要围绕这N个节点node中的加速器D的数目相同来说明本发明实施例提供的方法,但考虑到未来可能出现N个节点中的加速器D的数目不同的架构,本发明并不限制N个节点node中的加速器D的数目的具体关系。
本发明实施例中,N个节点node中的任一节点node,该节点node中的任一个加速器D和其他的N-1个节点node的N-1个加速器D(位于不同的节点)通过网卡通信,另外,该节点node存储有需要发往N个节点中N*m个加速器D的数据,具体地,该节点存储有N*m份数据,每份数据标记有需发往的加速器D的标识。图3为本发明实施例提供的应用场景的示意图。如图3所示,存在两个节点node0和node1,node0中包括4个加速器D分别记为D00、D01、D02、D03,node1中包括4个加速器D分别记为D10、D11、D12、D13;对于node0中的加速器D00,存储有需要发往节点node1中加速器D10、D11、D12、D13的数据a0、b0、c0、d0,以及,需要发往节点node0中的加速器D00、D01、D02、D03的数据(图中未示意),通过网卡通信的加速器为D10,表示为NC:D10;加速器D01、D02、D03类同,不在赘述;对于node1中的加速器D10,存储有需要发往节点node0中加速器D00、D01、D02、D03的数据(图中未示意),以及,需要发往节点node1中的加速器D10、D11、D12、D13的数据(图中未示意),通过网卡通信的加速器为D00,表示为NC:D00;加速器D11、D12、D13类同,不再赘述。
在相关技术中,为了减少网络通信规模,主要分两步实现通信,step1,对于N个节点node的任一加速器D,通过该加速器D所在节点node的m个加速器D之间互连的链路,将需要发往与该加速器D通过网卡通信的N-1个加速器D的数据汇聚到该加速器D;step2,对于N个节点node的任一加速器D,通过自身的网卡将step1汇聚的数据发往该数据需要发往的其他的节点node的加速器D。为了便于理解,下面结合图3示出的应用场景进行详细的描述。图4为图3所示的应用场景下node0存储的发往加速器D10的数据的传输路径的示例图。需要指出,图3中的发往加速器D01、D02、D03、D11、D12、D13的数据的传输路径类同,区别仅仅在于通信的对象不同,发送的数据不同。
如图4所示,step1,对于节点node0中的加速器D00,加速器D00和加速器D10通信,将需要通过网卡发往D10的数据汇聚到加速器D00上,此时,加速器D00上存储有节点node0中4个加速器D00、D01、D02、D03存储的需要发往D10的数据a0、a1、a2、a3。加速器D01、D02、D03、D10、D11、D12、D13类同(图中未示意),区别仅仅在于通信的对象不同,存储的数据不同,不再赘述。step2,对于节点node0中的加速器D00,加速器D00将存储的需要发往D10的数据a0、a1、a2、a3通过网卡发往加速器D10,使得加速器D10得到a0、a1、a2、a3,加速器D01、D02、D03、D10、D11、D12、D13类同(图中未示意),区别仅仅在于通信的对象不同,发送的数据不同,不再赘述。
但是,在上述相关技术描述的技术方案中,由于N个节点的N*m加速器D之间是并行通信的,通信的完成时间取决于最后一个完成传输的加速器D,由于不同加速器D通过网卡传输的数据的数据量存在不同,可能会存在大量的节点等待最后一个节点完成网络传输,从而造成了大量带宽和算力被浪费。
为了解决上述技术问题,本发明实施例提出了一种负载均衡的通信方法,对于N个节点node中任一节点node,将需要通过网卡发往另一个节点node的数据均分在节点内的互连的m个加速器D上,使得该节点node内的每个加速器D通过网卡向另一个节点node发送到的数据的数据量相似或相同,避免了节点node中的某个加速器D的通信量过大导致其他的节点等待。
在具体实现时,主要分成3步完成,step1,N个节点node中每个节点node的m个加速器D通过互连的链路进行数据传递,节点node内的每个加速器D通过网卡向其所在节点之外的任一节点node发送到的数据的数据量相似或相同;step2,N个节点的N*m个加速器D之间通过网卡进行网络通信,此时,由于节点node内的每个加速器D通过网卡向相同节点发送到的数据的数据量相似或相同,从而避免了节点node中的某个加速器D的通信量过大导致其他的节点等待;step3,N个节点中的部分或全部节点node中的m个加速器D之间通过互连的链路进行数据传递,使得N*m个加速器D各自得到自身所在节点node之外的N-1个节点需要发往自身的数据。
为了便于理解本发明实施例提供的方案和相关技术方案中的区别,下面结合图3示出的应用场景进行详细的描述。图5a和图5b为图3所示的应用场景下node0存储的发往加速器D10的数据的传输路径的示例图。
图5a为图3所示场景下node0存储的发往加速器D10的数据的传输路径的示例图一。
如图5a所示,对于节点node0中的加速器D01,存储的发往加速器D10的数据a1分为两部分a11和a12,a11需要发送加速器D00,a12需要发往加速器D01。加速器D00通过网卡与D10通信,D01通过网卡与D11通信,D02通过网卡与D12通信,D03通过网卡与D13通信。则数据传输的具体过程如下:
step1,对于节点node0中的加速器D00,将需要通过网卡发往D10的数据a11、a2、a3汇聚到加速器D00上,此时,加速器D00上存储有节点node0中4个加速器D00、D01、D02、D03存储的需要发往D10的数据a0、a11、a2、a3。
step2,对于节点node0中的加速器D00,将存储的需要发往D10的数据a0、a11、a2、a3通过网卡发往加速器D10,对于节点node0中的加速器D01,将存储的需要发往D10的数据a12通过网卡发往加速器D11。
step3,对于节点node1中的加速器D11,将存储的需要发往D10的数据a12通过互连的链路发往加速器D10,使得节点node1中的加速器D10,存储的node0中需要发往D10的数据a0、a1、a2、a3。
图5b为图3所示场景下node0存储的发往加速器D10的数据的传输路径的示例图二。
如图5b所示,对于节点node0中的加速器D01,存储的发往加速器D10的数据a1和需要发送加速器D12的数据c1,数据c1需要首先发往加速器D00。加速器D00通过网卡与D10通信,D01通过网卡与D11通信,D02通过网卡与D12通信,D03通过网卡与D13通信,则数据传输的具体过程如下:
step1,对于节点node0中的加速器D00,加速器D01、加速器D02和加速器D02和加速器D00通信,将需要发往D10的数据a1、a2、a3以及需要发往D12的数据c1,汇聚到加速器D00上。
step2,对于节点node0中的加速器D00,将存储的需要发往D10的数据a0、a11、a2、a3和需要发往D12的数据c1通过网卡发往加速器D10。
step3,对于节点node1中的加速器D10,存储的node0中需要发往D10的数据a0、a1、a2、a3和需要发往D12的数据c1,之后,将存储的需要发往D12的数据c1通过互连的链路发往加速器D12。
下文将详细描述图1所示的通信系统中的节点间的通信方法的过程。每个节点各自的通信方法相同,下面以一个节点为例进行说明,为了便于描述和区别,将该节点可以记为节点node1,node1也可以称为第一节点。考虑到节点之间通信需要通过网卡,而本发明实施例中,只存在一次网卡通信,因此,只需要考虑两个节点之间的通信平衡即可,该nodei和nodei之外的任一节点的通信方法相同,下面以node1与自身之外的一个节点的通信为例进行描述,为了便于描述和区别,将node1之外的一个节点称为node2,node2也可以称为第二节点。该通信方法可以由node1中的CPU执行,也可以由node1中的每个加速器D执行,从当前的发展来看,目前主流的执行主体为CPU,本发明实施例主要围绕执行主体为CPU来说明本发明实施例提供的方法。另外,为了便于描述和区别,将node1中的加速器D称为加速器D1,将node2的加速器D称为加速器D2。node1中的m个加速器D1存储有多份数据,每份数据标记有信息,标记的信息至少包括最终需要达到的加速器D的标识(为了便于描述和区别,称为终加速器标识,可以表示为tDevID)。终加速器标识tDevID指示了数据最终需要达到的加速器D。对应的,多份数据的多个终加速器标识tDevID包括分别指示m个加速器D2的m个终加速器标识tDevID。在实际应用中,多份数据可以对应相同的终加速器标识tDevID。为了便于描述和区别,加速器D1可以记为D1,m个加速器D1记为D11、D12、…、D1m;加速器D2可以记为D2,m个加速器D2记为D21、D22、…、D2m。
图6为本发明实施例提供的节点的通信方法的流程流程图一。如图6所示,具体包括如下步骤。
步骤610、m个加速器D1向处理器发送自身存储的多份数据各自的数据量和标记的终加速器标识tDevID。
步骤620、处理器基于m个加速器D1存储的多份数据各自的数据量和标记的终加速器标识tDevID,确定第一数据在m个加速器D1分布的第一分布策略;其中,第一数据为多份数据中标记分别指示m个加速器D2的终加速器标识tDevID的数据。
这里,第一分布策略指示了第一数据在m个加速器D1的分布情况,第一数据为m个加速器D1存储的多份数据中标记指示m个加速器D2的m个终加速器标识tDevID的所有份数据,具体地来说指示了发往node2中m个加速器D2的所有份数据。
本发明实施例中,node1基于m个加速器D1存储的多份数据各自的数据量和标记的最终需要发往的加速器D的终加速器标识tDevID,以需要发往node2的全部数据即第一数据均匀分布在m个加速器D1为目的,调整需要发往node2的第一数据在m个加速器D1的分布,得到第一分布策略。
步骤630、m个加速器D1通过自身互连的链路,按照第一分布策略调整第一数据在m个加速器D1的分布,使得各自调整后自身具有的第一数据中的数据的数据量差异小于等于预设阈值。
本发明实施例,通过第一分布策略调整第一数据在m个加速器D1分布,使得m个加速器D1各自调整后自身具有的第一数据中的数据的数据量差异较小,比如相同,再比如相似。
举例来说,假设node1中m个加速器D1各自存储的标记指示m个加速器D2的m个终加速器标识tDevID的m份数据各自的数据量为a1、a2、…、am,m个加速器D1各自调整后自身具有的第一数据中的数据的数据量与(a1+a2+…+am)/m相同或相似。
步骤641、m个加速器D1各自通过自身配置的网卡向对应的加速器D2,发送调整后自身具有的第一数据中的数据。
在实际应用中,m个加速器D1标记有通信加速器标识,可以记为cDevID,该通信加速器标识cDevID指示了通过网卡通信的加速器D2。因此,m个加速器D1各自通过自身配置的网卡,将调整后自身具有的第一数据中的数据发往通信加速器标识cDevID指示的加速器D2。在实际应用中,可以为加速器D1可以为调整后自身具有的第一数据中的数据标记通信加速器标识cDevID。
举例来说,假设D1i和D2i对应,即D1i指示的加速器D1和D2i指示的加速器D2通过网卡通信,则加速器D1i的通信加速器标识cDevIDi为D2i。
步骤651、m个加速器D2通过自身互连的链路,调整接收到的第一数据在m个加速器D2的分布,使得m个加速器D2具有第一数据中标记终加速器标识tDevID指示自身的数据。
在实际应用中,node2中的m个加速器D2基于m个加速器D1发送的每份数据和其标记的终加速器标识tDevID,通过互连的链路,将未在标记的终加速器标识tDevID指示的加速器D2内的数据传输至指示的加速器D2,调整第一数据在m个加速器D2的分布,将使得m个加速器D2各自在调整后对应的存储有第一数据中标记自身的终加速器标识tDevID的数据。
可选地,m个加速器D1通过自身的网卡,将步骤630调整后自身具有的第一数据中的数据和其对应的数据标识(用于区别不同的数据,比如可以数字和/或字母等)传输至通信的加速器D2。考虑到第一数据中的每份数据各自标记有数据标识(记为dataID)和终加速器标识tDevID,数据的数据标识dataID和终加速器标识tDevID存在对应关系,因此,m个加速器D1各自得到指示数据标识dataID和终加速器标识tDevID的对应关系的信息(为了便于描述和区别,可以称为对应信息),将该关系信息发送到对应的加速器D2,从而使得对应的加速器D2基于该关联信息,确定接收到对应的加速器D1发送的数据标记的终加速器标识tDevID。
可选地,m个加速器D1通过自身的网卡,各自将步骤630调整后自身具有的第一数据中的数据和其对应的终加速器标识tDevID传输至与其通信的加速器D2,从而使得node2中的每个加速器D2接收到对应的加速器D1发送的数据和其标记的终加速器标识tDevID。
综上,本发明实施例中,将node1需要通过网卡发往node2的数据均分在node1内的互连的m个加速器D1上,使得该node1内的每个加速器D1通过网卡向node2发送到的数据的数据量相似或相同,避免了node1中的某个加速器D1的通信量过大导致其他的节点等待。后续,node2再通过内部m个加速器D2之间的互连的通道,改变数据分布,使得node2中的每个加速器D2得到node1需要发往自身的数据。
值得注意点的是,m个加速器D1中存储的多份数据标记的多个终加速器标识tDevID包括指示加速器D1的终加速器标识tDevID。因此,在调整第一数据在m个加速器D1的分布的过程中,m个加速器D1通过自身互连的链路,各自将存储的数据发往其标记终加速器标识tDevID指示的自身之外的加速器D1。具体地,步骤630还可以包括如下内容:
m个加速器D1通过自身互连的链路,各自将存储的数据发往其标记的终加速器标识tDevID指示的自身之外的加速器D1。
在上述图6所示实施例中步骤610和步骤640的基础上,如图6所示,本发明实施例中,在执行步骤641的同时,至少还包括如下步骤:
步骤642、m个加速器D2各自通过自身的网卡向对应的加速器D1发送第二数据;其中,第二数据包括未在标记的终加速器标识tDevID指示的加速器D1内的数据。
需要说明的是,第二数据可以理解为node2按照前述步骤610至630处理后的m个加速器D2中的所有标记指示加速器D1的数据。
可选地,加速器D1可以同时接收第二数据和第二数据标记的终加速器标识tDevID。
可选地,加速器D1可以先接收第二数据和其对应的数据标识dataID,然后接收数据标识dataID和终加速器标识tDevID的对应关系的对应信息,基于该对应信息,可以得到接收第二数据和其对应的终加速器标识tDevID。
值得注意的是,若第二数据中不存在未在标记的终加速器标识tDevID指示的加速器D1内的数据时,此时,node2和node1之间的完成数据通信。
对应的,在执行步骤651的同时,至少还包括如下步骤:
步骤652、m个加速器D1通过自身互连的链路,将未在标记的终加速器标识tDevID指示的加速器D1内的数据传输至指示的加速器D1。
根据一种可行的实现方式,第一分布策略包括m个加速器D1各自对应的目标调整策略(记为SFDIS),对于m个加速器D1中的第i个加速器D1i,加速器D1i对应的目标调整策略SFDISi指示了加速器D1i中存储的第一数据中的每份数据(为了便于描述和区别,称为目标数据)各自在m个加速器D1的分布情况。在实际应用中,目标调整策略可以包括多个数组(为了便于描述和区别,称为目标数组),每个目标数组通过[dataID、nDevID、fdatasize]表示,其中,dataID表示D1i存储的目标数据的数据标识、nDevID表示需要发往的加速器D1(为了便于描述和区别,可以称为节点内加速器标识)、fdatasize表示需要发送的数据的数据量(为了便于描述和区别,可以称为目标内传数据量)。对应的,[dataID、nDevID、fdatasize]表示dataID指示的目标数据中需要向nDevID指示的加速器D1发送的数据的数据量为fdatasize。值得注意的是,一个数据标识dataID可以对应多个数组,每个数组中的nDevID表示不同的节点内加速器标识。在实际应用中,目标调整策略中的节点内加速器标识nDevID指示的加速器D1可以为加速器D1i,则第i加速器D1存储的第一数据中的数据无需发往加速器D1i之外的其他的加速器D1。
在该实现方式的基础上,本发明实施例提供了图6中步骤620的两种实现方式。
实现方式1,图7a是图6中步骤620的流程示意图。如图7a所示,在上述图6所示实施例的基础上,本发明实施例中,步骤620,具体可以包括如下步骤:
步骤6211、处理器基于m个加速器D1存储的多份数据各自的数据量和标记的终加速器标识tDevID,确定m个加速器D1各自对应的第一外传数据量;其中,第一外传数据量指示了对应的加速器D1存储的第一数据中的数据的数据量之和。
举例来说,对于m个加速器D1中的加速器D1i,假设其存储的标记指示m个加速器D2的m个终加速器标识tDevID的m份目标数据的数据量为TDi1、TDi2、…、TDim,则加速器D1i对应的第一外传数据量ODATASIZEi=TDi1+TDi2+…+TDim。这里,i=1、2、…、m。
举例来说,如图3所示,对于node0,D00的第一外传数据量为a0+b0+c0+d0。D01的第一外传数据量为a1+b1+c1+d1。D02的第一外传数据量为a2+b2+c2+d2。D03的第一外传数据量为a3+b3+c3+d3。
步骤6212、处理器基于m个加速器D1各自对应的第一外传数据量、多份数据各自的数据量和标记的终加速器标识tDevID,确定第一数据在m个加速器D1的第一分布策略。
具体地,处理器基于m个加速器D1各自对应的第一外传数据量,确定m个加速器D1各自对应的卡间调整策略SSDIS。加速器D1i对应的卡间调整策略SSDISi指示了加速器D1i需要向自身之外的其他的加速器D1,发送的加速器D1i存储的第一数据中的数据的数据量。在实际应用中,卡间调整策略SSDISi包括若干个数组(为了便于和区别,称为决策数组),每个决策数组通过[nDevID、sdatasize]表示。其中,nDevID表示节点内加速器标识,用于指示加速器D1i之外的其他的加速器D1,sdatasize表示需要发送的数据(为了便于描述和区别,可以称为卡间内传数据量)。[nDevID、sdatasize]表示向nDevID指示的加速器D1发送的加速器D1i存储的第一数据中的数据的数据量为sdatasize。在实际应用中,卡间调整策略SSDISi可以为空,即无需向对应的加速器D1之外的其他的第一加速,发送对应的加速器D1存储的第一数据中的数据。
在一种可行的实现方式中,m个加速器D1各自对应一个第一外传数据量总共m个第一外传数据量。对m个第一外传数据量进行分析,确定m个加速器D1各自需要的网络通信数据量;然后,对于m个加速器D1中的加速器D1i,将该加速器D1i对应的第一外传数据量减去网络通信数据量,得到第一差异量FDIS(若为正值则指示了需要减少的数据的数据量,若为负值,则指示了需要增加的数据的数据量),加速器D1i的第一差异量可以表示为FDISi;在得到m个加速器D1各自对应的第一差异量FDIS共m个第一差异量FDIS后,基于m个第一差异量FDIS,对m个加速器D1进行配对和数据调整,使得m个加速器D1最终通过网卡传输的数据的数据量和网络通信数据量相同或相似,得到m个加速器D1各自对应的卡间调整策略SSDIS。
在实际应用中,网络通信数据量一般为m个第一外传数据量的均值,也即第一数据的数据量除以m的值。下面对基于m个加速器D1对应的网络通信数据量和m个第一差异量FDIS,确定m个加速器D1各自对应的卡间调整策略(为了便于描述和区别,称为步骤A)进行详细描述。
在实际应用中,m个加速器D1各自对应的第一差异量FDIS以集合的方式表示,这里,为了便于描述和区别,将m个第一差异量FDIS形成的集合称为第一集合,第一集合包括m个第一差异量FDIS:FDIS1、FDIS2、……、FDISm。
可选地,步骤A具体包括如下内容:
步骤A01、判断第一集合中是否存在相加之和大于0且小于等于预设阈值的两个FDIS,如果是,执行步骤A02,如果否,执行步骤A05。
步骤A02、从第一集合中选择相加之和大于0且小于等于预设阈值的两个FDIS,大于0的FDIS记为>0:FDIS,小于0的FDIS记为<0:FDIS。
步骤A03、对于>0:FDIS,确定>0:FDIS对应的加速器D1对应的决策数组[nDevID、sdatasize],nDevID指示<0:FDIS对应的加速器D1,sdatasize为<0:FDIS的绝对值。
步骤A04、删除第一集合中的两个FDIS,执行步骤A01。
步骤A05、从第一集合中选择大于0的最大的FDIS记为>0max:FDIS,以及,小于0且绝对值最小的FDIS记为<0min:FDIS。
步骤A06、判断两个>0max:FDIS和<0min:FDIS之和是否大于预设阈值,如果是,执行步骤A07,如果否,执行步骤A09。
步骤A07、确定>0max:FDIS对应的加速器D1对应的决策数组[nDevID、sdatasize],nDevID指示<0min:FDIS对应的加速器D1,sdatasize为<0min:FDIS的绝对值。
步骤A08、将第一集合中大于0的>0max:FDIS更新为>0max:FDIS+<0min:FDIS的结果,删除<0min:FDIS,执行步骤A01。
步骤A09、对于m个加速器D1中的加速器D1i,若该加速器D1i对应有决策数组[nDevID、sdatasize],则统计该加速器D1i对应的所有的决策数组[nDevID、sdatasize],汇总后得到卡间调整策略SSDISi。若该加速器D1标识未对应有决策数组[nDevID、sdatasize],则卡间调整策略SSDISi为空。
需要说明的是,上述方法仅仅作为示例,并不构成具体限定,在实际应用,可以从第一集合中随机选择两个第一差异量FDIS,若这两个第一差异量FDIS之间的差异较小,且大于0的第一差异量>0:FDIS的绝对值大于小于0的第一差异量<0:FDIS的绝对值,确定大于0的第一差异量>0:FDIS对应的加速器D1对应的决策数组[nDevID、sdatasize](参见A03);若这两个第一差异量FDIS之间的差异较小,且大于0的第一差异量>0:FDIS的绝对值大于小于0的第一差异量<0:FDIS的绝对值,确定大于0的第一差异量>0:FDIS对应的加速器D1对应的决策数组[nDevID、sdatasize](参见A07),然后,按照步骤A08的方式更新第一集合。
接下来对如何确定m个加速器D1各自对应的目标调整策略SFDIS进行描述。考虑到m个加速器D1中的每个加速器D1的目标调整策略SFDIS的确定方式相同,下面以确定加速器D1i的目标调整策略SFDISi为例进行描述。
根据一种可行的实现方式,基于加速器D1i的卡间调整策略SSDISi中的所有决策数组[nDevID、sdatasize],结合加速器D1i存储的每份目标数据的数据量,得到加速器D1i的目标调整策略SFDISi。目标数据为标记指示加速器D2的终加速器标识tDevID的数据。
在实际应用中,加速器D1i存储的每份目标数据的数据量以集合的方式表示,这里,为了便于描述和区别,将该集合称为目标数据量集合。卡间调整策略SSDISi中的所有决策数组中的卡间内传数据量sdatasize以集合的方式表示,这里,为了便于描述和区别,将该集合称为卡间内传数据量sdatasize集合。
下面给出5种分配策略。为了便于描述和区别,将目标数据量集合中数据量称为目标数据量,将卡间内传数据量称为目标卡间内传数据量GsdatasizeGsdatasize。
策略1,目标数据量大于等于目标卡间内传数据量Gsdatasize,且差值较小,则将目标卡间内传数据量Gsdatasize作为目标内传数据量关联到目标数据量对应的目标数据。
对应的,可以确定策略1对应的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为目标数据量对应的数据,nDevID为目标卡间内传数据量Gsdatasize所在的决策数组[nDevID、sdatasize]中的nDevID,fdatasize为目标卡间内传数据量Gsdatasize。
对应的,策略1对应的集合更新方式为删除目标数据量集合和卡间内传数据量sdatasize集合中的目标数据量和目标卡间内传数据量Gsdatasize。
策略2,目标数据量大于等于X个目标卡间内传数据量Gsdatasize之和,且差值较小,则将X个目标卡间内传数据量Gsdatasize分别作为目标内传数据量关联到目标数据量对应的目标数据。
对应的,可以确定策略2对应的X个目标数组[dataID、nDevID、fdatasize],X个目标数组中的X个fdatasize分别为X个目标卡间内传数据量Gsdatasize一一对应,dataID指示的数据为目标数据量对应的数据,nDevID为fdatasize对应的目标卡间内传数据量Gsdatasize所在的决策数组[nDevID、sdatasize]中的nDevID。
对应的,策略1对应的集合更新方式为删除目标数据量集合和卡间内传数据量sdatasize集合中的目标数据量和X个目标卡间内传数据量Gsdatasize。
策略3,目标卡间内传数据量Gsdatasize小于等于Y个目标数据量之和,且差值较小,则按照目标数据量的大小,将该目标卡间内传数据量Gsdatasize划分后得到Y个目标内传数据量,Y个目标内传数据量关联到Y个目标数据量对应的Y个目标数据。
对应的,可以确定策略3对应的Y个目标数组[dataID、nDevID、fdatasize],Y个目标数组中的Y个fdatasize分别为目标卡间内传数据量Gsdatasize划分得到,dataID指示的数据为目标数据量对应的数据,nDevID为目标卡间内传数据量Gsdatasize所在的决策数组[nDevID、sdatasize]中的nDevID。
对应的,策略3对应的集合更新方式为删除目标数据量集合和卡间内传数据量sdatasize集合中的Y个目标数据量和目标卡间内传数据量Gsdatasize。
策略4,目标数据量大于目标卡间内传数据量Gsdatasize,且相差较大,则将目标卡间内传数据量Gsdatasize关联到目标数据量对应的目标数据上。
对应的,可以确定策略4对应的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为目标数据量对应的数据,nDevID为目标卡间内传数据量Gsdatasize所在的决策数组[nDevID、sdatasize]中的nDevID,fdatasize为目标卡间内传数据量Gsdatasize。
对应的,策略4对应的集合更新方式为将目标数据量集合中的目标数据量更新为目标数据量减去目标卡间内传数据量Gsdatasize的结果,删除卡间内传数据量sdatasize集合中的目标卡间内传数据量Gsdatasize。
策略5,目标数据量小于目标卡间内传数据量Gsdatasize,且相差较大,则按照目标数据量对目标卡间内传数据量Gsdatasize进行划分,得到和目标数据量相同的目标内传数据量,将其关联到目标数据量对应的数据上。
对应的,可以确定策略5对应的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为目标数据量对应的数据,nDevID为目标卡间内传数据量Gsdatasize所在的决策数组[nDevID、sdatasize]中的nDevID,fdatasize为目标数据量。
对应的,策略5对应的集合更新方式为删除目标数据量集合中的目标数据量,将卡间内传数据量sdatasize集合中的目标卡间内传数据量Gsdatasize更新为目标卡间内传数据量Gsdatasize减去目标数据量的结果。
上述5个策略可以随意选择组合。示例地,首先,判断目标数据量集合和卡间内传数据量sdatasize集合中是否存在策略1描述的情况,若存在,则选择满足策略1的目标数据量和目标卡间内传数据量Gsdatasize,得到策略1对应的目标数组[dataID、nDevID、fdatasize],之后,按照策略1对应的集合更新方式更新目标数据量集合和卡间内传数据量sdatasize集合。循环反复,直到目标数据量集合和卡间内传数据量sdatasize集合中不存在策略1描述的情况。
接着,判断目标数据量集合和卡间内传数据量sdatasize集合中是否存在策略2描述的情况,若存在,则选择满足策略2的目标数据量和X个目标卡间内传数据量Gsdatasize,得到策略2对应的X个目标数组[dataID、nDevID、fdatasize],之后,按照策略2对应的集合更新方式更新目标数据量集合和卡间内传数据量sdatasize集合。循环反复,直到目标数据量集合和卡间内传数据量sdatasize集合中不存在策略2描述的情况。
接着,判断目标数据量集合和卡间内传数据量sdatasize集合中是否存在策略3描述的情况,若存在,则选择满足策略3的Y个目标数据量和目标卡间内传数据量Gsdatasize,得到策略3对应的Y个目标数组[dataID、nDevID、fdatasize],之后,按照策略3对应的集合更新方式更新目标数据量集合和卡间内传数据量sdatasize集合。循环反复,直到目标数据量集合和卡间内传数据量sdatasize集合中不存在策略3描述的情况。
接着,判断目标数据量集合和卡间内传数据量sdatasize集合中是否存在策略4描述的情况,若存在,则选择满足策略4的目标数据量和目标卡间内传数据量Gsdatasize,得到策略4对应的目标数组[dataID、nDevID、fdatasize],之后,按照策略4对应的集合更新方式更新目标数据量集合和卡间内传数据量sdatasize集合。循环反复,直到目标数据量集合和卡间内传数据量sdatasize集合中不存在策略4描述的情况。
接着,判断目标数据量集合和卡间内传数据量sdatasize集合中是否存在策略5描述的情况,若存在,则选择满足策略5的目标数据量和目标卡间内传数据量Gsdatasize,得到策略5对应的目标数组[dataID、nDevID、fdatasize],之后,按照策略5对应的集合更新方式更新目标数据量集合和卡间内传数据量sdatasize集合。循环反复,直到目标数据量集合和卡间内传数据量sdatasize集合中不存在策略5描述的情况。
最后,对于所有的目标数组[dataID、nDevID、fdatasize]中dataID没有指示的目标数据,可以确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为该目标数据的数据量。对于所有的目标数组[dataID、nDevID、fdatasize]中的相同dataID所在的目标数组中的fdatasize之和,与该dataID指示的目标数据的数据量不同时,还可以确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为该目标数据的数据量减去指示该目标数据的dataID所在的目标数组中的sdatasize的结果。
最后,统计所有的目标数组[dataID、nDevID、fdatasize],得到加速器D1i的目标调整策略SFDISi。
需要说明的是,上述方案仅仅作为示例,并不构成具体限定,在实际应用,可以选择策略1至策略5的任意一个或多个策略,确定目标调整策略SFDISi。
下面介绍另一种可行的实现方式,对于加速器D1i,为了减少m个加速器D1之间的通信成本,需要尽可能保障目标数据发往其标记的终加速器标识tDevID指示的加速器D2通过网卡通信的加速器D1。
可选地,对于加速器D1i存储的每份目标数据,确定该份目标数据标记的终加速器标识tDevID指示的加速器D2,通过网卡通信的加速器D1(为了便于描述和区别,记为GD1),若卡间调整策略SSDISi不存在指示GD1的nDevID,则该目标数据的数据量作为可用数据量,并通过数组(为了便于描述和区别,称为可用数据量数组)记录该目标数据和可用数据量的对应关系,可用数据量数组表示为[dataID、adatasize]表示,dataID指示的数据为该目标数据,adatasize表示可用数据量;若卡间调整策略SSDISi存在指示GD1的nDevID(为了便于描述和区别,记为GnDevID),则判断该目标数据的数据量是否大于等于GnDevID所在的决策数组中的sdatasize。
如果,该目标数据的数据量大于等于GnDevID所在数组中的sdatasize,确定目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为GnDevID所在决策数组中的sdatasize。另外,若大于,进一步地,还可以确定该目标数据的数据量和GnDevID所在的决策数组中的sdatasize之间的差值,该差值为可用数据量sdatasize。
若该目标数据的数据量小于GnDevID所在的决策数组中的sdatasize,确定目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为该目标数据的数据量。进一步地,确定该目标数据的数据量和GnDevID所在数组中的sdatasize之间的差值(为了便于描述和区别,称为补充数据量),并通过数组(为了便于描述和区别,称为补充数据量数组)记录GnDevID和补充数据量之间的对应关系,补充数据量数组表示为[nDevID、rdatasize],nDevID表示Gsdatasize所在的决策数组中的nDevID,rdatasize表示补充数据量。
对于加速器D1i,将存储的每份目标数据按照上述方式处理完成后,得到可用数据量adatasize形成的集合(为了便于描述和区别,称为可用数据量集合)和补充数据量rdatasize形成的集合(为了便于描述和区别,称为补充数据量集合)。
然后,按照上述对目标数据量集合和卡间内传数据量sdatasize集合的处理方式,处理可用数据量集合和补充数据量集合,确定若干个目标数组[dataID、nDevID、fdatasize]。这里,相对于目标数据量集合和卡间内传数据量sdatasize集合的处理过程来说,区别仅仅作为将目标数据量替换为目标可用数据量,目标卡间内传数据量Gsdatasize替换为目标补充数据量。
另外,对于所有的目标数组[dataID、nDevID、fdatasize]中dataID没有指示加速器D1i存储的目标数据,可以确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为该目标数据的数据量。对于所有的目标数组[dataID、nDevID、fdatasize]中的相同dataID所在的目标数组中的fdatasize之和,与该dataID指示的目标数据的数据量不同时,还可以确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为该目标数据的数据量减去指示该目标数据的dataID所在的目标数组中的sdatasize的结果。
最后,统计所有的目标数组[dataID、nDevID、fdatasize],得到加速器D1i的目标调整策略SFDISi。
在实际应用中,如不存在补充数据量,统计所有的目标数组[dataID、nDevID、fdatasize],得到加速器D1i的目标调整策略SFDISi。
实现方式2,图7b是图6中步骤620的流程示意图。如图7b所示,在上述图6所示实施例的基础上,本发明实施例中,步骤620,具体可以包括如下步骤:
步骤6221、处理器基于多份数据各自的数据量和标记的需发往的终加速器标识tDevID,确定m个加速器D1各自对应的第二外传数据量和初始通信信息;其中,第二外传数据量指示了第一数据中标记的终加速器标识tDevID为通信加速器标识cDevID的数据的数据量,初始通信信息指示了其他的加速器D1各自存储的标记的终加速器标识tDevID为通信加速器标识的数据的数据量,通信终加速器标识cDevID指示了对应的加速器D1通过网卡通信的加速器D2。
在实际应用中,加速器D1i的初始通信信息OCD1i包括多个数组(为了便于描述和区别,称为初始通信数组),每个初始通信数组表示为[nDevID,tdatasize],tdatasize表示nDevID指示的加速器D1存储的,标记的终加速器标识tDevID为加速器D1i的通信加速器标识cDevIDi的数据的数据量。
举例来说,对于m个加速器D1中的加速器D1i,假设其存储的标记指示m个加速器D2的m个终加速器标识tDevID的m份数据的数据量为TDi1、TDi2、…、TDim,各自标记的终加速器标识tDevID为D21、D22、…、D2m,假设加速器D2i和加速器D1i通信,则加速器D1i对应的通信加速器标识cDevIDi为加速器D2i;则第1个加速器D1的D11的对应的通信加速器标识cDevID1为D21,则第二外传数据量ODATASIZE1=TD11+TD21+…+TDm1,初始通信信息OCD11包括[nDevID=D12,tdatasize=TD21]、…、[nDevID=D12,tdatasize=TDm1]。第2个加速器D12、…、第m个加速器D1m对应的第二外传数据量和初始通信信息类同,不再赘述。
举例来说,如图3所示,对于node0,D00和D10通信,通信加速器标识cDevID=D10,则D00对应的第二外传数据量为a0+a1+a2+a3,D00对应的初始通信信息OCD00包括[D01,a1],[D02,a2],[D03,a3]。
D01和D11通信,通信加速器标识cDevID=D11,则D01对应的第二外传数据量为b0+b1+b2+b3,D01对应的初始通信信息OCD01包括[D00,b0],[D02,b2],[D03,b3]。
D02和D12通信,通信加速器标识cDevID=D12,则D02对应的第二外传数据量为c0+c1+c2+c3,D02对应的初始通信信息OCD02包括[D00,c0],[D01,c1],[D03,c3]。
D03和D13通信,通信加速器标识cDevID=D13,则D03对应的第二外传数据量为d0+d1+d2+d3,D03对应的初始通信信息OCD03包括[D00,d0],[D01,d1],[D02,d2]。
步骤6223、处理器基于m个加速器D1各自对应的第二外传数据量和初始通信信息,确定第一数据在m个加速器D1的第一分布策略。
在一种可行的实现方式中,m个加速器D1各自对应一个第二外传数据量总共m个第二外传数据量,对m个第二外传数据量进行分析,确定m个加速器D1各自需要的网络通信数据量;然后,对于m个加速器D1中的每个加速器D1,将该加速器D1i对应的第二外传数据量减去网络通信数据量,得到第二差异量SDIS(若为正值则指示了需要减少的数据的数据量,若为负值,则指示了需要增加的数据的数据量),加速器D1i的第二差异量可以表示为SDISi;在得到m个加速器D1各自对应的第二差异量SDIS共m个第二差异量SDIS后,基于m个第二差异量SDIS,对m个加速器D1进行配对和数据调整,使得m个加速器D1最终通过网络传输的数据的数据量和网络通信数据量相同或相似,最终确定m个加速器D1各自对应的卡间调整策略SSDIS。卡间调整策略SSDIS的描述参见上文描述不再赘述。
m个加速器D1各自对应的第二差异量SDIS以集合的方式表示,这里,为了便于描述和区别,将m个第二差异量SDIS形成的集合称为第一集合,第一集合包括m个第二差异量SDIS:SDIS1、SDIS2、……、SDISm。
下面对基于m个加速器D1对应的网络通信数据量和m个第二差异量SDIS,确定m个加速器D1各自对应的卡间调整策略SSDIS(为了便于描述和区别,称为步骤B)进行详细描述。步骤B可以参见上文对步骤A的描述,区别仅仅在于将FDIS替换为SDIS。
在确定了m个加速器D1各自对应的卡间调整策略SSDIS后,即可基于m个加速器D1各自对应的卡间调整策略SSDIS确定m个加速器D1各自对应的目标调整策略SFDIS。下面对确定m个加速器D1各自对应的目标调整策略SFDIS进行详细描述。
需要说明的是,对于m个第二差异量SDIS中小于0的第二差异量<0:SDIS对应的加速器D1,该加速器D1对应的卡间调整策略SSDIS为空,则对于该加速器D1存储的每份目标数据,确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID指示该目标数据标记的终加速器标识tDevID指示的加速器D2通过网卡通信的加速器D1,fdatasize为该目标数据的数据量。
另外,对于m个第二差异量中大于0的第二差异量>0:SDIS对应的加速器D1,为了便于描述和区别,假设该加速器D1为D1j,与该加速器D1j的通信加速器标识cDevID相同的终加速器标识tDevID作为目标终加速器标识GtDevID;基于该加速器D1j对应的卡间调整策略SSDISj和初始通信信息OCD1j(多个数组[nDevID,tdatasize]),确定m个加速器D1j存储的标记目标终加速器标识GtDevID的目标数据的若干个目标数组[dataID、nDevID、fdatasize]。具体如下:
具体地,对于卡间调整策略SSDISj中每个决策数组[nDevID、sdatasize],将该决策数组中的sdatasize作为需求数据量,nDevID指示的加速器D1存储的标记目标终加速器标识GtDevID的目标数据的数据量作为初始数据量。
判断需求数据量是否大于初始数据量,如果是,确定该决策数组[nDevID、sdatasize]中nDevID指示的加速器D1对应的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该加速器D1中存储的标记目标终加速器标识GtDevID的目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为初始数据量。并将初始数据量和需求数据量之间的差值作为补充数据量rdatasize,并记录补充数据量数组[dataID、rdatasize],dataID指示的数据为该加速器D1中存储的标记目标终加速器标识GtDevID的目标数据。
如果否,该数组[nDevID、sdatasize]中nDevID指示的加速器D1对应的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该加速器D1中存储的标记目标终加速器标识GtDevID的目标数据,nDevID为该目标数据所在的加速器D1,fdatasize为需求数据量。并将初始数据量和需求数据量之间的差值作为可用数据量adatasize,并记录可用数据量数组[dataID、adatasize],dataID指示的数据为该加速器D1中存储的标记目标终加速器标识GtDevID的目标数据。
另外,对于卡间调整策略SSDISj中所有决策数组[nDevID、sdatasize]中的nDevID没有指示的加速器D1,将该加速器D1存储的标记目标终加速器标识GtDevID的目标数据的数据量作为可用数据量。
在处理完卡间调整策略SSDISj中每个决策数组后,可以得到若干个补充数据量sdatasize形成的补充数据量集合和若干个可用数据量adatasize形成的可用数据量集合,然后,按照上述对需求数据量集合和卡间内传数据量sdatasize集合的处理方式,处理可用数据量集合和补充数据量集合,确定若干个目标数组[dataID、nDevID、fdatasize]。
确定m个加速器D1j存储的标记目标终加速器标识GtDevID的目标数据的若干个目标数组[dataID、nDevID、fdatasize]。
在处理完m个第二差异量中每个大于0的第二差异量>0:SDIS对应的加速器D1后,进一步地,对于所有的目标数组[dataID、nDevID、fdatasize]中的dataID没有指示的目标数据,确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID指示该目标数据标记的终加速器标识tDevID指示的加速器D2通过网卡通信的加速器D1,fdatasize为该目标数据的数据量。对于所有的目标数组[dataID、nDevID、fdatasize]中的相同dataID所在的目标数组中的fdatasize之和,和该dataID指示的目标数据的数据量不同时,确定该目标数据的目标数组[dataID、nDevID、fdatasize],dataID指示的数据为该目标数据,nDevID指示该目标数据标记的终加速器标识tDevID指示的加速器D2通过网卡通信的加速器D1,fdatasize为该目标数据的数据量减去dataID所在的目标数组中的fdatasize的结果。
最后,统计所有的目标数组[dataID、nDevID、fdatasize],得到m个加速器D1各自对应的目标调整策略SFDIS。
需要说明的是,上述方法仅仅作为示例,并不构成具体限定。
值得注意的是,在实际应用中,对于m个加速器D1中的每个加速器D1,该加速器D1按照对应的目标调整策略中的[dataID、nDevID、fdatasize],得到每个目标数组[dataID、nDevID、fdatasize]对应的一份数据,该数据的数据量为fdatasize,并为该数据标记对应的目标数组中的nDevID;当fdatasize和dataID指示的目标数据的数据量相同中,该数据为dataID指示的目标数据,当fdatasize和dataID指示的目标数据的数据量不同,该数据为dataID指示的目标数据中部分。对应的,在步骤630中,通过自身互连的链路,将未在标记的节点内加速器标识nDevID指示的加速器D1内的数据,传输至对应的加速器D1,使得标记相同的节点内加速器标识nDevID的数据汇聚到指示的加速器D1。
图8a是本申请实施例提供的应用场景的示意图二。如图8a所示,N个节点node具有管理节点,管理节点可以管理N个节点node中的m个加速器D,比如,可以对N*m个加速器D进行全局顺序编号,得到加速器标识为D1、D2、…、DN*m,这里,1至m表示节点node0中的加速器D,m+1至2m表示节点node1中的加速器D,以此类推不再赘述;再比如,可以对可以对N*m个加速器D进行全局顺序编号,得到加速器标识为D01、D02、…、D0m、…、D(N-1)m,这里,D01、D02、…、D0m表示节点node0中的加速器D,以此类推不再赘述。具体地,该管理节点可以确定N*N*m份数据,每份数据标记有数据标识dataID、终加速器标识tDevID、始加速器标识oDevID(表示数据需要存储的加速器)、标签,之后,管理节点将N*N*m份数据和其标记的终加速器标识tDevID、始加速器标识oDevID和标签,发送至数据标记的oDevID指示的加速器D存储。值得注意的是,在数据处理过程中,数据一直带着标记的数据标识dataID、终加速器标识tDevID、始加速器标识oDevID。
另外,管理节点还可以确定N*m个加速器D各自对应的通信信息。其中,通信信息包括N-1个通信加速器标识,N-1个通信加速器标识指示的加速器D位于不同的节点node,且这些节点node为对应的加速器D所在的节点node之外的节点node。具体来说,对于N个节点node中的节点nodei,节点nodei中的m个加速器D各自与其他的N-1节点中的1个加速器D通过网卡通信,值得注意的是,节点nodei中的m个加速器D各自与相同节点中不同的加速器D通过网卡通信。之后,管理节点可以将每个加速器D各自对应的通信信息发送到对应的加速器D。N*m个加速器D各自存储有加速器D通信信息。
另外,N个节点node中每个节点node各自具有m个加速器D,每个加速器D各自存储有第一模型和第二模型,在管理节点发送数据后,可以得到N*m份数据,每份N*m份数据各自标记有标签、终加速器标识tDevID和始加速器标识oDevID,其中,N*m份数据中的m份数据标记的标记的终加速器标识tDevID指示自身所在节点的加速器D,其他的m*(N-1)份数据标记的终加速器标识tDevID指示其他的节点中的加速器D,标签指示了第二模型需要达到的真实输出结果。
具体地,本发明实施例提供的通信方法可以应用超大规模的大模型训练。
示例地,该大模型可以为NLP(Natural Language Processing,自然语言处理)领域的模型。在NLP领域,通常涉及到表征向量embedding,比如,一个词一个embedding,对应的,管理节点存储的数据为embedding。由于embedding的容量普遍超过了加速器D的存储空间,所以全量的embedding部署在管理节点的内存中,在训练过程中由该管理节点提前将当前训练所需要的部分embedding提前放到加速器D。由于embedding具有稀疏性,可以被压缩,压缩后可以使用本发明实施例提供的通信方法来进行通信,可以优化通信量,提高整体吞吐量。具体地,N*m个加速器D分别部署有embedding的编码层(上述第一模型)和任务层(上述第二模型),其中,编码层用于提取embedding的更高维的信息,任务层用于基于编码层的输出结果实现任务,比如,预测embedding表示的词。在实际应用中,N*m个加速器D各自将embedding通过编码层后的编码结果(可以称为第一处理数据)发送到其他的N-1个加速器D上,N*m个加速器D各自将得到的编码结果输入到任务层,得到任务执行结果;然后将任务执行结果(可以称为第二处理数据)原路返回,N*m个加速器D可以基于每个embedding各自的标签和任务执行结果确定误差,基于误差可以训练编码层和任务层,循环反复,最终N*m个加速器D各自得到训练好的编码层和任务层。
示例地,N*m个加速器D分别具有特定专家的知识学习模型(上述第一模型)和多个专家知识的融合模型(上述第二模型),融合模型用于基于不同专家的知识学习模型的输出结果实现任务,得到任务结果,该任务可以为物体识别,也可以为语音识别,还可以为故障预测等任务。在实际应用中,N*m个加速器D各自将样本(即管理节点存储的数据)通过知识学习模型后得到学习结果(可以称为第一处理数据);然后,将N*m个加速器D各自将学习结果发送到其他的N-1个加速器D上,N*m个加速器D各自将得到的学习结果输入到融合模型,得到任务执行结果;然后将任务执行结果(可以称为第二处理数据)原路返回,N*m个加速器D可以基于每个样本各自的标签和任务执行结果确定误差,基于误差可以训练知识学习模型和融合模型,循环反复,最终N*m个加速器D各自得到训练好的知识学习模型和融合模型。
图8b是图8a所示的应用场景下的本申请实施例提供的通信方法的流程示意图。如图8b所示,具体可以包括如下步骤:
步骤801、管理节点的处理器确定N*N*m份数据各自标记的始加速器标识oDevID、终加速器标识tDevID、标签,以及,N*m个加速器D各自对应的通信信息,通过信息包括(N-1)个通信加速器标识cDevID。
步骤802、管理节点的处理器将N*N*m份数据发往其标记的始加速器标识oDevID指示的加速器D,N*N*m份数据携带标记的始加速器标识oDevID、终加速器标识tDevID、标签。
步骤803、管理节点的处理器将m个通信信息各自发往其对应的加速器D。
步骤804、N*m个加速器D各自通过自身存储的第一模型对接收到的N*m份数据进行第一处理,得到处理后的N*m份第一处理数据。
步骤805、N*m个加速器D各自确定N*m份第一处理数据各自对应的目标数组[dataID、nDevID、fdatasize]。
对于节点nodei中的第j个加速器Dj,加速器Dj对于节点nodei之外的N-1个节点node的任意节点(为了便于描述,可以称为目标节点Gnode),基于节点nodei中m个加速器D存储的标记的终加速器标识指示Gnode中加速器D的每份第一处理数据的第一处理数据量,调整标记的终加速器标识指示Gnode中加速器D的所有第一处理数据,在节点nodei中的m个加速器D的分布,得到标记的终加速器标识指示Gnode中加速器D的每份第一处理数据对应的若干个目标数组[dataID、nDevID、fdatasize]。另外,对于加速器Dj中存储的标记的终加速器标识指示节点nodei中的加速器D的第一处理数据,确定该第一处理数据的目标数组[dataID、nDevID、fdatasize]。在处理完节点nodei中m个加速器D存储的标记的终加速器标识,指示节点nodei之外的N-1个节点node中的加速器D的第一处理数据后,对于加速器Dj中存储的标记的终加速器标识指示节点nodei中的加速器D的第一处理数据,确定该第一处理数据的目标数组[dataID、nDevID、fdatasize]。最终,得到加速器Dj存储的N*m份目标第一处理数据各自对应的目标数组[dataID、nDevID、fdatasize]。
步骤806、N*m个加速器D各自基于处理后的N*m份第一处理数据各自对应的目标数组[dataID、nDevID、fdatasize]和对应的通信信息,得到适配目标数组[dataID、nDevID、fdatasize]的多份第一处理数据;其中,每份第一处理数据标记有始加速器标识oDevID、终加速器标识tDevID、通信加速器标识cDevID、节点内加速器标识nDevID,cDevID和tDevID指示的加速器D位于同一节点内。
值得注意的是,对于节点nodei中的第j个加速器Dj,加速器Dj存储的标记的终加速器DtDevID指示的加速器D为节点nodei内加速器D的数据,该数据无需通过网卡发送,因此,这些数据标记的节点内加速器标识nDevID和终加速器标识tDevID相同,后续,通过节点nodei中m个加速器D的互连链路将标记节点内加速器标识nDevID的数据发往该标识指示的加速器D即可。
需要说明的是,对于N*m个加速器D的每个加速器D中的适配目标数组[dataID、nDevID、fdatasize]的每份数据,基于该数据标记的终加速器标识tDevID,从该加速器D对应的通信信息中的N-1个通信加速器标识cDevID确定该数据的通信加速器标识cDevID,通信加速器标识cDevID和终加速器标识tDevID指示的加速器D所在的节点相同。值得注意的是,若该份标记的终加速器标识tDevID指示的加速器D为自身所在节点的加速器D,该通信加速器标识cDevID为空。
步骤807、N个节点各自部署的m个加速器D通过自身互连的链路,将未在标记的节点内加速器标识nDevID指示的加速器D内的第一处理数据传输至指示的加速器D,使得标记相同的节点内加速器标识nDevID的数据汇聚到该标识指示的加速器D。
需要说明的是,对于节点nodei,自身部署的m个加速器D各自在调整后,标记的相同的通信加速器标识cDevID的数据的数据量相同,各自具有的标记指示第j个节点中的加速器D的终加速器标识的所有份数据的数据量之间的差值小于等于预设阈值。第j个节点表示N个节点中第i个节点之外的任一节点。另外,若数据标记的节点内加速器标识nDevID为该数据所在的加速器D,则该数据无需传输,保留在加速器D中即可。
步骤808、N个节点各自部署的m个加速器D各自通过网卡,将第一处理数据和器标记的始加速器标识oDevID、终加速器标识tDevID,发往器标记的通信加速器标识cDevID指示的加速器D。
这里,无需处理通信加速器标识cDevID为空的数据。
步骤809、N*m个加速器D各自通过自身的网卡接收对应的N-1个通信加速器标识cDevID指示的加速器D发送的第一处理数据和其标记的始加速器标识oDevID、终加速器标识tDevID。
步骤810、N个节点各自部署的m个加速器D通过自身互连的链路,各自将未在标记的终加速器标识tDevID指示的加速器D的第一处理数据传输至指示的加速器D。
步骤811、N*m个加速器D各自基于自身存储的第二模型对得到的N*m份第一处理数据进行第二处理,得到处理后的N*m份第二处理数据;
步骤812、N*m个加速器D各自将N*m份第二处理数据发送到其标识的始加速器标识oDevID指示的加速器D。
这里,N*m份第二处理数据按照前述步骤804至809所示的方法进行通信,区别仅仅在于将第一处理数据替换成第二处理数据。
步骤813、N*m个加速器D各自基于N*m份数据各自对应的第二处理数据和标签,更新第一模型和第二模型,执行步骤803。
综上,N*m个加速器D会对自身存储的N*m份数据进行处理,得到处理后的N*m份模型输出数据,之后,N*m个加速器D之间进行按照前述提供的方法对处理后的N*m份模型输出数据进行通信后,使得标记相同的终加速器标识的模型输出数据汇聚到该标识指示的加速器D中,该加速器D对汇聚后的模型输出数据进行处理后,再次得到模型输出数据后原路返回,实现模型更新,如此反复,实现模型训练。
下面结合图9a至图9e对本发明实施例的具体实现进行示例性的描述。
图9a是本申请实施例提供的应用场景的示意图三,如图9a所示,存在两个节点node0和node1,node0中包括2个加速器D00、D01,node1中包括2个加速器D10、D11。其中,D00与D10通过网络通信,D01与D11通过网络通信;加速器D00、D01、D10、D11标记的信息包括数据标识dataID、终加速器标识tDevID、始加速器标识oDevID,这里,数据标识dataID用于区别不同的数据,可以为数据地址,比如,数据的起始地址和长度,也可以为数据编号,比如,数字和/或字母。则加速器D00、D01、D10、D11存储的相关的信息如下表1所示:
表1
其中,对于node0来说,可以采用图7a所示的方法确定第一分布策略。
首先计算D00、D01各自的第一外传数据量。
对于D00,加速器D00存储的标记终加速器标识D10、D11的数据的数据量为:10、4,则D00对应的第一外传数据量为14=10+4。
对于D01,D01表示的加速器D存储的标记终加速器标识D10、D11的目标数据的数据量为:2、1,则D00对应的第一外传数据量为3=2+1。
则第一外传数据量形成的第一集合为{14、3};
然后,计算网络通信数据量为第一集合的均值8.5=(14+3)/2。
然后,计算D00、D01各自对应的第一差异量。
对于D00,第一差异量FDIS为第一外传数据量14和网络通信数据量8.5的差值5.5。
对于D01,第一差异量FDIS为第一外传数据量3和网络通信数据量8.5的差值-5.5。
由于两个第一差异量FDIS=5.5、-5.5可以匹配,基于此,可以确定D00对应的卡间调整策略包括D00对应的决策数组[nDevID=D01、sdatasize=5.5];D00对应的卡间调整策略为空。
接着,确定D00对应的目标数组:考虑到D01和D11通信,为了减少在节点传输的开销,需要将数据传输至其标识的终加速器标识tDevID指示的加速器通信的加速器,因此,确定D00存储的标记终加速器标识tDevID=D11的数据的数据量4,考虑到存储数据量4小于D00对应的第一差异量FDIS=5.5,因此,可以确定D00对应的目标数组[D004,D01,4],表示D00向D01发送的D004指示的数据的数据量为4。进一步的确定补充数据量rdatasize=1.5=5.5-4;标记终加速器标识tDevID=D10的数据的数据量10作为可用数据量adatasize;这里,只有一个可用数据量adatasize=10和一个补充数据量rdatasize=1.5,因此,可以确定D00对应的目标数组[D003,D01,1.5],表示D00向D01发送的D003指示的数据的数据量为1.5。另外,还可以确定目标数组[D003,D00,8.5]、[D001,D00,1],[D002,D01,2]。
对于D01,其对应的目标数组包括[D011、D00、5]、[D012、D01、7]、[D013、D01、2]、[D014、D01、1]。
之后,对于每个目标数组,确定该目标数组下的数据,并为该数据标记终加速器标识oDevID、始加速器标识oDevID、节点内加速器标识nDevID、通信加速器标识cDevID。
示例地,对于目标数组[D004,D01,4],D004指示的数据在标记终加速器标识oDevID=D11、始加速器标识oDevID=D00的基础上,还可以为D004指示的数据标记的节点内加速器标识nDevID=D01,通信加速器标识cDevID=D11。
示例地,对于目标数组[D001,D00,1],D001指示的数据在标记终加速器标识oDevID=D00、始加速器标识oDevID=D00的基础上,还可以为D001指示的数据标记的节点内加速器标识nDevID=D00,通信加速器标识cDevID为空,或者,为D00。
对于[D003,D01,1.5]和[D003,D00,8.5],可以对D003指示的数据划分,一份数据记为D003a,另一份数据记为D003b。D003a的数据量为8.5,标记的节点内加速器标识nDevID=D00、通信加速器标识cDevID=D11,D003b的数据量为1.5,标记的节点内加速器标识nDevID=D01、通信加速器标识cDevID=D11。D003a和D003b各自指示的数据还标记相同的终加速器标识oDevID=D11、始加速器标识oDevID=D00。
其他的目标数组类同,不再赘述。
其中,对于node1来说。若采用图7a所示的方法。处理过程和node0类同,不再赘述。则对于node1来说,D10的第一外传数据量为10,D11的第一外传数据量为10;则第一外传数据量形成的第一集合为{10、10},D10和D11各自对应的第一外传数据量相同,则D10和D11对应的卡间调整策略为空。考虑到采集图7a所示的方法,无需调整,为了尽可能减少数据传输的次数,则可以采用7b所示的方法。
则对于node1来说,首先计算D10、D11各自对应的第二外传数据量。
对于D10,通信加速器标识cDevID=DOO,表示D10和D00通信,则D10和D11存储的标记终加速器标识oDevID=D00的数据的数据量为:7、2;则D10对应的第二外传数据量为9=7+2。另外,对于D10来说,与其通信的加速器D为DOO,D11需要将自身存储的终加速器标识tDevID=D00的数据发送到D10,因此,D10对应的初始通信信息包括[D11,2],表示加速器D11向加速器D10传输的数据的数据量为2。
对于D11,通信加速器标识cDevID=DO1,表示D11和D01通信,D10和D11存储的标记终加速器标识tDevID=D01的数据的数据量为:3、8;则D11对应的第二外传数据量为11=3+8。另外,对于D11来说,与其通信的加速器D为DO1,D10需要将自身存储的终加速器标识oDevID=D01的数据发送到D11,因此,D11对应的初始通信信息包括[D10,3],表示加速器D10向加速器D11传输的目标数据的数据量为3。
则第二外传数据量形成的第二集合为{9、11}。
然后,计算网络通信数据量为第二集合的均值10=(9+11)/2。
然后,计算D10、D11各自对应的第二差异量SDIS。
对于D10,第二差异量SDIS为第二外传数据量9和网络通信数据量10的差值1。
对于D11,第二差异量SDIS为第二外传数据量11和网络通信数据量10的差值-1。
D10和D11的第二差异量之间的差值相似,因此,D10和D11各自的卡间调整策略均为空。
接着,可以确定D10对应的目标数组:D01和D11通信,而D11对应的第二外传数据量指示了D10和D11存储的标记终加速器标识tDevID=D01的数据的数据量之和,由于需要按照第二外传数据量进行传输,因此,D10需要将存储的标记终加速器标识tDevID=D01的数据传输至D11,D10存储的标记终加速器标识tDevID=D01的数据的数据量为3,则可以确定D10对应的目标数组[D102,D11,3],表示D10向D11发送自身存储的D102指示的数据的数据量为3。另外,D00对应的目标数组还包括[D101、D10、7]、[D103、D10、1]、[D104、D11、2]。
按照相似的方式可以确定该D11对应的目标数组[D111,D10,2],[D112,D11,8]、[D113、D10、7]、[D114、D11、1]。
之后,对于每个目标数组,确定该目标数组下的数据,并为该数据标记终加速器标识oDevID、始加速器标识oDevID、节点内加速器标识nDevID、通信加速器标识cDevID。
示例地,对于[D102,D11,3],D102指示的数据在标记终加速器标识oDevID=D01、始加速器标识oDevID=D10的基础上,还可以为D102指示的数据标记的节点内加速器标识nDevID=D11,通信加速器标识cDevID=D01。
示例地,[D103、D10、1],D102指示的数据在标记终加速器标识oDevID=D10、始加速器标识oDevID=D10的基础上,可以为D102指示的数据标记的节点内加速器标识nDevID=D10,通信加速器标识cDevID为空或者D10。
其他类同,不再赘述。
则按照上述方式处理后,加速器D00、D01、D10、D11存储的数据的标记的节点内加速器nDevID标识如图9b所示。
具体地,处理后,加速器D00、D01、D10、D11存储的相关信息如下表2所示:
/>
表2
下面对通信方案进行描述。
Step1:node0中的D00和D01将未在节点内加速器标识nDevID指示的加速器D内的数据传输至指示的加速器D。
具体地,node0中的D00和D01之间通信,D00将标记节点内加速器标识nDevID=D01的数据发往D01,保留标记节点内加速器标识nDevID=D00的数据,D01将标记节点内加速器标识nDevID=D00的数据发往D00,保留标记节点内加速器标识nDevID=D01的数据;node1中的D10和D11之间通信,D10将标记节点内加速器标识nDevID=D11的数据发往D11,保留标记节点内加速器标识nDevID=D10的数据,D11将标记节点内加速器标识nDevID=D10的数据发往D10,保留标记节点内加速器标识nDevID=D11的数据,得到的通信结果如图9c所示。
Step2:node0中的D00和node1中的D10之间通过网卡通信,node0中的D01和node1中的D11之间通过网卡通信,D00、D01、D10、D11各自将数据发往该数据标记的通信加速器标识cDevID指示的加速器D,该数据标记的终加速器标识tDevID和标记的通信加速器标识cDevID指示的加速器D位于同一节点。
具体地,node0中的D00和node1中的D10之间通信,D00保留标记终加速器标识tDevID=D00的数据,标记终加速器标识tDevID=D10的数据发往其标记的通信加速器标识cDevID=D10,D10保留标记终加速器标识tDevID=D10的数据,标记终加速器标识tDevID=D00的数据发往其标记的通信加速器标识cDevID=D00;node0中的D01和node1中的D11之间通信,D01将保留标记终加速器标识tDevID=D01的数据,标记终加速器标识tDevID=D10和D11的数据发往其标记的通信加速器标识cDevID=D11,D11将保留标记终加速器标识tDevID=D11的数据,标记终加速器标识tDevID=D11的数据发往其标记的通信加速器标识cDevID=D01,得到的通信结果如图9d所示。
Step3:node1中的D10和D11之间通信,D11保留标记终加速器标识tDevID=D11的数据,将标记终加速器标识tDevID=D10的数据发往D10,得到的通信结果如图9e所示。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(dataital signalprocessor,DATASIZEP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DATASIZEL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state Disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (10)

1.一种通信方法,其特征在于,应用于第一节点,所述第一节点中互连的m个第一加速器与第二节点中互连的m个第二加速器一一对应,所述m个第一加速器各自和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m为大于等于2的正整数,所述方法包括:
所述m个第一加速器通过自身互连的链路,调整第一数据在所述m个第一加速器的分布,使得各自调整后自身具有的所述第一数据中的数据的数据量差异小于等于预设阈值;其中,所述第一数据为所述多份数据中标记分别指示m个第二加速器的终加速器标识的数据;
所述m个第一加速器各自通过自身配置的网卡,将调整后自身具有的所述第一数据中的数据发往对应的第二加速器,以使m个第二加速器通过自身互连的链路,调整接收到的所述第一数据在m个第二加速器的分布,使得所述m个第二加速器具有所述第一数据中标记终加速器标识指示自身的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
m个第一加速器各自通过自身的网卡接收对应的第二加速器发送的第二数据;其中,所述第二数据包括未在标记的终加速器标识指示的第一加速器内的数据;
所述m个第一加速器通过自身互连的链路,将未在标记的终加速器标识指示的第一加速器内的数据传输至指示的第一加速器。
3.根据权利要求1所述的方法,其特征在于,所述多份数据标记的多个终加速器标识包括指示第一加速器的终加速器标识,所述方法还包括:
所述m个第一加速器通过自身互连的链路,各自将未在标记的终加速器标识指示的第一加速器内的数据传输至指示的第一加速器。
4.根据权利要求1至3任一所示的方法,其特征在于,所述方法还包括:
基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略;
所述m个第一加速器通过自身互连的链路,调整第一数据在所述m个第一加速器的分布,包括:
所述m个第一加速器通过自身互连的链路,按照所述第一分布策略调整所述第一数据在所述m个第一加速器的分布。
5.根据权利要求4所示的方法,其特征在于,所述基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略,包括:
确定m个第一加速器各自对应的第一外传数据量;其中,所述第一外传数据量指示了对应的第一加速器存储的所述第一数据中的数据的数据量之和;
基于所述m个第一加速器各自对应的第一外传数据量、所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略。
6.根据权利要求4所示的方法,其特征在于,所述基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略,包括:
基于所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述m个第一加速器各自对应的第二外传数据量;其中,所述第二外传数据量指示了所述第一数据中标记的终加速器标识为通信加速器标识的数据的数据量,所述通信加速器标识指示了对应的第一加速器通过网卡通信的第二加速器;
基于所述m个第一加速器各自对应的第二外传数据量、所述m个第一加速器存储的多份数据各自的数据量和标记的终加速器标识,确定所述第一数据在所述m个第一加速器的第一分布策略。
7.一种通信系统,其特征在于,包括第一节点和第二节点,所述第一节点中互连的m个第一加速器与所述第二节点中互连的m个第二加速器一一对应,所述m个第一加速器各自和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m为大于等于2的正整数,所述第一节点用于执行如权利要求1-6任一所述的方法。
8.一种服务器,其特征在于,包括:
至少一个存储器,用于存储程序;
互连的m个第一加速器,与第二节点中互连的m个第二加速器一一对应,所述m个第一加速器中每个第一加速器和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m个第一加速器执行所述至少一个存储器存储的程序,实现如权利要求1-6任一所述的方法,所述m为大于等于2的正整数。
9.一种服务器,其特征在于,包括:
至少一个存储器,用于存储程序;
互连的m个第一加速器,与第二节点中互连的m个第二加速器一一对应,所述m个第一加速器中每个第一加速器和其对应的第二加速器通过自身部署的网卡通信,所述m个第一加速器存储的多份数据各自标记有终加速器标识,所述m个第一加速器执行所述至少一个存储器存储的程序,实现如权利要求1-3任一所述的方法,所述m为大于等于2的正整数;
处理器,用于执行所述至少一个存储器存储的程序,实现如权利要求4-6任一所示的方法。
10.一种计算机存储介质,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-6任一所述的方法。
CN202211284784.6A 2022-10-20 2022-10-20 通信方法、系统及服务器 Pending CN117955901A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211284784.6A CN117955901A (zh) 2022-10-20 2022-10-20 通信方法、系统及服务器
PCT/CN2023/101734 WO2024082670A1 (zh) 2022-10-20 2023-06-21 通信方法、系统及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211284784.6A CN117955901A (zh) 2022-10-20 2022-10-20 通信方法、系统及服务器

Publications (1)

Publication Number Publication Date
CN117955901A true CN117955901A (zh) 2024-04-30

Family

ID=90736803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211284784.6A Pending CN117955901A (zh) 2022-10-20 2022-10-20 通信方法、系统及服务器

Country Status (2)

Country Link
CN (1) CN117955901A (zh)
WO (1) WO2024082670A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055648A (ja) * 2016-09-30 2018-04-05 株式会社日立製作所 アクセラレーションシステム及びアクセラレーション方法
US10318461B2 (en) * 2017-08-04 2019-06-11 Dell Products L.P. Systems and methods for interconnecting GPU accelerated compute nodes of an information handling system
KR102382186B1 (ko) * 2018-10-10 2022-04-05 삼성전자주식회사 딥 러닝을 위한 고성능 컴퓨팅 시스템
CN113296718B (zh) * 2021-07-27 2022-01-04 阿里云计算有限公司 数据处理方法以及装置
CN113708979A (zh) * 2021-09-29 2021-11-26 深圳市腾讯网域计算机网络有限公司 网络加速的方法和装置
CN116506359A (zh) * 2022-01-21 2023-07-28 华为技术有限公司 一种数据传输系统、方法及相关设备

Also Published As

Publication number Publication date
WO2024082670A1 (zh) 2024-04-25

Similar Documents

Publication Publication Date Title
WO2018176385A1 (en) System and method for network slicing for service-oriented networks
CN111612153A (zh) 训练模型的方法和装置
CN108667657B (zh) 一种面向sdn的基于局部特征信息的虚拟网络映射方法
CN114040272B (zh) 一种路径确定方法、装置和存储介质
CN114330699A (zh) 神经网络结构搜索方法及装置
US20230215272A1 (en) Information processing method and apparatus, computer device and storage medium
Kim et al. Prediction based sub-task offloading in mobile edge computing
CN115914392A (zh) 算力网络资源调度方法及系统
CN114374605A (zh) 一种网络切片场景下服务功能链动态调整和迁移方法
CN115952832A (zh) 自适应模型量化方法及装置、存储介质及电子装置
CN114205317B (zh) 基于sdn与nfv的服务功能链sfc资源分配方法及电子设备
CN113935390A (zh) 数据处理方法、系统、设备及存储介质
CN114691372A (zh) 一种多媒体端边云系统的群体智能控制方法
Jain et al. Data-prediction model based on stepwise data regression method in wireless sensor network
CN114222371A (zh) 一种eMBB和uRLLC设备共存的流量调度方法
CN113259145B (zh) 网络切片的端到端组网方法、组网装置及网络切片设备
CN113301126A (zh) 一种适用于异构组网网关的边缘计算方法
CN117540822A (zh) 跨移动边缘网络的联邦类增量学习方法、设备和存储介质
Mobasheri et al. Toward developing fog decision making on the transmission rate of various IoT devices based on reinforcement learning
CN117955901A (zh) 通信方法、系统及服务器
CN115550373B (zh) 基于云平台管控的联合试验任务环境负载均衡建模方法
CN116541128A (zh) 一种负载调节方法、装置、计算设备、及存储介质
WO2022252694A1 (zh) 神经网络优化方法及其装置
CN115733888A (zh) 一种边缘环境下支持多物联网应用自适应卸载的方法
CN112637904B (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