CN118041927A - 一种通信方法及装置 - Google Patents
一种通信方法及装置 Download PDFInfo
- Publication number
- CN118041927A CN118041927A CN202211414731.1A CN202211414731A CN118041927A CN 118041927 A CN118041927 A CN 118041927A CN 202211414731 A CN202211414731 A CN 202211414731A CN 118041927 A CN118041927 A CN 118041927A
- Authority
- CN
- China
- Prior art keywords
- server
- source
- computing
- servers
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 257
- 238000000034 method Methods 0.000 title claims abstract description 149
- 230000003287 optical effect Effects 0.000 claims abstract description 82
- 230000005540 biological transmission Effects 0.000 claims description 139
- 230000002776 aggregation Effects 0.000 claims description 33
- 238000004220 aggregation Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 23
- 230000015654 memory Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 20
- 238000007726 management method Methods 0.000 description 76
- 238000010586 diagram Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 31
- 230000006855 networking Effects 0.000 description 28
- 238000012549 training Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 239000013307 optical fiber Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- JXASPPWQHFOWPL-UHFFFAOYSA-N Tamarixin Natural products C1=C(O)C(OC)=CC=C1C1=C(OC2C(C(O)C(O)C(CO)O2)O)C(=O)C2=C(O)C=C(O)C=C2O1 JXASPPWQHFOWPL-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种通信方法及装置,用于通过计算集群中包括的服务器中的计算设备与光交换机连接,实现服务器之间的全互连。在本申请中,管理设备获得所述计算集群中服务器个数M和每个服务器内计算设备个数N;根据所述服务器的个数M判断实现所述M个服务器全互联,每个服务器所需要的最少计算设备的数量n,其中,所述M、N以及n为正整数;当所述n小于等于N时,确定所述M个服务器全互联时,各服务器之间的连接策略;根据所述确定的连接策略,连接所述M个服务器,使所述M个服务器全互联。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种通信方法及装置。
背景技术
随着人工智能领域中单个模型的规模越来越大,单台机器已经无法容纳大模型对应的训练数据集、模型参数以及训练过程中产生的信息。因此,利用计算集群的高算力和大内存,对大模型进行分布式训练成为了主流选择。
计算集群中的每台服务器内设置有多个计算设备(例如为神经网络处理器(neural-network processing unit,NPU))。在对大模型进行分布式训练时,同一个服务器内的NPU之间,以及不同的服务器内的NPU之间需要通过网络对大模型进行训练时所产生的数据进行传输。如果采用电交换网络实现数据传输时,由于训练大模型产生大量待传输的数据,因而需要对电交换机的容量进行扩展,但对电交换机容量扩展后,会导致整个数据传输过程功耗显著增加。
为了支持大模型进行训练所产生数据的传输且减少数据传输过程功耗,现有技术中考虑采用光交换网络对训练大模型所产生的数据进行传输。但现有技术并未提供光交换网络下NPU间的连接方案。因此,如何实现光交换网络下所有服务器之间的全连接,以高效地实现NPU与NPU之间的数据传输是一个亟需解决的问题。
发明内容
本申请提供一种通信方法及装置,用于在光交换网络下,提供一种通过计算集群中包括的服务器中的计算设备与光交换机连接,实现服务器之间的全互连的方案。
第一方面,提供一种通信方法,该方法可由管理设备执行,或由芯片系统执行,该芯片系统能够实现管理设备的功能。该方法应用于计算集群,所述计算集群包括M个服务器,每个服务器内包括N个计算设备,所述M个服务器通过其中的计算设备与光交换机连接,实现服务器之间的互联,所述方法包括:根据所述服务器的个数M判断实现所述M个服务器全互联,每个服务器所需要的最少计算设备的数量n,其中,所述M、N以及n为正整数;当所述n小于等于所述N时,确定所述M个服务器全互联时,各服务器之间的连接策略;根据所述确定的连接策略,连接所述M个服务器,使所述M个服务器全互联。
在本申请实施例中,管理设备根据光组网架构下计算集群中服务器的个数和每个服务器内NPU的个数,先根据服务器的个数M判断实现M个服务器全互联,每个服务器所需要的最少计算设备的数量n,再判断计算集群是否支持服务器间的全互连,当确定计算集群支持服务器间的全互连后,再确定M个服务器全互联时,各服务器之间的连接策略;然后根据确定的连接策略,连接M个服务器,使M个服务器全互联。也就是说,本申请提供了一种实现在光组网架构下计算集群包括的服务器之间全互连的方案。
在一种可能的实施方式中,所述确定所述M个服务器全互联时,各服务器之间的连接策略包括:根据待建立连接源服务器的标识,所述源服务器中的源计算设备的标识、所述n和/或所述M,确定目标服务器的标识;其中,所述源服务器的标识为按照服务器的数量为所述源服务器标记的标识,所述源计算设备的标识为按照所述源服务器中所包括的计算设备的数量为所述源计算设备标记的标识。本申请中管理设备可以根据待建立连接源服务器的标识,源服务器中的源计算设备的标识、n和/或M,确定目标服务器的标识,从而可以实现确定可以计算集群中任意两个服务器间之间的连接关系的目的。
在一种可能的实施方式中,所述根据待建立连接源服务器的标识,所述源服务器中的源计算设备的标识以及所述M,确定目标服务器的标识,包括:
基于公式
nodedst=(devsrc-nodesrc+M)mod M
确定所述目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。通过该公式可以确定光组网架构下,各种服务器数量和/或服务器内NPU数量不同的场景中,与源服务器中源NPU对应的目标NPU的服务器的标识,从而可以具体确定计算集群内服务器之间的连接关系。
在一种可能的实施方式中,如果所述M为偶数,所述根据源计算设备的标识、所述源服务器的源标识以及所述n,确定目标服务器的标识,包括:
基于公式
确定所述目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。通过上述公式,当计算集群中服务器个数为偶数,可以实现以服务器内最少的NPU数量,实现光组网架构下,各种服务器数量和/或服务器内NPU数量不同的场景中各个服务器间的全连接,减少了资源损耗。
在一种可能的实施方式中,所述方法还包括:所述M个服务器中的各计算设备执行计算操作;根据所述计算设备之间的连接拓扑及对计算结果的聚合方式,确定数据的传输方式。由于综合考虑了计算设备的连接拓扑和对计算结果的聚合方式,因此可以尽快确定开销较少的数据的传输方法,减少传输数据的功耗。
在一种可能的实施方式中,所述根据所述计算设备之间的连接拓扑及对计算结果的聚合方式,确定数据的传输方式,包括:
当所述对计算结果的聚合方式为全规约时,确定所述数据的传输方式为:所述源服务器与目标服务器间基于发送通信算子进行通信;目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备间基于广播通信算子进行通信;所述目标计算设备与所述源计算设备间建立互连;本申请实施例中,考虑到对计算结果的聚合方式为全规约时,只通过源计算设备将待传输的数据发送给目标计算设备,再由目标计算设备将待传输的数据发送给目标服务器内其他计算设备,因此可以避免源服务器内所有计算设备上相同的待传输数据被重复发送所造成的系统带宽利用率降低的情况出现;并且,由于目标服务器内采用广播通信算子进行通信,因此可以保证目标服务器内每个计算设备可以获得数据,避免数据的丢失;或,
当计算集群中每个服务器具备对等通信能力,确定所述数据的传输方式为:所述源计算设备与所述源服务器内除所述源计算设备外的计算设备间基于第一预设通信总线和第一对等接收通信算子进行通信;所述源服务器与所述目标服务器基于发送通信算子进行通信;所述目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备间基于第二预设通信总线和对等发送通信算子进行通信;由于源服务器和目标服务器具备对等通信能力,因此源服务器内,每个计算设备都可以访问该服务器内任一计算设备的内存并将数据发送出去;这样,可以直接利用与目标服务器相连的源计算设备,将源服务器内其他计算设备内存上的数据发送给目标服务器对应目标计算设备,从而可以较为快速且高效的实现源计算设备与目标计算设备间数据的传输;或,
当所述对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,确定所述数据传输方式为:所述源计算设备与所述源服务器内除所述源计算设备外的计算设备间基于全聚集通信算子进行通信;所述源服务器与所述目标服务器间基于发送通信算子进行通信;所述目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备基于散射通信算子进行通信;由于将源计算设备内所有计算设备上的待传输数据进行了拼接,再发送给目标服务器内的目标计算设备,这样,减少了源服务器与目标服务器间进行数据传输的传输次数,从而在一定程度上避免网络阻塞;或,
当所述对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,确定所述数据传输方式为:所述源服务器内的各个计算设备间基于发送通信算子和转接设备进行通信;所述源服务器与所述目标服务器间基于发送通信算子进行通信;所述目标服务器内的各个计算设备间基于发送通信算子和转接设备进行通信;通过该数据的传输方法,可以实现服务器内存在复杂拓扑结构时,可以通过转接设备实现服务器间的高效通信。
第二方面,提供一种通信装置。该通信装置可以为上述管理设备,或为包括该管理设备的较大设备,或为该管理设备中的功能模块,例如基带装置或芯片系统等。该通信装置可包括用于执行第一方面所述的方法的相应的手段(means)或模块。该通信装置具有实现上述第一方面方法实施例中行为的功能,有益效果可以参见第一方面的描述,此处不再赘述。例如,所述通信装置包括处理单元(有时也称为处理模块)和收发单元(有时也称为收发模块)。收发单元能够实现发送功能和接收功能,在收发单元实现发送功能时,可称为发送单元(有时也称为发送模块),在收发单元实现接收功能时,可称为接收单元(有时也称为接收模块)。发送单元和接收单元可以是同一个功能模块,该功能模块称为收发单元,该功能模块能实现发送功能和接收功能;或者,发送单元和接收单元可以是不同的功能模块,收发单元是对这些功能模块的统称。
其中,所述处理模块用于根据所述服务器的个数M判断实现所述M个服务器全互联,每个服务器所需要的最少计算设备的数量n;当所述n小于等于所述N时,确定所述M个服务器全互联时,各服务器之间的连接策略;根据所述确定的连接策略,连接所述M个服务器,使所述M个服务器全互联。
在一种可选的实现方式中,所述通信装置还包括存储单元,所述处理单元能够与存储单元耦合,并执行存储单元中的程序或指令,使能所述通信装置执行上述第一方面所述的管理设备的功能。
第三方面,提供一种通信装置,该通信装置可以为管理设备,或者为用于管理设备中的芯片或芯片系统。该通信装置包括通信接口以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序,处理器与存储器、通信接口耦合,当处理器读取所述计算机程序或指令时,使通信装置执行上述第一方面中由管理设备所执行的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如第一方面所述的方法。
第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如第一方面所述的方法。
第六方面,提供一种芯片系统,包括处理器和接口,所述处理器用于从所述接口调用并运行指令,当所述处理器执行所述指令时,实现如第一方面所述的方法。
附图说明
图1为电组网架构下服务器与电交换机交互的一种示意图;
图2光组网架构下服务器与光交换机交互的一种示意图;
图3为流水线并行分布式训练模型的一种示意图;
图4为一种数据的传输方法的一种示意图;
图5为另一种数据的传输方法的一种示意图;
图6为本申请实施例提供的一种应用场景示意图;
图7为本申请实施例提供的又一种应用场景示意图;
图8为本申请实施例提供的通信方法的一种流程示意图;
图9为本申请实施例提供的一种计算集群的示意图;
图10为本申请实施例提供的服务器间全连接的一种示意图;
图11为本申请实施例提供的服务器间全连接的另一种示意图;
图12为本申请实施例提供的服务器间全连接的再一种示意图;
图13为本申请实施例提供的服务器间全连接的又一种示意图;
图14为本申请实施例提供的数据的传输方法的一种示意图;
图15为本申请实施例提供的数据的传输方法的另一种示意图;
图16为本申请实施例提供的数据的传输方法的再一种示意图;
图17为本申请实施例提供的数据的传输方法的又一种示意图;
图18为本申请实施例提供的确定数据的目标传输方法的一种流程示意图;
图19为本申请实施例提供的一种通信方法的示意图;
图20为本申请实施例提供的管理设备的一种示意性框图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)在本申请实施例中,管理设备,可以是独立的物理服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,CDN)、或大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例中,用于实现管理设备的功能的装置可以是管理设备,也可以是能够支持管理设备实现该功能的装置,例如芯片系统,该装置可以被安装在管理设备中。在本申请实施例提供的技术方案中,以用于实现管理设备的功能的装置是管理设备为例,描述本申请实施例提供的技术方案。
(2)在本申请实施例中,人工智能(artificial intelligence,AI)大模型,是“人工智能预训练大模型”的简称,其包含了“预训练”和“大模型”两层含义,即模型在大规模数据集上完成了预训练后无需微调,或仅需要少量数据的微调,就能直接支撑各类应用。需要说明的是,后文中的“模型”、“目标模型”都可以理解为AI大模型。
(3)在本申请实施例中,模型的分布式训练包括:数据并行分布式训练、算子级模型并行分布式训练、流水线模型并行分布式训练以及混合专家(mixture-of-expert,MOE)并行分布式训练等多种训练方式。
其中,流水线模型并行分布式训练为:将完整的模型按照网络层进行切分,多个完整的网络层会组成一个阶段(stage),每个stage会被分配到不同的服务器中。每台服务器上包括一个或多个计算设备(该计算设备例如为神经网络处理器(neural-networkprocessing unit,NPU)、图形处理器(graphics processing unit,GPU)等)。后文中以计算设备为NPU为例进行说明。也就是说,每台服务器包括一个或多个NPU,并被分配有完整模型的一部分,该部分包含一个或者多个完整的网络层。
例如,模型包含10个卷积层,采用2台服务器进行流水线并行分布式训练,前5个卷积层分配到第一台服务器上训练,后5个卷积层分配到第二台服务器上。显然,对于模型中的每一个卷积层,通常会位于一台服务器内。一台服务器内的多个NPU都拥有该层模型的一部分。
(4)在本申请实施例中,在电交换组网架构中包括计算集群和电交换机。具体来讲,计算集群中的第一服务器先将待传输的数据转换为光信号,通过光纤通信技术将光信号传输给对应的电交换机,然后该电交换机中的光模块将获得的光信号转换为电信号,并将该电信号转换为光信号,通过光纤通信技术,将该光信号发送给与第一服务器进行交互的计算集群中的第二服务器,从而实现第一服务器与第二服务器间的连接。
例如,请参见图1,图1为现有技术中电交换组网架构的示意图。其中,图1以每台服务器包括8个NPU,每四台服务器与一台电交换机进行交互为例进行示出。图1中的电交换机11、电交换机12、……、电交换机1n,可以组成为电交换网络层中的接入层,接入层中的电交换机可以实现相邻的服务器间的访问需求;图1中的电交换机21、电交换机22、电交换机23以及电交换机24,可以组成电交换网络层中的汇聚层,汇聚层中的电交换机负责所有流量的高速转发通信,实现不相邻的服务器间的访问需求。显然,现有技术中的电交换组网架构中,通过多个电交换机,可以实现计算集群中所有NPU间的数据交换,即可以实现所有NPU的全连接。
(5)在本申请实施例中,光组网架构包括计算集群和光交换机。具体来讲,计算集群中的第一服务器先将待传输的数据转换为光信号,通过光纤通信技术将光信号传输给对应的光交换机。由于光交换机是不需要经过电光-光电转换,可以直接进行光信号交换的数据交换的设备,因此,与第一服务器对应的光交换机可以直接将光信号传输给与第一服务器进行交互的计算集群中的第二服务器,从而实现第一服务器和第二服务器间的连接,可见,光交换机大大提高了交换的速率。
并且,由于硅光芯片通过将光学器件和电子元件整合到一个独立的供专门应用的集成电路(application specific integrated circuit,ASIC)芯片上,利用激光束代替电子信号来实现更高带宽的数据传输。因此,硅光芯片能够以远高于电信号的速率传输数据,即提供了Tb/s级别的出口带宽。光交换机采用光交叉器件实现数据通道的连接,这些光学交叉器件包括微机电系统(micro-electro-mechanical system,MEMS)光纤端口交叉、波长选择开关(wavelength selective switch,WSS)和亚微秒(μs)级快速光交叉。
例如,请参见图2,图2为光组网架构的示意图。图2以每台服务器包括8个NPU,每四台服务器与光交换机进行交互为例进行示出。其中,由于编号为1服务器内的编号为0的NPU与编号为2服务器内编号为0的NPU间可以通过光交换机建立直接连接,因此实现这两个NPU间的数据交换。然而,由于编号为5的服务器内的编号为0的NPU与编号为2的服务器内编号为0的NPU间未通过光交换机建立直接连接,因此无法实现这两个NPU间的数据交换。可见,现有光组网架构中,只能实现直接相连的NPU之间的数据交换。因此,即使是位于同一平面内的NPU(例如图2中编号从1~12的服务器内编号为0的NPU),也只有直接相连的两个NPU之间能够互相通信。
(6)在本申请实施例中,集合通信(collective communications)是一个进程组的所有进程都参与的全局通信操作。具体的,集合通信对NPU/图形处理器(graphicsprocessing unit,GPU)之间的典型通信行为进行抽象,极大地简化了模型开发工作的难度。
集合通信包括多种通信算子,具体可以是:发送(send)通信算子和接收(receive)通信算子、广播(broadcast)通信算子、收集(gather)通信算子、全聚集(all gather)通信算子、散射(scatter)通信算子、规约(reduce)通信算子、全规约(all reduce)通信算子、完全交换(All-To-All)通信算子等。
其中,Broadcast属于一对多的通信算子,即一个数据发送者对应多个数据接收者,例如可以在一台服务器内把一个NPU自身的数据广播到其他NPU上。
Scatter也是一个一对多的通信算子,也是一个数据发送者对应多个数据接收者,例如可以在一台服务器内把一个NPU自身的数据进行切片再分发给服务器内所有的NPU。
Gather属于多对一的通信算子,具有多个数据发送者,一个数据接收者,例如可以把一台服务器内多个NPU的数据收集到一个NPU上。
AllGather属于多对多的通信算子,具有多个数据发送者,多个数据接收者,例如可以在服务器内把多个NPU的数据收集到一个主NPU上(Gather),再把这个收集到的数据分发到其他NPU上。
Reduce属于多对一的通信算子,具有多个数据发送者,一个数据接收者,例如可以在服务器内把多个NPU的数据规约运算到一个主NPU上。其中,常用的规约操作符有:求累加和(SUM)、求累乘积(PROD)、求最大值(MAX)、求最小值(MIN)、逻辑与(LAND)、按位与(BAND)、逻辑或(LOR)、按位或(BOR)、逻辑异或(LXOR)、按位异或(BOXR)、求最大值和最小大的位置(MAXLOC)、求最小值和最小值的位置(MINLOC)等。需要说明的是,前述规约运算也需要加速卡支持对应的算子才能生效。
AllReduce属于多对多的通信算子,具有多个数据发送者,多个数据接收者,例如在服务器内的所有NPU上都执行相同的Reduce操作,可以将集群内所有NPU的数据规约运算得到的结果发送到所有的NPU上。
All-To-All属于多对多的通信算子,具有多个数据发送者,多个数据接收者,例如每一个NPU的数据会scatter到服务器内所有NPU上,同时每一个NPU也会Gather集群内所有NPU的数据。
下面结合附图3对发送和接收通信算子的使用进行简单介绍。
例如,请参见图3,图3中以计算集群包括8台服务器,每台服务器可提供8个NPU为例进行示出。其中,完整的目标模型包括多个网络层,且该多个网络层被划分成8个stage(如图3中的stage0~stage7),每个stage会被部署到相应的服务器中。如图3所示,stage0被部署包含编号从0-7的NPU的服务器0,stage1被部署在包含编号从8-15的NPU的服务器1,stage2被部署在包含编号从16-23的NPU的服务器2,stage3被部署在包含编号从24-31的NPU的服务器3,stage4被部署在包含编号从32-39的NPU的服务器4,stage5被部署在包含编号从40-47的NPU的服务器5,stage6被部署在包含编号从48-55的NPU的服务器6,stage7被部署在包含编号从56-63的NPU的服务器7。
具体的,将8个stage以流水线模型并行分布式训练的方式运行在8台服务器上,即每台服务器运行流水线中一个stage。
在图3所示的网络拓扑下,对目标模型进行流水线模型并行分布式训练时,该目标模型主要存在3个通信域,请参见表1。
表1
请继续参见图3,若计算集群内的服务器间的NPU可全连接,以编号为16的NPU(简称为16号NPU)为例,16号NPU与其处于同一平面的NPU间可以基于发送/接收通信算子进行数据传输。其中,16号NPU处于同一平面的NPU为:0号NPU、8号NPU、24号NPU、32号NPU、40号NPU、48号NPU以及56号NPU。例如,16号NPU可以通过发送通信算子,将自身需要发送的数据发送给24号NPU,且24号NPU可通过接收通信算子,对该数据进行接收。
本申请中,对于名词的数目,除非特别说明,表示“单数名词或复数名词”,即"一个或多个”。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。例如,A/B,表示:A或B。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),表示:a,b,c,a和b,a和c,b和c,或a和b和c,其中a,b,c可以是单个,也可以是多个。
本申请实施例提及的“源”、“目标”等词汇,仅用于相对描述的目的。例如,源NPU和目标NPU,在下一时刻,可能“源NPU”又是别的NPU的目标NPU,或者“目标NPU”是新的NPU的“源NPU”。
本申请实施例提及的“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为明示或暗示相对重要性,也不能理解为明示或暗示顺序。例如,第一服务器和第二服务器可以是同一个服务器,也可以是不同的服务器,且这种名称也并不是表示这两个服务器的应用场景、优先级或者重要程度等的不同。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本说明书的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在介绍完本申请涉及的部分用语后,为了方便理解本申请所提供方案的使用场景,下面介绍本申请NPU与NPU之间通信相关的现有技术。
目前,由于大模型分布式训练,对NPU与NPU之间的带宽提出了更高的要求,从而对电交换机的容量提出了更高的要求。
请参见表2,表2展示了电交换机容量的发展趋势。
表2
显然,串行器/解串器(serializer/deserializer,SerDes)技术的发展趋势表明电交换机容量的进一步扩展会面临着容量“墙”,导致电交换机实现单端口Tb/s级带宽面临着非常大的困难。具体的,SerDes容量“墙”主要体现在:
第一:如果通过提升SerDes速率,来提高电交换机的容量,那么,会出现由于SerDes速率所导致电信号传输损耗显著增加,并导致功耗增加的情况出现。
第二:电交换机中的光模块的成本也成为了一个重要的问题。与电交换芯片不同,光模块的成本很大一部分在于封装,而光模块的容量不会因为半导体工艺技术提升而同步提升。因此,在光模块上的投入成本也存在着超过交换机的趋势。
第三:为了解决由于功耗增加带来的散热问题以及容纳更多数量的热插拔光模块,会使得交换机的尺寸显著增加,从而进一步导致电交换机无法匹配当前标准的机架规格。
可见,虽然电交换组网架构可以实现NPU间的全连接,但存在损耗增加,成本增加以及无法匹配机架规格等问题,因此考虑采用光交换组网架构执行NPU间通信。
然而,虽然光组网架构可以满足对大模型分布式训练对NPU与NPU之间的带宽提出的更高的要求,且不存在电交换组网架构下的多种问题。但是,现有技术并未提供光组网架构下NPU间的连接方案。
因此,如何在光组网架构下实现所有NPU之间的全连接是一个亟需解决的技术问题。
此外,现有技术中,大模型对stage之间通信的处理方式主要分为以下两种:
第一种处理方式为:
当两个stage处于不同的服务器上时,如果两个stage需要进行数据传输,则采用发送/接收通信算子进行通信。
例如,请参见图4,图4中以计算集群包括8台服务器,每台服务器可提供8个NPU为例进行示出。其中,完整的目标模型包括多个网络层,且该多个网络层被切分成8个stage(如图4中的stage0~stage7),每个stage会被部署到相应的服务器中,所有服务器中包括的NPU按照从0开始的顺序进行编号。
请继续参见图4,当部署有stage0的服务器0与部署有stage1的服务器1之间通信时,服务器0中的编号为0的NPU,将其对应的待传输的数据,通过发送通信算子发送给服务器1内编号为8的NPU,该编号为8的NPU通过接收通信算子接收该待传输的数据。即服务器0内的各个NPU通过发送通信算子将待传输数据发送给服务器1内与其处于同一平面的NPU,该NPU基于接收通信算子接收待传输的数据,以实现stage0~stage7间的数据的传输。
第二种处理方式为:
当两个stage处于同一服务器上时,采用广播通信算子进行通信。
例如,请参见图5,图5中stage0与stage1被部署于服务器0上。当stage0与stage1之间通信时,即服务器0内部NPU进行通信时,编号为0~7的NPU需要将其对应的待传输数据,分别通过广播通信算子发送给编号为8~15的NPU,从而实现服务器0内NPU间的数据的传输。
然而,若将上述两种通信方案应用于光组网架构中,当stage位于不同服务器时,两个stage之间可能不存在直接相连的链路,无法采用发送/接收通信算子进行通信。
因此,如何在光组网架构下实现所有服务器之间的全连接,以高效地实现NPU与NPU之间的数据传输是一个亟需解决的技术问题。
鉴于此,提供本申请实施例的技术方案。在本申请实施例中,设计了一种服务器与服务器之间的全连接策略,该策略能够快速地确定出服务器之间的连接方案,使得各服务器在光组网架构下能够互相通信,该策略适应于不同的服务器数量以及服务器内不同的计算设备的数量的场景。以及,在实现光组网架构下服务器间全连接的前提下,本申请还综合考虑了计算设备之间的连接拓扑及对计算结果的聚合方式,因此可以尽快确定开销较少的数据的传输方式,减少NPU间传输数据的功耗。
本申请实施例提供的通信方法可以应用于各类通信系统中,例如应用于IoT系统、窄带物联网(narrow band internet of things,NB-IoT)系统或第四代移动通信技术(the4th generation,4G)系统(例如LTE系统),也可以应用于5G通信系统,例如NR系统,还可以应用于4G与5G的混合架构,或者可以应用于未来的通信系统,例如第六代移动通信技术(the 6generation,6G)系统等。可理解为,本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题同样适用。
可参考图6,为本申请实施例的一种应用场景示意图。图6所示的场景示意图中包括计算集群和光交换机,计算集群中的服务器与光交换机之间能够通信。关于该计算集群中的服务器与光交换机通信的实现方式可参考前文中光组网架构中的实现方式,这里暂不赘述。需要说明的是,在实际实施过程中计算集群可包括多个服务器,例如20个、35个等,对此不做限定,图6中以计算集群包括6个服务器为例进行示出。以及,在实际实施过程中,光交换机数量也可以是多个,图6中以一个光交换机示例性示出,本申请中对光交换机的数量也不做限制。
可参考图7,为本申请实施例的又一种场景示意图。图7所示的场景示意图中包括计算集群、光交换机以及管理设备,计算集群中的服务器与光交换机之间、以及光交换机和管理设备之间、计算集群中的服务器与管理设备之间能够通信。关于该计算集群中的服务器与光交换机通信的实现方式可参考前文中光组网架构中的实现方式,这里暂不赘述。其中,管理设备用于执行本申请实施例所提供的方法,后文对此进行详细介绍,这里暂不赘述。
下面结合附图介绍本申请实施例所提供的方法。本申请实施例所提供的方法可应用于图6和图7所示的网络架构,例如该方法所涉及的管理设备为图6中的任一服务器或图7中的管理设备,该方法所涉及的计算集群即为图6和图7中的计算集群。后文中图6所示的网络结构为例,即以计算集群中的任一服务器承载管理设备功能为例进行介绍。
请参见图8,为本申请实施例提供的一种通信方法的流程图。
S801、管理设备根据服务器的个数M判断实现M个服务器全互联,每个服务器所需要的最少计算设备的数量n。
管理设备可以确定用于支持目标模型预训练的计算集群的拓扑信息,该拓扑信息包括计算集群中服务器个数M和每个服务器中神经网络处理器NPU的个数N。
例如,计算集群中包括8台服务器,每台服务器中包括8个NPU。又例如,计算集群包括8台服务器,每台服务器中包括7个NPU。再例如,计算集群包括7台服务器,每台服务器中包括7个NPU。
可选的,在计算集群中服务器个数即M为奇数时,单个平面(例如所有服务器内的第一个NPU组成的平面)内,在两两NPU互连时会剩下一个NPU无法与其他NPU连接。即,若一个源NPU与一个目标NPU称作一个连接,那么单平面内的连接数量会降至(M-1)/2。因此,每个服务器内至少需要M个NPU来实现多平面的服务器间全互联。
可选的,在计算集群中服务器个数为偶数时,每个平面能提供M/2个连接,故每个服务器内至少需要M-1个NPU就能完成服务器间全连接。例如,当M为8时,每个服务器内至少需要7个NPU来实现多平面的服务器间全互联,总共的连接数量为28个。
在后文中,为了便于描述,将计算集群内服务器进行全互连时每个服务器所需的NPU数量记为n。其中,M、N以及n为正整数。
例如,在计算集群内的服务器数量为8时,每个服务器至少需要7个NPU(除自身服务器外,需要连接7个服务器)才能完成服务器间全互连,n的值为7。又例如计算集群内的服务器数量为7时,每个服务器至少需要7个NPU(除自身服务器外,需要连接6个服务器)才能完成服务器间全互连,n的值为7。
当管理设备确定计算集群内服务器进行全互连时每个服务器所需的最少NPU数量n后,可以判断n与N的关系。如果n不小于N,则管理设备确定计算集群内服务器不支持全互连,可以考虑选择新的计算集群为大模型的训练提供服务。
S802、如果n小于等于每个服务器内包括的计算设备数量N时,管理设备确定M个服务器全互联时,各服务器之间的连接策略。
当管理设备确定计算集群支持全互连时,管理设备可以确定每个服务器的标识,以及每个服务器内的每个NPU的标识。
在本申请实施例中,涉及的标识包括两个,一个是计算设备的标识,一个是服务器的标识。其中,计算设备的标识可以理解为每个NPU在服务器内的编号。例如源计算设备的标识为按照源服务器中所包括的计算设备的数量为源计算设备标记的标识,若源服务器包括8个NPU,每个NPU可以作为源计算设备,每个NPU对应的标识分别可以为0、1、2、3、4、5、6、7。服务器的标识可以理解为每个服务器在计算集群内的编号,例如源服务器的标识为按照计算集群所包括的服务器的数量为源服务器标记的数量,若计算集群包括7个服务器,每个服务器可以作为源服务器,每个源服务器对应的标识分别为:0、1、2、3、4、5、6。
例如,请参见图9,图9为本申请实施例示出的一种计算集群的示意图。其中,计算集群包括8个服务器,每个服务器内包括8个NPU。其中,对8个服务器任一服务器编号为0,其他服务器依次编号,对每个服务器内任一NPU编号为0,其他NPU依次编号。
在本申请实施例中,可以将计算集群中任一服务器作为源服务器,将该源服务器中的任一NPU作为源NPU,将与该源NPU具有互连关系的NPU作为目标NPU,该目标NPU所处的服务器作为目标服务器。管理设备可以根据源NPU的标识、源服务器的标识以及M,确定目标处理器的标识。
可选的,管理设备可以基于以下公式一
nodedst=(devsrc-nodesrc+M)mod M公式一
确定目标服务器的标识;
其中,nodedst用于表征目标服务器的标识,devsrc用于表征源NPU的标识,nodesrc用于表征源服务器的标识。
在本申请实施例中,考虑到光交换机可以实现处于同一平面的NPU的连接,因此可以将以下公式二
devdst=devsrc公式二
作为互连公式即公式一的前提。其中,devdst用于表征目标NPU的标识。具体来讲,将同一平面内的NPU设置为编号相同,即互连的两个NPU(即源NPU和目标NPU)在相应的服务器内的标识(编号)是一致的。
当然,也可以不需执行该前提条件。例如请继续参见图9,可以将标识为0的服务器内标识也为0的NPU,与标识为1~7的各个服务器内标识为1的NPU相连;标识为0的服务器内标识为1的NPU,与标识为1~7的各个服务器内标识为2的NPU相连,以此类推。或者,还可以是其它连接方式等等,本申请对此不做限定。
后文中以源NPU和目标NPU在相应的服务器内的编号是一致为例,对确定目标服务器的标识的方案进行介绍。
下面结合附图对确定目标服务器的标识的方案进行介绍。
请参见图10,图10为本申请实施例中一种服务器间全连接的示意图。其中,计算集群包括7个服务器,每个服务器内包括7个NPU,即M为7,以源服务器的编号为0(图10中的服务器0)为例,计算该源服务器包括的每个NPU互连的目标NPU的目标服务器的标识。
请继续参见图10,如果源NPU的标识为0,将源NPU的标识为0,源服务器的标识为0,M为7,代入公式一,则目标服务器的标识为:0,即该源NPU不与计算集群中的其它服务器中的NPU建立连接;依次将源服务器内各个源NPU的标识,并代入公式一,从而确定标识为0的源服务器内的各个NPU对应的目标NPU的标识。
可见,通过前述公式一,可以确定服务器个数为奇数且每个服务器内包括的NPU个数也为奇数的网络拓扑下,源服务器对应的目标服务器的标识,进而建立服务器间的全连接。
请参见图11,图11为本申请实施例中另一种NPU间全连接的示意图。其中,计算集群包括8个服务器,每个服务器内包括8个NPU,即图11所示的场景包括偶数个的服务器,且每个服务器内包括偶数个的NPU。
以源服务器的标识为7(图11中的服务器7)为例,计算该源服务器包括的每个NPU互连的目标NPU的目标服务器的标识。如果源NPU的标识为0,将源NPU的标识为0,源服务器的标识为7,M为8,代入公式一,则目标服务器的标识为:1,即该源NPU与标识为1的目标服务器中,NPU的标识为0的NPU建立互连;依次确定源服务器内各个源NPU的标识,并代入公式一,从而确定标识为7源服务器内的各个NPU对应的目标NPU的目标服务器的标识。
可见,通过前述公式一,可以确定服务器个数为偶数且每个服务器内包括的NPU个数也为偶数的网络拓扑下,源服务器对应的目标服务器的标识,进而建立服务器间的全连接。
在本申请实施例中,当M为偶数时,由于构建偶数个数的服务器间的全互连时,每个服务器内所需的NPU个数小于每个服务器内的个数,因而虽然可以采用前述公式一的方式确定目标服务器的标识,但使用的NPU个数较多,造成资源的浪费。鉴于此,如果M为偶数,则可以基于以下公式三:
确定目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。
在一种可能的实施方式中,可以对公式三中的公式(2)和公式(3)进行合并,则确定目标服务器的标识可以基于以下公式确定:
如果nodesrc=n时,若
若或者,
nodedst=(devsrc+1-nodesrc+n)mod n;
若nodedst=nodesrc,则nodedst=n。
在一种可能的实施方式中,可以对公式三进行变形,即目标服务器的标识可以基于以下公式确定:
当然,在实际实施过程中,还可以对前述公式三进行多种变形,本申请对此不做限定。
在本申请实施例中,考虑到光交换机可以实现处于同一平面的NPU的连接,因此可以采用前述公式作为互连公式即公式三的前提。其中,公式二可以参见前述介绍,这里不再赘述。即可以将互连的两个NPU(即源NPU和目标NPU)在相应的服务器内的标识(编号)是一致的,作为执行公式三的前提。
为了更清楚的对上述公式三提供的确定目标服务器的标识的方案进行介绍,下面结合附图12进行详细说明。
请参见图12,图12为本申请实施例中一种服务器间全连接的示意图。其中,计算集群包括8个服务器,每个服务器内包括8个NPU,即M为8。
具体来讲,以源服务器的标识为7(图12中的服务器7)为例,计算该源服务器包括的每个NPU互连的目标NPU的目标服务器的标识。即源服务器的标识为7(nodesrc=7),以及管理设备所确定的实现8个服务器全互联,每个服务器所需要的最少NPU的数量(n=7)相同,满足公式三中公式(1)。
如果源NPU的标识为0,即devsrc为偶数,将源NPU的标识为0(devsrc=0),计算集群中的服务器个数(M=8)以及管理设备所确定的实现8个服务器全互联,每个服务器所需要的最少NPU的数量(n=7),代入确定目标服务器的标识为:4,即该源NPU与标识为4的目标服务器中,标识为0的NPU建立互连;如果源NPU的标识为1,即devsrc为奇数,将源NPU的标识为1(devsrc=1),代入/>确定目标服务器的标识为:1,即该源NPU与标识为1的目标服务器中,标识为1的NPU建立互连;依次确定源服务器内各个源NPU的标识,当源NPU的标识为偶数,则代入/>当源NPU的标识为奇数,则代入/>从而确定标识为7的源服务器内的各个NPU对应的目标NPU的标识。其中,如果源NPU的标识为7,则确定该源NPU不连其他NPU,或者用户自行设置。
具体来讲,以源服务器的标识为0(图12中的服务器0)为例,计算该源服务器包括的每个NPU互连的目标NPU的目标服务器的标识。具体的,计算集群中服务器个数为8(即M=8),且源服务器的标识为0(即nodesrc=0),以及管理设备所确定的实现8个服务器全互联,每个服务器所需要的最少NPU的数量(n=7),显然,n不等于nodesrc,即不满足公式三中公式(1)。
如果源NPU的标识为0,确定不满足公式三中的公式(2),并根据公式三中的公式(3),确定目标服务器的标识为:1,即该源NPU与标识为1的目标服务器中,标识为0的NPU建立互连;如果源NPU的标识为1,确定不满足公式三中的公式(2),并根据公式三中的公式(3),确定目标服务器的标识为:2,即该源NPU与标识为1的目标服务器中,标识为1的NPU建立互连;依次确定源服务器内各个源NPU的标识,并根据公式三中的公式(3),确定标识为0的源服务器内的各个NPU对应的目标NPU的目标服务器的标识。其中,如果源NPU的标识为7,则确定该源NPU不连其他NPU,或者用户自行设置。
可见,通过前述公式三,可以确定服务器个数为偶数且每个服务器内包括的NPU个数也为偶数的网络拓扑下,源服务器对应的目标服务器的标识,相比于前述图11所示的采用公式一以每个服务器内7个NPU实现计算集群内服务器间全连接的方式,通过公式三的方式以每个服务器内6个NPU实现了计算集群内服务器间全连接,减少NPU资源的浪费。
又例如,请参见图13,图13为本申请实施例中一种服务器间全连接的示意图。其中,计算集群包括8个服务器,每个服务器内包括7个NPU,即M为8,N为7。具体的,可以采用前述公式一或者公式三确定实现服务器全互连的NPU的连接关系,这里不再赘述。
可见,通过前述公式三,可以确定服务器个数为偶数且每个服务器内包括的NPU个数为奇数的网络拓扑下,源服务器对应的目标服务器的标识,且使用最少的NPU个数来实现服务器间全连接,减少NPU资源的浪费。
综上可知,本申请实施例提供的服务器间的连接策略,在任意计算集群包括任意数量,且每个服务器包括任意数量的NPU的场景下,可以采用最少NPU实现服务器间全互连。这样,在光组网架构下,满足大模型对NPU与NPU之间提出的更高要求,且达到了未增加损耗的目的。
在本申请实施例中,管理设备可以在确定目标服务器的标识后,可以执行S803,管理设备根据所确定的各服务器间的连接策略,连接M个服务器,使M个服务器全互连。
可选的,管理设备还可以控制M个服务器中的各计算设备执行计算操作,根据计算设备之间的连接拓扑及对计算结果的聚合方式,确定数据的传输方式。
下面举例介绍本申请提供的数据的传输方式。
第一种数据的传输方式。
如果管理设备确定对计算结果的聚合方式为全规约时,确定数据的传输方式为:源服务器与目标服务器间基于发送通信算子进行通信;目标计算设备与目标服务器内除目标计算设备外的计算设备间基于广播通信算子进行通信;目标计算设备与源计算设备间建立互连。其中,广播通信算子例如为前述用语解释部分中的broadcast,发送通信算子例如为前述用语解释部分中的send,这里不再赘述。
基于上述第一种数据的传输方法进行数据传输时,具体实现可以参见图14,假设部署有stage0的服务器0为源服务器,由于服务器0对目标模型中对应的网络层(即stage0)进行编译时执行全聚集操作,因而服务器0中每个NPU发送给部署有stage1的服务器1对应NPU的数据都是相同的。因此,服务器0可以只在与部署有stage1的服务器1建立光通路的源NPU(如图14中标识为1的NPU)上将数据发送出去,数据到达服务器1内标识为1的目标NPU后,该目标NPU,在服务器1内通过广播通信算子将数据发送至服务器内的各个NPU(例如图14中服务器1内编号为:“0、2~7”的NPU)。
可见,在第一种数据的传输方法下,两个stage之间的通信流程可以分为两步:第一步为服务器间执行发送通信算子(或称为Send通信算子),第二步为下一个服务器内执行广播通信算子(或称为Broadcast通信算子)。
采用前述第一种数据的传输方法,由于源NPU将相同的待传输数据仅向目标服务器传输了一次,避免了源服务器内各个NPU重复将待传输的数据发送给目标服务器内目标NPU的操作,因此可以提高系统带宽利用率降低和避免网络拥塞。
第二种数据的传输方法。
在本申请实施例中,管理设备确定计算集群中每个服务器具备对等通信能力,则确定数据的传输方式为:源计算设备与源服务器内除源计算设备外的计算设备间基于第一预设通信总线和第一对等(peer-to-peer)接收通信算子进行通信;源服务器与目标服务器基于发送通信算子进行通信;目标计算设备与目标服务器内除目标计算设备外的计算设备间基于第二预设通信总线和对等发送通信算子进行通信。
可选的,管理设备可以通过读取相应的系统架构变量来判断服务器是否支持对等通信,从而确定服务器具备对等通信能力。
基于上述第二种数据的传输方法进行数据传输时,具体实现可以参见图15,其中,部署有stage0~stage7的各个服务器(图15中服务器0~服务器7)具备对等通信能力,即在每个服务器内,每个NPU可以访问该服务器内任一NPU的内存,并将从内存中获得的数据发送出去。
具体来讲,在光组网架构下,在具备对等通信能力的服务器0内,可以直接利用编号为1的NPU,将其他NPU内存上的数据发送给服务器1内编号为1的NPU;其中,服务器0内编号为1的NPU与服务器1内编号为1的NPU连接。
请继续参见图15,假设部署有stage0的服务器0作为源服务器,该服务器0内标识为1的NPU为源NPU,部署有stage1的服务器1作为目标服务器,该服务器1内标识为0的NPU为目标NPU,则源NPU可以通过第一预设通信总线;其中,该预设通信总线可以是高速串行扩展总线(peripheral component interconnect express,PCIe)等,接收源服务器内除源NPU外的NPU发送的待传输数据;然后源NPU通过发送通信算子,将获得的所有待传输数据发送给目标NPU,目标NPU将获得的所有待传输的数据发送给目标服务器内除标识为1外的其它NPU(即图15中服务器1内编号为:“0、2~7”的NPU)。
可见,在第二种数据的传输方法下,两个stage之间的通信流程可以分为两步:第一步为:服务器内执行对等发送通信算子(或称为P2P send通信算子),第二步为:服务器间执行发送通信算子(或称为Send通信算子)。
采用前述第二种数据的传输方法可以快速实现部署有不同stage的服务器间的数据的传输,提高通信效率。
第三种数据的传输方法。
管理设备确定对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,则确定数据传输方式为:源计算设备与源服务器内除源计算设备外的计算设备间基于全聚集通信算子进行通信;源服务器与目标服务器间基于发送通信算子进行通信;目标计算设备与目标服务器内除目标计算设备外的计算设备基于散射通信算子进行通信。
基于上述第三种数据的传输方法进行数据传输时,具体实现可以参见图16。其中,服务器0内每个NPU发送给服务器1内对应的NPU的数据不相同,由于服务器内的带宽远高于服务器间,因而可以在服务器0内将每个NPU要发送的数据进行聚集,获得第一拼接数据,然后通过服务器0内标识为1的NPU将第一拼接数据发送出去。然后服务器1内标识为1的NPU接收该第一拼接数据,该NPU将第一拼接数据切划分为同等大小的数据块,分发给该服务器1内的各个NPU(即图16中的服务器1内编号为:“0、2~7”的NPU)。
可见,在第三种数据的传输方法下,两个stage之间的通信流程可以分为三步:第一步为服务器内执行全聚集通信算子(或称作AllGather通信算子),第二步为服务器间执行发送通信算子(或称为Send通信算子),第三步为下一个服务器内执行散射通信算子(或称为Scatter通信算子)。
第四种数据的传输方法。
管理设备确定对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,则确定数据传输方式为:源服务器内的各个计算设备间基于发送通信算子和转接设备进行通信;源服务器与目标服务器间基于发送通信算子进行通信;目标服务器内的各个计算设备间基于发送通信算子和转接设备进行通信。
基于上述第四种数据的传输方法进行数据传输时,具体实现可以参见图17。在图17中,以每个服务器内有8个NPU为例,8个NPU形成的网络拓扑有两种常见的类型:第一种类型为:8个NPU全连接(full connection),即8个NPU之间两两直接相连;第二种类型为:2组4个NPU全连接,即8个NPU会被分为两个组,每个组包含4个NPU,每个组内的4个NPU之间都是两两直接相连,即两个组之间部分NPU通过转接设备(例如高速串行扩展总线桥(peripheral component interconnect express bridge,PCIe Bridge)进行连接,两个组之间的其他NPU无法直接互相访问,需要借助所述部分NPU进行转发。
可见,在第四种数据的传输方法下,两个stage之间的通信流程可以分为三步:第一步为服务器内执行发送通信算子(或称为Send通信算子),第二步为服务器间执行发送通信算子(或称为Send通信算子),第三步为下一个服务器内执行发送通信算子(或称为Send通信算子)。
第四种数据的传输方法可以理解为第一种数据的传输方法和第三种数据的传输方法的扩展,该种数据的传输方法可以更直观的实现两个stage之间的通信。
在本申请实施例中,由于服务器内的计算设备的连接拓扑、服务器内和服务器间带宽以及不同模型stage之间通信的数据量都是不固定的,因此采用不同数据的传输方法所确定的NPU端到端的通信开销是不同的。管理设备可以计算采用各个数据的传输方法的通信开销,并选择开销最小的作为数据的目标传输方法。
下面介绍各个数据的传输方法的通信开销的计算过程。
针对第一种数据的传输方法,两个stage之间传输数据的时延包括:第一步的时延和第二步的时延。其中,第一步的时延=传输数据量/服务器间带宽;第二步的时延=要广播的数据量/服务器内NPU之间的带宽。这样,可以根据第一步的时延和第二步的时延之和,确定第一种数据的传输方法的通信开销。
针对第二种数据的传输方法,两个stage之间传输数据的时延包括:第一步的时延、第二步的时延以及第三步的时延。第一步的时延=服务器内某个NPU读取其他NPU内存中数据的时延;第二步的时延=服务器间Send的数据量/服务器间NPU之间的带宽;第三步的时延=节点内某个NPU将数据写入其他NPU内存中的时延。这样,可以根据第一步的时延、第二步的时延以及第三步的时延之和,确定第二种数据的传输方法的通信开销。
针对第三种数据的传输方法,两个stage之间传输数据的时延包括:第一步的时延、第二步的时延以及第三步的时延。其中,第一步的时延=服务器内Gather的数据量/服务器内NPU之间的带宽;第二步的时延=服务器间Send的数据量/服务器间NPU之间的带宽;第三步的时延=服务器内Scatter数据量/服务器内NPU之间的带宽。这样,可以根据第一步的时延、第二步的时延以及第三步的时延之和,确定第三种数据的传输方法的通信开销。
针对第四种数据的传输方法,两个stage之间传输数据的时延包括:第一步的时延、第二步的时延以及第三步的时延。其中,第一步的时延=服务器内Send的数据量/服务器内NPU之间的带宽;第二步的时延=服务器间Send的数据量/服务器间NPU之间的带宽;第三步的时延=服务器内Send的数据量/服务器内NPU之间的带宽。这样,可以根据第一步的时延、第二步的时延以及第三步的时延之和,确定第四种数据的传输方法的通信开销。
可选的,对于一个计算集群,其服务器间和服务器内的带宽都是固定的,且一个NPU上的网卡读取其他NPU内存中数据的时延也是固定的,在运行时不会发生变化的,可以通过将前述信息预先写入一个配置文件,运行时通过读取该配置文件,则可以快速确定各种数据的传输方法的通信开销。
在介绍完计算各个数据的传输方法的通信开销后,下面结合图18,举例介绍一下本申请实施例提供的一种确定数据的目标传输方法的过程。
S1801:管理设备确定对计算结果的聚合方式是否为全规约;若管理设备确定对计算结果的聚合方式为全规约,执行S1802;若管理设备确定对计算结果的聚合方式不为全规约时,执行S1803。
在本申请实施例中,当管理设备确定计算设备对目标模型中对应的网络层进行计算操作(例如编译),确定计算结果的聚合方式为全规约时,则可以确定前述四种数据的传输方法中第一种数据的传输方法的通信开销最小,因此,管理设备确定计算结果的聚合方式为全规约时,执行S1802。
S1802:管理设备确定数据的目标传输方法为第一种数据的传输方法。
第一种数据的传输方法参见前述图13以及对应的实施例,这里不再赘述。
S1803:管理设备确定计算集群中每个服务器是否具备对等通信能力。若计算集群中每个服务器具备对等通信能力,执行S1804;若计算集群中每个服务器不具备对等通信能力,执行S1805。
在本申请实施例中,当管理设备确定计算结果的聚合方式为全规约,但计算集群中每个服务器具备对等通信能力,则可以确定前述四种数据的传输方法中第二种数据的传输方法的通信开销最小,因此,若计算集群中每个服务器具备对等通信能力,执行S1804。
S1804:管理设备确定数据的目标传输方法为第二种数据的传输方法。
S1805:管理设备确定第三种数据的传输方法的通信开销是否大于第四种数据的传输方法的通信开销;若第三种数据的传输方法开销大于第四种数据的传输方法的通信开销,则执行S1806;若第三种数据的传输方法开销小于第四种数据的传输方法的通信开销,则执行S1807;
S1806:管理设备确定数据的目标传输方法为第四种数据的传输方法:
S1807:管理设备确定数据的目标传输方法为第三种数据的传输方法。
在本申请实施例中,管理设备可以确定第三种数据的传输方法和第四种数据的传输方法的通信开销,具体确定方式可以参见前述描述,这里暂不赘述。在确定第三种数据的传输方法和第四种数据的传输方法的通信开销后,可以从两个数据的传输方法中选择开销最小的策略作为目标数据的传输方法。
在本申请实施例中,当确定目标数据的传输方法后,管理设备可以利用光通路,将源NPU对应的待传输数据,传输给目标NPU。
具体来讲,管理设备可以确定与数据的目标传输方法对应的第一通信算子;其中,第一通信算子包括目标数据的传输方法中源NPU和目标NPU间进行通信时所采用的算子、目标服务器内各个NPU间进行通信所采用的算子以及源服务器内的各个NPU间进行通信时所采用的通信算子中的一项或多项。然后,在源服务器对目标模型进行编译时,在目标模型中插入第一通信算子;从而源NPU利用已建立的相应光通路和第一通信算子,将待传输数据,传输至目标NPU。
请参见图19,为本申请实施例中一种通信方法的示意图。其中,该通信方法包括4个过程。其中,过程1(图19中的“1”)为:管理设备可以根据计算集群的网络拓扑信息,计算光组网架构下服务器之间的连接策略(参见前述图9~图13以及对应的实施例部分),即确定与源服务器中各个源NPU对应的目标服务器的标识;过程2(图19中的“2”)为:管理设备根据确定的连接策略,确定服务器间的连接信息(例如图12中的标识为0的源服务器中的标识为0的NPU,与标识为1的服务器中的标识为0的NPU间的连接关系),并将服务器间的连接信息发送给光交换机中的光开关控制器,以使光开关控制器配置光交换机中对应的光开关,建立源服务器中源NPU与其对应的目标NPU之间的物理光通路;过程3(图19中的“3”)为:管理设备基于计算设备的连接拓扑和对计算结果的聚合方式,确定传输待传输数据的目标传输方法,具体的,可以从前述四种数据的传输方法中选择开销最小的作为数据的目标传输方法。过程4(图19中的“4”)为:当源服务器执行对目标模型的模型图的编译时,插入与数据的目标传输方法对应的通信算子以及反向通信算子,从而实现对目标模型的预训练。
具体来讲,在执行过程4之前,图19中的代价函数模型用于对目标模型进行收敛处理,分布式算子用于将一个目标模型换分为以流水线方式划分为多个重排布模型(即前述的stage),在每个服务器对其被部署的stage进行训练时,可以采用与其对应的数据的目标传输方法对应的通信算子执行数据的传输,从而加快目标模型的预训练。
可见,本申请实施例中,提出了一种光组网架构下的服务器间的全互连的连接策略,该连接策略可以实现计算集群中服务器间的全互连,进而实现训练部署在服务器上的目标模型所产生的数据在光组网架构下的通信,且该连接策略可以适用于不同服务器数量和服务器内不同计算设备数量等各种场景。以及,还考虑了不同节点间网络拓扑、服务器架构以及带宽等能力,提供了一种确定数据的目标传输方法的方案。由于数据的目标传输方法可以在目标模型编译阶段实现,与修改集合通信层的方法相比,极大地降低了运行时再进行通信方案选择的开销,提高了模型训练中的通信效率,并且,由于选择了服务器间性能最优的数据的目标传输方法,减少了服务器间传输的数据量,从而降低了网络阻塞程度。
图20给出了本申请实施例提供的一种通信装置的结构示意图。
通信装置2000包括一个或多个处理器2001。处理器2001也可以称为处理单元,可以实现一定的控制功能。所述处理器2001可以是通用处理器或者专用处理器等。例如,包括:基带处理器,中央处理器等。所述基带处理器可以用于对通信协议以及通信数据进行处理。所述中央处理器可以用于对通信装置2000进行控制,执行软件程序和/或处理数据。不同的处理器可以是独立的器件,也可以是设置在一个或多个处理电路中,例如,集成在一个或多个专用集成电路上。
可选的,通信装置2000中包括一个或多个存储器2002,用以存储指令2004,所述指令2004可在所述处理器上被运行,使得通信装置2000执行上述方法实施例中描述的方法。可选的,所述存储器2002中还可以存储有数据。所述处理器和存储器可以单独设置,也可以集成在一起。
可选的,通信装置2000可以包括指令2003(有时也可以称为代码或程序),所述指令2003可以在所述处理器上被运行,使得所述通信装置2000执行上述实施例中描述的方法。处理器2001中可以存储数据。
可选的,通信装置2000还可以包括收发器2005以及天线2006。收发器2005可以称为收发单元、收发机、收发电路、收发器,输入输出接口等,用于通过天线2006实现通信装置2000的收发功能。
可选的,通信装置2000还可以包括以下一个或多个部件:无线通信模块,音频模块,外部存储器接口,内部存储器,通用串行总线(universal serial bus,USB)接口,电源管理模块,天线,扬声器,麦克风,输入输出模块,传感器模块,马达,摄像头,或显示屏等等。可以理解,在一些实施例中,通信装置2000可以包括更多或更少部件,或者某些部件集成,或者某些部件拆分。这些部件可以是硬件,软件,或者软件和硬件的组合实现。
本申请实施例中描述的处理器2001和收发器2005可实现在集成电路(integratedcircuit,IC)、模拟IC、射频集成电路(radio frequency identification,RFID)、混合信号IC、专用集成电路(application specific integrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、或电子设备等上。实现本文描述的通信装置,可以是独立设备(例如,独立的集成电路等),或者可以是较大设备中的一部分(例如,可嵌入在其他设备内的模块)。
本申请提供一种通信装置,所述通信装置可以为上述的管理设备,或为包括该管理设备的通信设备,或为该管理设备中的功能模块,例如基带装置或芯片系统等。该通信装置可包括用于执行第一方面所述的方法的相应的手段(means)或模块。例如,所述通信装置包括处理单元(有时也称为处理模块)和收发单元(有时也称为收发模块)。收发单元能够实现发送功能和接收功能,在收发单元实现发送功能时,可称为发送单元(有时也称为发送模块),在收发单元实现接收功能时,可称为接收单元(有时也称为接收模块)。发送单元和接收单元可以是同一个功能模块,该功能模块称为收发单元,该功能模块能实现发送功能和接收功能;或者,发送单元和接收单元可以是不同的功能模块,收发单元是对这些功能模块的统称。
其中,所述处理单元,用于根据服务器的个数M判断实现M个服务器全互联,每个服务器所需要的最少计算设备的数量n;当n小于等于N时,确定M个服务器全互联时,各服务器之间的连接策略;根据确定的连接策略,连接M个服务器,使M个服务器全互联。
在一种可选的实施方式中,所述通信装置还包括存储单元(有时也称为存储模块),所述处理单元用于与所述存储单元耦合,并执行所述存储单元中的程序或指令,使能所述通信装置执行上述管理设备所执行的功能。
基于以上实施例,本申请实施例还提供一种通信装置,该通信装置可以为管理设备,或者为用于管理设备中的芯片或芯片系统。该通信装置包括通信接口以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序,处理器与存储器、通信接口耦合,当处理器读取所述计算机程序或指令时,使通信装置执行上述由管理设备所执行的方法。
基于以上实施例,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述实施例中的部署模型的方法。
基于以上实施例,本申请实施例还提供一种计算机程序产品,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述实施例中的部署模型的方法。
基于以上实施例,本申请实施例还提供一种芯片系统,包括处理器和接口,所述处理器用于从所述接口调用并运行指令,当所述处理器执行所述指令时,实现如上述实施例中的部署模型的方法。
其中,本申请实施例提供的管理设备、通信装置、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请提供的实施例中,从管理设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
以上实施例中所用,根据上下文,术语“当…时”或“当…后”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。另外,在上述实施例中,使用诸如第一、第二之类的关系术语来区份一个实体和另一个实体,而并不限制这些实体之间的任何实际的关系和顺序。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。在不冲突的情况下,以上各实施例的方案都可以组合使用。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种通信方法,其特征在于,该方法应用于计算集群,所述计算集群包括M个服务器,每个服务器内包括N个计算设备,所述M个服务器通过其中的计算设备与光交换机连接,实现服务器之间的互联,所述方法包括:
根据所述服务器的个数M判断实现所述M个服务器全互联,每个服务器所需要的最少计算设备的数量n,其中,所述M、N以及n为正整数;
当所述n小于等于所述N时,确定所述M个服务器全互联时,各服务器之间的连接策略;
根据所述确定的连接策略,连接所述M个服务器,使所述M个服务器全互联。
2.如权利要求1所述的方法,其特征在于,所述确定所述M个服务器全互联时,各服务器之间的连接策略包括:
根据待建立连接源服务器的标识,所述源服务器中的源计算设备的标识、所述n和/或所述M,确定目标服务器的标识;
其中,所述源服务器的标识为按照服务器的数量为所述源服务器标记的标识,所述源计算设备的标识为按照所述源服务器中所包括的计算设备的数量为所述源计算设备标记的标识。
3.如权利要求2所述的方法,其特征在于,所述根据待建立连接源服务器的标识,所述源服务器中的源计算设备的标识以及所述M,确定目标服务器的标识,包括:
基于公式
nodedst=(devsrc-nodesrc+M)mod M
确定所述目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。
4.如权利要求2所述的方法,其特征在于,如果所述M为偶数,所述根据源计算设备的标识、所述源服务器的源标识、所述n以及所述M,确定目标服务器的标识,包括:
基于公式
确定所述目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。
5.如权利要求1~4任一所述的方法,其特征在于,所述方法还包括:
所述M个服务器中的各计算设备执行计算操作;
根据所述计算设备之间的连接拓扑及对计算结果的聚合方式,确定数据的传输方式。
6.如权利要求5所述的方法,其特征在于,所述根据所述计算设备之间的连接拓扑及对计算结果的聚合方式,确定数据的传输方式,包括:
当所述对计算结果的聚合方式为全规约时,确定所述数据的传输方式为:所述源服务器与目标服务器间基于发送通信算子进行通信;目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备间基于广播通信算子进行通信;所述目标计算设备与所述源计算设备间建立互连;或,
当计算集群中每个服务器具备对等通信能力,确定所述数据的传输方式为:所述源计算设备与所述源服务器内除所述源计算设备外的计算设备间基于第一预设通信总线和第一对等接收通信算子进行通信;所述源服务器与所述目标服务器基于发送通信算子进行通信;所述目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备间基于第二预设通信总线和对等发送通信算子进行通信;或,
当所述对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,确定所述数据传输方式为:所述源计算设备与所述源服务器内除所述源计算设备外的计算设备间基于全聚集通信算子进行通信;所述源服务器与所述目标服务器间基于发送通信算子进行通信;所述目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备基于散射通信算子进行通信;或,
当所述对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,确定所述数据传输方式为:所述源服务器内的各个计算设备间基于发送通信算子和转接设备进行通信;所述源服务器与所述目标服务器间基于发送通信算子进行通信;所述目标服务器内的各个计算设备间基于发送通信算子和转接设备进行通信。
7.一种通信装置,其特征在于,包括处理模块;
其中,所述处理模块用于获得所述计算集群中服务器个数M和每个服务器内计算设备个数N,根据所述服务器的个数M判断实现所述M个服务器全互联,每个服务器所需要的最少计算设备的数量n;当所述n小于等于所述N时,确定所述M个服务器全互联时,各服务器之间的连接策略;根据所述确定的连接策略,连接所述M个服务器,使所述M个服务器全互联。
8.如权利要求7所述的装置,其特征在于,所述处理模块具体用于:
根据待建立连接源服务器的标识,所述源服务器中的源计算设备的标识、所述n和/或所述M,确定目标服务器的标识;
其中,所述源服务器的标识为按照服务器的数量为所述源服务器标记的标识,所述源计算设备的标识为按照所述源服务器中所包括的计算设备的数量为所述源计算设备标记的标识。
9.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
基于公式
nodedst=(devsrc-nodesrc+M)mod M
确定所述目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。
10.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
基于公式
确定所述目标服务器的标识;
其中,nodedst用于表征所述目标服务器的标识,devsrc用于表征所述源计算设备的标识,nodesrc用于表征所述源服务器的标识。
11.如权利要求7~10任一所述的方法装置,其特征在于,所述处理模块还用于:
所述M个服务器中的各计算设备执行计算操作;
根据所述计算设备之间的连接拓扑及对计算结果的聚合方式,确定数据的传输方式。
12.如权利要求11所述的装置,其特征在于,所述处理模块还用于:
当所述对计算结果的聚合方式为全规约时,确定所述数据的传输方式为:所述源服务器与目标服务器间基于发送通信算子进行通信;目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备间基于广播通信算子进行通信;所述目标计算设备与所述源计算设备间建立互连;或,
当计算集群中每个服务器具备对等通信能力,确定所述数据的传输方式为:所述源计算设备与所述源服务器内除所述源计算设备外的计算设备间基于第一预设通信总线和第一对等接收通信算子进行通信;所述源服务器与所述目标服务器基于发送通信算子进行通信;所述目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备间基于第二预设通信总线和对等发送通信算子进行通信;或,
当所述对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,确定所述数据传输方式为:所述源计算设备与所述源服务器内除所述源计算设备外的计算设备间基于全聚集通信算子进行通信;所述源服务器与所述目标服务器间基于发送通信算子进行通信;所述目标计算设备与所述目标服务器内除所述目标计算设备外的计算设备基于散射通信算子进行通信;或,
当所述对计算结果的聚合方式不为全规约,且计算集群中每个服务器不具备对等通信能力时,确定所述数据传输方式为:所述源服务器内的各个计算设备间基于发送通信算子和转接设备进行通信;所述源服务器与所述目标服务器间基于发送通信算子进行通信;所述目标服务器内的各个计算设备间基于发送通信算子和转接设备进行通信。
13.一种通信装置,其特征在于,所述通信装置包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于执行存储在所述存储器上的计算机程序,使得所述通信装置执行如权利要求1~6中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1~6任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1~6任一项所述的方法。
16.一种芯片系统,其特征在于,所述芯片系统包括:
处理器和接口,所述处理器用于从所述接口调用并运行指令,当所述处理器执行所述指令时,实现如权利要求1~6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211414731.1A CN118041927A (zh) | 2022-11-11 | 2022-11-11 | 一种通信方法及装置 |
PCT/CN2023/112962 WO2024098869A1 (zh) | 2022-11-11 | 2023-08-14 | 一种通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211414731.1A CN118041927A (zh) | 2022-11-11 | 2022-11-11 | 一种通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118041927A true CN118041927A (zh) | 2024-05-14 |
Family
ID=90988335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211414731.1A Pending CN118041927A (zh) | 2022-11-11 | 2022-11-11 | 一种通信方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118041927A (zh) |
WO (1) | WO2024098869A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954439B (zh) * | 2015-05-14 | 2018-10-02 | 曙光云计算集团有限公司 | 一种云服务器及其节点互联方法、云服务器系统 |
EP3128423A1 (en) * | 2015-08-06 | 2017-02-08 | Hewlett-Packard Enterprise Development LP | Distributed event processing |
US20170085500A1 (en) * | 2015-09-18 | 2017-03-23 | Pluribus Networks, Inc. | Streamlined processing in a network switch of network packets in a spliced connection |
CN106708551B (zh) * | 2015-11-17 | 2020-01-17 | 华为技术有限公司 | 一种热添加中央处理器cpu的配置方法及系统 |
CN109302470A (zh) * | 2018-09-26 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种n路服务器互联系统 |
CN112804730B (zh) * | 2021-01-25 | 2023-09-08 | Oppo广东移动通信有限公司 | 设备互联方法、装置、服务器、智能设备及存储介质 |
-
2022
- 2022-11-11 CN CN202211414731.1A patent/CN118041927A/zh active Pending
-
2023
- 2023-08-14 WO PCT/CN2023/112962 patent/WO2024098869A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024098869A9 (zh) | 2024-06-20 |
WO2024098869A1 (zh) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7852788B2 (en) | Method of organizing nodes of a network into groupings of nodes, computer program for implementing such a method and communication device forming a node of a network of nodes | |
US10476697B2 (en) | Network-on-chip, data transmission method, and first switching node | |
US9967186B2 (en) | Selective deep packet inspection | |
Hall et al. | The Rainbow-II gigabit optical network | |
CN116501681B (zh) | Cxl数据传输板卡及控制数据传输的方法 | |
WO2017092394A1 (zh) | 数据传输方法及装置 | |
WO2017128905A1 (zh) | 一种单主机多环most网络通信系统 | |
CN105472291A (zh) | 多处理器集群的数字硬盘录像机及其实现方法 | |
CN102215067B (zh) | 端口自协商方法和装置 | |
CN104639437A (zh) | 堆叠系统中广播报文的转发方法及装置 | |
CN105812063B (zh) | 基于统计复用的光片上网络系统及通信方法 | |
CN104009937A (zh) | 一种增强型传输选择标准配置信息传输方法及装置 | |
RU2468540C1 (ru) | Система связи | |
CN102710496B (zh) | 用于多个服务器间的数据传输系统、数据接口装置及数据传输方法 | |
CN118041927A (zh) | 一种通信方法及装置 | |
CN102624769A (zh) | 管线式网络装置及相关数据传送方法 | |
CN111786887A (zh) | 由控制设备执行的数据转发方法、装置、计算设备和介质 | |
CN115514651B (zh) | 基于软件定义层叠网的云边数据传输路径规划方法及系统 | |
JPH07297850A (ja) | ローカルアクセスケーブル上のマルチメディア通信用の制御 | |
CN114827781B (zh) | 网络协同方法、装置、设备及存储介质 | |
US20130198411A1 (en) | Packet processing apparatus and method for load balancing of multi-layered protocols | |
CN114499762A (zh) | 一种通信系统、5g网络下的多路转发方法及通信设备 | |
CN104618053B (zh) | 基于wdm的信号互连方法及基带单元 | |
KR101947601B1 (ko) | 무선 네트워크 온 칩 및 무선 네트워크 온 칩의 신호를 라우팅하는 방법 | |
JP3295074B2 (ja) | Ieee1394シリアルバストポロジー最適化方法 |
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 |