CN114363248B - 计算系统、加速器、交换平面及聚合通信方法 - Google Patents
计算系统、加速器、交换平面及聚合通信方法 Download PDFInfo
- Publication number
- CN114363248B CN114363248B CN202011057768.4A CN202011057768A CN114363248B CN 114363248 B CN114363248 B CN 114363248B CN 202011057768 A CN202011057768 A CN 202011057768A CN 114363248 B CN114363248 B CN 114363248B
- Authority
- CN
- China
- Prior art keywords
- aggregation
- accelerator
- data
- plane
- communication
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种计算系统、加速器、交换平面及聚合通信方法,属于计算机技术领域,能够应用在AI训练、大数据分析等各种需要聚合通信的场景。本申请涉及加速器和交换平面通过交互来实现聚合通信的流程。通过由加速器发起聚合通信操作,并由交换平面为加速器代理执行聚合通信操作,将聚合结果返回给加速器,从而将聚合通信工作从加速器以及CPU卸载至交换平面,因此减少了加速器和CPU的负载,提升聚合通信的性能。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种计算系统、加速器、交换平面及聚合通信方法。
背景技术
随着人工智能(artificial intelligence,AI)技术以及大数据技术的发展,节点设备(如服务器)中通常会配置多个加速器,同时也会通过多个节点设备的互连进行分布式的计算。多节点设备多加速器进行计算时,需要不断地通过聚合通信(collectivecommunication)聚合各个加速器的计算结果,并需要通过聚合通信实现各个节点设备之间的数据同步。
时下在进行聚合通信时,特别是多节点设备通信时,多数由CPU发起聚合通信。然而采用上述方式时,需要CPU和加速器的反复交互,导致影响聚合通信的性能。
发明内容
本申请实施例提供了一种计算系统、加速器、交换平面及聚合通信方法,能够提升聚合通信的性能。所述技术方案如下:
第一方面,提供了一种计算系统,所述计算系统包括至少一个加速器和至少一个交换平面;所述至少一个加速器,用于向所述至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作;所述至少一个交换平面,用于响应于所述聚合请求,执行所述聚合通信操作得到聚合结果;向所述至少一个加速器发送所述聚合结果。
以上提供的方法中,通过由加速器发起聚合通信操作,并由交换平面为加速器代理执行聚合通信操作,从而将聚合通信工作从加速器卸载至交换平面,因此减少了加速器和CPU的负载,提升聚合通信的性能。
在一种可能的实现中,所述至少一个加速器和所述至少一个交换平面分别通过专有协议链路相连。
通过以上方式,便于交换平面配合加速器使用。
在一种可能的实现中,所述至少一个交换平面,用于通过所述专有协议链路,从所述至少一个加速器接收第一数据;根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
以上为节点设备内如何进行数据聚合提供了实现方式,该实现方式仅需要一次上行(加速器发起请求)和一次下行(聚合通信模块下发聚合结果)操作,数据不需要在链路中来回反复传输,因此提高了聚合通信效率。
在一种可能的实现中,所述至少一个交换平面,用于通过标准协议链路从第二节点设备接收第二数据;根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
以上为节点设备之间如何进行数据聚合提供了实现方式,能够支持多个节点设备进行聚合通信的复杂场景,应用场景更加丰富。
在一种可能的实现中,所述至少一个交换平面中的每个交换平面包含网络接口控制器NIC,所述至少一个交换平面,用于使用各自包含的NIC,通过所述标准协议链路从所述第二节点设备接收所述第二数据。
通过上述方式,在支持节点设备之间进行数据聚合的基础上,摆脱了节点设备之间的交换网络必须支持专有协议的限制,降低了实现复杂度,提高了方案的可用性。
在一种可能的实现中,所述至少一个交换平面,还用于通过标准协议链路向第二节点设备发送所述聚合结果。
通过上述方式,便于第二节点设备应用第一节点设备的聚合结果进行进一步聚合或者数据同步。
在一种可能的实现中,所述计算系统为服务器,所述至少一个交换平面设置在所述服务器内。
在一种可能的实现中,所述计算系统还用于接收用户的算法选择指令,根据所述算法选择指令选择实现所述聚合通信操作的目标算法。
通过上述方式,支持用户选择算法,满足了用户需求。
第二方面,提供了一种加速器,所述加速器包括:发送单元,用于向至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作;接收单元,用于从所述至少一个交换平面接收所述聚合通信操作的聚合结果。
在一种可能的实现中,所述加速器和所述至少一个交换平面分别通过专有协议链路相连。
在一种可能的实现中,所述加速器设置在服务器内。
在一种可能的实现中,加速器中的单元通过软件实现,加速器中的单元是程序模块。
在一种可能的实现中,加速器中的单元通过硬件或固件实现。例如,加速器的发送单元或者加速器的接收单元中的至少一项为通信接口。
第三方面,提供了一种交换平面,所述交换平面包括:
接收单元,用于从至少一个加速器接收聚合请求,所述聚合请求用于指示执行聚合通信操作;处理单元,用于响应于所述聚合请求,执行所述聚合通信操作得到聚合结果;发送单元,用于向所述至少一个加速器发送所述聚合结果。
在一种可能的实现中,所述交换平面和所述至少一个加速器分别通过专有协议链路相连。
在一种可能的实现中,所述接收单元,用于通过所述专有协议链路,从所述至少一个加速器接收第一数据;所述处理单元,用于根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
在一种可能的实现中,所述接收单元,用于通过标准协议链路从第二节点设备接收第二数据;
所述处理单元,用于根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
在一种可能的实现中,所述发送单元,用于通过标准协议链路向所述第二节点设备发送所述聚合结果。
在一种可能的实现中,所述交换平面包含网络接口控制器NIC,所述接收单元或者所述发送单元中的至少一项通过所述NIC实现。
在一种可能的实现中,所述交换平面设置在服务器内。
在一种可能的实现中,交换平面中的单元通过软件实现,交换平面中的单元是程序模块。
在一种可能的实现中,交换平面中的单元通过硬件或固件实现。例如,交换平面中的处理单元为处理器,该处理器用于执行指令,从而支持该交换平面执行聚合通信操作。
第四方面,提供了一种聚合通信方法,所述方法包括:至少一个加速器向至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作;所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果;所述至少一个交换平面向所述至少一个加速器发送所述聚合结果。
在一种可能的实现中,所述至少一个加速器和所述至少一个交换平面分别通过专有协议链路相连。
在一种可能的实现中,所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果,包括:所述至少一个交换平面通过所述专有协议链路,从所述至少一个加速器接收第一数据;所述至少一个交换平面根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
在一种可能的实现中,所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果,包括:所述至少一个交换平面通过标准协议链路从第二节点设备接收第二数据;所述至少一个交换平面根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
在一种可能的实现中,所述至少一个交换平面中的每个交换平面包含网络接口控制器NIC,所述至少一个交换平面通过标准协议链路从第二节点设备接收第二数据,包括:所述至少一个交换平面使用各自包含的NIC,通过所述标准协议链路从所述第二节点设备接收所述第二数据。
在一种可能的实现中,所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果之后,所述方法还包括:所述至少一个交换平面通过标准协议链路向第二节点设备发送所述聚合结果。
在一种可能的实现中,所述方法应用于服务器,所述至少一个交换平面设置在所述服务器内。
在一种可能的实现中,所述方法还包括:接收用户的算法选择指令,根据所述算法选择指令选择实现所述聚合通信操作的目标算法。
第五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使加速器执行上述第四方面或第四方面任一种可选方式中加速器一侧的方法。
第六方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使交换平面执行上述第四方面或第四方面任一种可选方式中交换平面一侧的方法。
第七方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。加速器的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该加速器执行上述第四方面或第四方面任一种可选方式中加速器一侧的方法。
第八方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。交换平面的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该交换平面执行上述第四方面或第四方面任一种可选方式中交换平面一侧的方法。
第九方面,提供了一种芯片,当该芯片在加速器上运行时,使得加速器执行上述第四方面或第四方面任一种可选方式中加速器一侧的方法。
第十方面,提供了一种芯片,当该芯片在交换平面上运行时,使得交换平面执行上述第四方面或第四方面任一种可选方式中交换平面一侧的方法。
附图说明
图1是本申请实施例提供的一种归约操作的结果示意图;
图2是本申请实施例提供的一种全归约操作的结果示意图;
图3是本申请实施例提供的一种广播操作的结果示意图;
图4是本申请实施例提供的一种收集操作的结果示意图;
图5是本申请实施例提供的一种全收集操作的结果示意图;
图6是本申请实施例提供的一种拆分操作的结果示意图;
图7是本申请实施例提供的一种归约拆分操作的结果示意图;
图8是本申请实施例提供的一种四个节点组成的环形网络的网络拓扑结构示意图;
图9是本申请实施例提供的一种四个节点组成的单向环形网络的网络拓扑结构示意图;
图10是本申请实施例提供的一种单向环形网络内全归约操作的步骤一示意图;
图11是本申请实施例提供的一种单向环形网络内全归约操作的步骤二示意图;
图12是本申请实施例提供的一种单向环形网络内全归约操作的步骤三示意图;
图13是本申请实施例提供的一种单向环形网络内全归约操作的步骤四示意图;
图14是本申请实施例提供的一种单向环形网络内全归约操作的步骤五示意图;
图15是本申请实施例提供的一种单向环形网络内全归约操作的步骤六示意图;
图16是相关技术提供的一种聚合通信的系统架构图;
图17是相关技术提供的一种聚合通信的系统架构图;
图18是本申请实施例提供的一种计算系统的系统架构图;
图19是本申请实施例提供的一种交换平面的结构示意图;
图20是本申请实施例提供的一种聚合通信方法的流程图;
图21是本申请实施例提供的一种聚合通信方法的示意图;
图22是本申请实施例提供的一种聚合通信方法的示意图;
图23是本申请实施例提供的一种加速器的结构示意图;
图24是本申请实施例提供的一种交换平面的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
由于本申请实施例涉及聚合通信(collective communication,也称集合通信)技术的应用,为便于理解,下面对本申请实施例涉及的聚合通信技术中的术语相关概念进行介绍。
(1)聚合通信
聚合通信是指多个节点之间的相互通信过程。在消息传递接口(message passinginterface,MPI)中定义了聚合通信的通信原语,通信原语包括:归约(reduce)、全归约(allreduce)、广播(broadcast)、收集(gather)、全收集(allgather)、拆分(scatter)、归约拆分(reduce-scatter)等等。
(2)归约操作
归约操作是指对多个节点上的数据进行归约,并使多个节点中的根节点上保存归约得到的结果。可选地,多个节点中哪个节点作为根节点由用户指定。归约的方式包括而不限于求和、求最大值、求最小值、求平均值或者用户自定义的操作。通过执行归约操作,能够将不同节点中的数据整合至一起。例如,请参见附图1,附图1是对节点A、节点B和节点C上的数据通过求和的方式实现归约操作的举例说明,节点A是对节点A、节点B、节点C中的根节点的举例说明。节点A上具有数据A、节点B上具有数据B,节点C上具有数据C,数据A、数据B和数据C经过归约后,结果是数据A+数据B+数据C,节点A上会保存数据A+数据B+数据C。
(3)全归约操作
全归约操作是指对多个节点上的数据执行归约操作(例如求和操作),并使得该多个节点中的每个节点均保存归约结果。例如,请参考附图2,附图2是对节点A、节点B和节点C上的数据通过求和的方式实现全归约操作的举例说明,节点A上具有数据A,节点B上具有数据B,节点C上具有数据C。执行全归约操作后,节点A、节点B和节点C均获得了数据A、数据B和数据C的归约结果,归约结果是数据A、数据B和数据C之和。
(4)广播操作
广播操作是指将参与通信的多个节点中的一个节点上的数据传送到多个节点中其他的每个节点。例如,请参考附图1,附图2是对节点A上的数据执行广播操作的举例说明。节点A上具有数据A,参与通信的节点包括节点A、节点B和节点C,节点A执行广播操作后,节点A、节点B和节点C上均获得了数据A。
(5)收集操作
收集操作是指将参与通信的多个节点上的数据汇总到该多个节点中的根节点上,从而将节点本地的数据同步至指定的节点(根节点)上。例如,请参考附图4,附图4是对节点A、节点B和节点C上的数据执行收集操作的举例说明,节点A是对节点A、节点B、节点C中的根节点的举例说明。节点A上具有数据A、节点B上具有数据B,节点C上具有数据C。节点A执行收集操作后,节点A上获得了数据A、数据B和数据C。
(6)全收集操作
全收集操作是指将参与通信的多个节点上的数据汇总至该多个节点中的每个节点上,从而将节点本地的数据同步至该多个节点中其他的每个节点。例如,请参考附图5,附图5是对节点A、节点B和节点C上的数据执行全收集操作的举例说明,节点A上具有数据A、节点B上具有数据B,节点C上具有数据C。节点A、节点B和节点C执行全收集操作后,节点A、节点B和节点C上均获得了数据A、数据B和数据C。
(7)拆分
拆分是指对节点上的数据进行拆分并使参与通信的其他节点上保存拆分得到的数据段。可选地,发送节点对本端保存的数据拆分后,得到多个数据段,发送节点将不同数据段分发至不同的其他节点,从而实现拆分操作。例如,请参见附图6,节点A对节点A上的数据A进行拆分后,得到了三个数据段,这三个数据段分别是数据段A1、数据段A2和数据段A3。节点A将数据段A2发送至节点B,节点A将数据段A3发送至节点C,使得数据段A1在节点A上保存,数据段A2在节点B上保存,数据段A3在节点C上保存。
(8)归约拆分操作
归约拆分操作是指对多个节点上的数据执行归约操作(例如求和操作)和拆分操作,并使得该多个节点中的每个节点均保存归约得到的部分结果。可选地,数据中不同部分的归约结果保存在不同的节点上。例如,请参考附图7,附图7是对节点A、节点B和节点C上的数据通过求和的方式实现归约拆分操作的举例说明,节点A上具有数据A、节点B上具有数据B,节点C上具有数据C。节点A、节点B和节点C在执行归约拆分操作的过程中,节点A将数据A拆分为数据段A1、数据段A2和数据段A3,节点B将数据B拆分为数据段B1、数据段B2和数据段B3,节点C将数据C拆分为数据段C1、数据段C2和数据段C3。然后,节点A、节点B和节点B互相交换彼此的数据段,即,将自身拆分的数据段发送至其他节点,并接收其他节点发来的数据段,对自身拆分的数据段和接收的数据段进行归约操作。执行归约拆分操作后,节点A上获得了数据A、数据B和数据C中第一部分的归约结果,即数据段A1、数据段B1和数据段C1之和;节点B上获得了数据A、数据B和数据C中第二部分的归约结果,即数据段A2、数据段B2和数据段C2之和;节点C上获得了数据A、数据B和数据C中第三部分的归约结果,即数据段A3、数据段B3和数据段C3之和。
以上介绍了聚合通信涉及的一些术语概念,下面对如何实现聚合通信举例说明。
当前每个聚合通信原语有多种实现算法,多数算法对于通信网络的逻辑拓扑结构有一定的假设。以在AI领域中常用的allreduce通信原语为例,当前最为典型的是基于ring网络拓扑的一种实现方法,环全归约(ring allreduce)。为了实现聚合通信的一个原语,往往需要多个步骤完成,下面以ring allreduce为例详细介绍其过程。
ring allreduce是allreduce基于环形网络拓扑结构的一种实现方法。ringallreduce将通信节点从逻辑上连接成环的形式,在环上的所有节点上执行allreduce操作。以4个节点为例,环全归约的具体实现方法包括以下步骤一至步骤三。
步骤一、将每个节点逻辑上连接成环形网络。例如,参见附图8,将节点A、节点B、节点C和节点D连接成环形网络。
步骤二、将数据按照环的个数分成多段,每段数据在1个单向环内执行全归约操作。由于链路一般是双向的,因此附图8中实际上包含两个单向环。因此首先将数据分成两大段,每大段数据在一个单向环中执行环全归约操作。例如,参见附图9,附图9是对单向环的举例说明。
步骤三、每个单向环内执行全归约操作。例如,以在附图9所示的单向环为例,步骤三包括以下步骤3.1至步骤3.3。
步骤3.1、将环内的数据(即该节点总数据量的一半)按照节点个数分成4段(每段即该节点总数据量的8分之一)。
步骤3.2、在该单向环内执行归约拆分操作。
在单向环内执行全归约操作中数据的传递过程共包括6个步骤,步骤3.2涉及的环内执行归约拆分操作关于6个步骤中的步骤一至步骤三,步骤3.3涉及的环内执行全收集操作关于6个步骤中的步骤四至步骤六。
例如,参见附图10、附图11和附图12,附图10、附图11和附图12是步骤3.2涉及的数据的传递汇总求和的举例说明。其中,附图10是对环内执行全归约操作中第一个步骤的举例说明,附图11是对环内执行全归约操作中第二个步骤的举例说明,附图12是对环内执行全归约操作中第三个步骤的举例说明,经过三个步骤后,环上每个节点上得到了归约拆分后的数据。其中,附图12中的白色斜体字体标识的数据是对归约拆分操作得到的数据的举例说明。
步骤3.3、在该单向环内执行全收集操作。
在单向环内执行全收集操作分为三个步骤。例如,请参见附图13、附图14和附图15,附图13是对单向环内执行全收集操作的第一个步骤,即单向环内执行全归约操作的第四个步骤的举例说明;附图14是对单向环内执行全收集操作的第二个步骤,即单向环内执行全归约操作的第五个步骤的举例说明;附图15是对单向环内执行全收集操作的第三个步骤,即单向环内执行全归约操作的第六个步骤的举例说明。
通过进行环内全归约操作,完成了6个步骤的数据传播后,如附图15所示,每个节点上有1段汇总完成的数据。
以下示例性介绍本申请的应用场景。
本申请实施例提供的方法能够应用在异构网络中进行聚合通信的场景,例如应用在一个或多个AI服务器通过聚合通信来进行数据同步的场景。其中,异构网络是指基于不同通信协议的网络及其链路。
具体而言,当前AI服务器中通常会配置多个AI加速器。AI加速器例如为图形处理器(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-networkprocessing units,NPU)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)等。同时,多个AI服务器之间也会互连来进行分布式的计算。多AI服务器通过各自的AI加速器进行计算时,需要不断地通过聚合通信聚合各个AI加速器的计算结果。为了提升性能,同一个AI服务器内的多AI加速器之间会通过高速接口进行互连,这些高速接口往往是设备厂商的专有协议链路,例如NVLink。NVLink是英伟达(NVIDIA)开发并推出的一种总线及其通信协议。多个AI服务器之间的数据同步主要通过标准的高速网络,例如无限带宽(infiniband,IB)网络、RoCE(RDMA over Converged Ethernet,一种允许通过以太网使用远程直接内存访问(Remote Direct Memory Access,RDMA))网络。聚合通信的运行过程通常是由运行在CPU上的AI框架将聚合通信算子发送到加速器,由加速器发起聚合通信操作。
下面结合上述应用场景,对聚合通信在相关技术中面临的一些情况进行介绍。
Mellanox的可缩放分层聚合和归约协议(Scalable Hierarchical Aggregationand Reduction Protocol,SHARP)技术将聚合通信的操作从中央处理器(centralprocessing unit,CPU)卸载到网络交换机上,由交换机上的处理器控制完成聚合通信的整个过程,从而消除了通信端节点多个步骤的操作,消除数据在网络中来反复传输,提升聚合通信的性能。该技术带来的额外的优势是减轻了CPU处理通信的负担,让CPU更聚焦于其擅长的计算工作。
该技术将参与通信的节点和交换机分成端节点(发起聚合通信的节点)以及聚合节点(网络中处理聚合操作的节点)。在物理网络上生成一个包含所有端节点的逻辑上的树拓扑,称为聚合树,如附图16所示,附图16中加粗的连线表示被选为聚合树的边的网络连接。
聚合通信从端节点发起,进入聚合树,并逐层聚合,直到该聚合树的根节点时完成数据的聚合,而后从聚合树的根节点逐层往下分发聚合结果,直到端节点。
为了避免所有的聚合通信都发送到聚合树唯一的根节点,可以在每次聚合通信时创建一个组,该组包含了参与本次聚合通信的端节点,从而划分出一颗子树,聚合通信只需要聚合到该子树的最高聚合节点,而不必到达聚合树的根节点,从而减少通信量。
然而,在采用附图16所示的方式时,面临以下缺点。
缺点1、需要生成和维护一颗聚合树,从而需要增加相应的探测和管理功能。
缺点2、网络中的交换机需要是支持可缩放分层聚合和归约协议的特有交换机。
缺点3、和传统的聚合通信一样,需要从端节点的主机(host)的CPU发起,而无法直接从加速器(如AI加速芯片)发起,从而主要是加速CPU的聚合通信,难以配合加速器使用并对其聚合通信进行加速。
请参考附图17,附图17是另一种实现聚合通信的系统架构图。该技术方案由加速器控制聚合通信的操作过程,其服务器内的互联结构如附图17所示。
服务器节点内通过专有协议链路NVLink互连,并通过NVSwitch形成16P的全互联组网。单服务器内节点间数据的聚合由GPU发起并由GPU做汇总计算。多服务器间节点数据的聚合也是由GPU发起并由GPU做汇总计算。不同的是服务器间节点数据的聚合需要通过Host侧标准的高速网络适配器(附图17中的NIC)进行通信。GPU做聚合通信时,需要根据不同的物理位置关系,选择数据是走专有协议链路NVLink还是通过NIC走标准的网络。跨服务器聚合时,当某个GPU的主链路发生故障,则可以走备用的NIC链路,此时将造成原来由2个GPU共享的NIC链路,在一个NIC故障的场景下,需要由4个GPU共用,平均到每个GPU的带宽下降50%。
然而,在采用附图17所示的方式时,面临以下缺点。
缺点1、加速芯片需要感知网络拓扑,需要做通信方式的选择,服务器节点内采用NVLink通信,服务器节点间采用NIC网口。
缺点2、无论是服务器节点内还是节点间,数据的汇总同步需要经过多次的收发和汇总计算。
缺点3、主备链路的时延不对等,且一条链路故障后会导致通信带宽严重不均衡,从而对性能影响较大。
而本申请实施例提供的聚合通信方法中,能够在不对现有通用的网络和交换设备进行变更的情况下,提升聚合通信的性能,以及减少通信故障场景下对聚合通信性能的影响,同时减少加速器对网络拓扑的感知,减少聚合通信算法的复杂度。
具体地,本申请实施例在专有协议链路的每个交换平面上增加标准的通用网口,即网络接口控制器(network interface controller,NIC)。并且,本申请实施例在专有协议链路的每个交换平面上部署聚合通信模块。聚合通信模块实现服务器内的聚合通信操作。同时,聚合通信模块实现服务器间聚合通信操作原语多个步骤的控制逻辑,即,聚合通信模块会在专有协议链路的交换平面内实现服务器间聚合通信的整个算法,从而代理加速器的聚合通信行为。聚合通信模块能够支持专有协议和标准协议这两种不同的协议,通过专有协议链路和标准协议链路两种链路进行数据的收发。
下面介绍本申请实施例提供的系统架构。
参见附图18,附图18是本申请实施例提供的一种计算系统的系统架构示意图。该计算系统可以用于执行聚合通信。附图18是对包含两个节点设备的情况的举例说明。计算系统包括节点设备11、节点设备12和普通交换网络13。下面通过(1)至(6)对计算系统包含的各部分进行具体介绍。
(1)节点设备
节点设备11以及节点设备12是对参与聚合通信的两个节点设备的举例说明。
节点设备11包括至少一个加速器111和至少一个交换平面112。至少一个加速器111和至少一个交换平面112分别通过专有协议链路相连。节点设备11通过标准协议链路和普通交换网络13相连。可选地,节点设备11为计算设备。计算设备例如为服务器、主机或个人计算机等。网络设备例如为交换机或者路由器。
节点设备12包括至少一个加速器121和至少一个交换平面122。至少一个加速器121和至少一个交换平面122分别通过专有协议链路相连。节点设备12通过标准协议链路和普通交换网络13相连。节点设备12例如为计算设备。
在一些实施例中,节点设备11与节点设备12之间基于标准协议通信。标准协议例如为以太网协议、IB协议、RoCE协议等。
值得说明的一点是,本申请实施例对计算系统中节点设备的数量不做限定。附图18所示的2个节点设备的场景仅是示意性的。在另一些实施例中,计算系统中节点设备的数量比2个更多,比如计算系统中节点设备的数量为几十个或几百个,或者更多数量,此时计算系统包括附图18未示出的其他节点设备。
(2)加速器
加速器111用于执行计算任务。节点设备11通过至少一个加速器111对计算任务(如AI训练任务)进行加速。在一些实施例中,加速器111为AI训练卡。或者,加速器111为直接固定在节点设备11上的模组或者芯片。例如,加速器111为GPU、NPU、张量处理单元(tensor processing unit,TPU)、FPGA、ASIC或者其他为机器学习而定制的适用于AI计算的芯片。其中,AI训练任务包括而不限于计算梯度值、计算模型参数中的至少一项。在另一些实施例中,加速器111为科学计算专用的处理器。节点设备11通过至少一个加速器111对科学计算任务进行加速。
在一些实施例中,多个加速器之间基于专有协议通信。可选地,专有协议为设备厂商约定的用于支持点对点(peer-to-peer,P2P)通信的协议。当然,本发明并不限定该专有协议必须是P2P通信协议,专有协议也可以是P2P通信协议之外的其他通信协议。例如,专有协议为NVLink的通信协议。
加速器121的特征与加速器111的特征同理,可参考以上对加速器111的描述。
(3)交换平面
交换平面112用于转发节点设备11中多个加速器之间传输的数据,且交换平面112还用于转发节点设备11中加速器与普通交换网络13之间传输的数据。
在一些实施例中,交换平面112为硬件。例如,交换平面112为交换芯片、交换机或者其他交换设备。实现交换平面112的硬件包括多种类型。例如,整个交换平面是一个ASIC。又如,交换平面包含运行有聚合通信模块的CPU和NIC芯片。
在一些实施例中,交换平面112为专有协议交换平面。专有协议交换平面为基于专有协议进行数据交换的交换平面。例如,专有协议交换平面为支持专有协议的交换芯片、交换机或者其他交换设备。
交换平面112支持基于标准协议收发数据。交换平面112通过标准协议链路与普通交换网络13相连。交换平面112与普通交换网络13之间建立一条或多条标准协议链路,本实施例对交换平面112与普通交换网络13之间标准协议链路的数量不做限定。
交换平面112支持基于专有协议收发数据。交换平面112通过专有协议链路与至少一个加速器111相连。交换平面112与加速器111之间建立一条或多条专有协议链路,本实施例对交换平面112与加速器111之间专有协议链路的数量不做限定。
在一些实施例中,交换平面112与节点设备11中的全部加速器分别相连;或者,交换平面112与节点设备11中的部分加速器分别相连。
一个节点设备内包括一个或多个交换平面。例如参见附图18,节点设备11和节点设备12分别包括多个专有协议交换平面。
(4)专有协议链路
专有协议链路是指基于专有协议建立的链路。专有协议是与通用协议或者说标准协议相对的概念。专有协议类似于厂商私有的协议。专有协议的定义和操作由一家公司或供应商控制。经过拥有者许可,其他组织也可使用某些专有协议。例如,专有协议为NVLink协议。
在一些实施例中,多个加速器之间基于专有协议建立专有协议链路。专有协议链路例如为物理链路(有线链路)。例如,专有协议链路为NVLink链路。
可选地,专有协议链路为内部链路。内部链路是指节点设备内部的链路。例如,内部链路为节点设备内多个加速器之间互联的链路。
节点设备内的多个加速器之间通过专有协议链路以及交换平面进行互联,从而实现节点设备内多个加速器之间的通信。例如参见附图18,节点设备11包括加速器1和加速器2,加速器1通过专有协议链路与专有协议交换平面112相连,专有协议交换平面112通过专有协议链路与加速器2相连,因此加速器1与加速器2之间能够相互通信。
(5)标准协议链路
标准协议链路是指基于标准协议建立的链路。标准协议是写入标准的协议。标准协议可以是一个组织中每个成员都会采用的协议。例如,标准协议为串行计算机扩展总线标准(peripheral component interconnect express,PCIe)协议、以太网协议、IB协议、RoCE协议等。
标准协议链路与专有协议链路为两种不同类型的链路。在一些实施例中,多个节点设备之间基于标准协议建立标准协议链路。例如,标准协议链路为以太网链路、IB链路、RoCE链路等。
可选地,标准协议链路为外部链路。外部链路是指不同节点设备之间互连的链路。
(6)普通交换网络
普通交换网络13用于转发不同节点设备之间的数据。普通交换网络13例如为标准通用网络。普通交换网络13支持不同节点设备之间的通信协议(如标准协议)。可选地,普通交换网络13包括至少一个网络设备(如交换机)。
不同节点设备之间通过普通交换网络13进行互联实现节点设备间加速器之间的通信。例如参见附图18,由于节点设备11与节点设备12之间通过普通交换网络13互联,当加速器111需要和加速器121通信时,加速器111的数据能够通过路径:加速器111→交换平面112→普通交换网络13→交换平面122→加速器121到达加速器121,实现了节点设备11与节点设备12之间加速器的通信。
需要说明的一点是,普通交换网络13是附图18所示系统架构中可选的部分。在另一些实施例中,系统架构100并不包含普通交换网络13。例如,在系统架构100具有的节点设备的数量为2个的情况下,比如当系统架构100不包含除了节点设备11与节点设备12这两个节点设备之外的其他节点设备时,节点设备11与节点设备12之间通过线缆直连,此时无需设置网络设备。
以上通过系统架构100介绍了整体的系统架构,下面结合附图19对交换平面包含的组件进行具体介绍。
请参考附图19,节点设备11(如服务器)包含n个交换平面,n为大于或等于1的正整数。下面以交换平面112为例具体说明。
交换平面112包括聚合通信模块1121、NIC1122、数据缓存1123以及专有协议模块1124。聚合通信模块1121与NIC1122相连,聚合通信模块1121与专有协议模块1124相连。聚合通信模块1121与数据缓存1123相连。此外,在聚合通信模块1121通过软件实现的情况下,通过运行聚合通信模块1121的硬件和NIC1122与专有协议模块1124相连,不同模块之间没有实体的物理连接。
下面对聚合通信模块1121、NIC1122、数据缓存1123以及专有协议模块1124分别进行介绍。
(a)聚合通信模块1121
聚合通信模块1121部署在交换平面112(如专有协议交换平面)内部。聚合通信模块1121用于支持交换平面112执行聚合通信操作。聚合通信模块1121代理加速器111的聚合通信行为。当加速器111需要进行聚合通信时,由聚合通信模块1121代替加速器111执行聚合通信操作,从而将聚合通信的任务从加速器111卸载至聚合通信模块1121。聚合通信模块1121与加速器111连接,或者通过专有协议模块1124与加速器111连接。
聚合通信模块1121的代理功能包括两方面。
一方面,聚合通信模块1121为加速器111代理执行节点设备11内的聚合通信操作。具体地,聚合通信模块1121用于对节点设备11内多个加速器之间的数据进行聚合。例如,当加速器111需要与节点设备11中加速器111之外的其他加速器进行聚合通信时,由聚合通信模块1121对加速器111与其他加速器的数据进行聚合,从而实现节点设备11内的聚合通信。比如,参见附图21,当加速器1、加速器2、加速器3这3个同一节点设备内的加速器之间需要进行聚合通信时,聚合通信模块1121分别通过专有协议链路从加速器1、加速器2、加速器3接收数据,聚合通信模块1121对加速器1的数据、加速器2的数据、加速器3的数据进行聚合。
另一方面,聚合通信模块1121为加速器111代理执行各个节点设备之间的聚合通信操作,实现节点设备间聚合操作原语多个步骤的控制逻辑。例如,如果是跨节点设备之间的加速器进行聚合通信时,会执行三个步骤。第一个步骤是节点设备内的数据聚合,第二个步骤是节点设备之间的数据聚合。如果某个节点设备只有一个加速器参与聚合通信,则在第一个步骤中不需要实质的聚合操作。第三个步骤是将最终的聚合结果发给目标加速器。
由此可见,通过在交换平面112部署聚合通信模块1121,交换平面112内即可实现节点设备内以及各个节点设备之间聚合通信的整个算法。
聚合通信模块1121的实现方式包括很多种。例如,聚合通信模块1121全部或部分地通过软件、硬件、固件或者其任意组合来实现。在一些实施例中,聚合通信模块1121是软件,聚合通信模块1121通过NIC1122以及专有协议模块1124提供的驱动和外部交换数据。例如,交换平面112内部包含有运行软件的硬件模块(如CPU),聚合通信模块1121运行在该硬件模块(如CPU)上。聚合通信模块1121通过NIC1122以及专有协议模块1124在该硬件模块(如CPU)上的驱动,进行数据的收发。
在另一些实施例中,聚合通信模块1121整体做成一个硬件电路模块,该硬件电路模块包括硬件和固件等。
聚合通信模块1121能够通过专有协议链路和标准协议链路这两种链路进行数据的收发。具体地,聚合通信模块1121支持多个加速器之间的通信协议(如专有协议),因此聚合通信模块1121能够通过专有协议链路进行数据的收发。同时,聚合通信模块1121支持不同节点设备之间的通信协议(如标准协议),因此聚合通信模块1121能够通过标准协议链路进行数据的收发。
聚合通信模块1121如何实现对专有协议和标准协议的同时支持包括多种方式。
例如,聚合通信模块1121同时包括专有协议对应的总线接口和标准协议对应的总线接口。比如,聚合通信模块1121同时包括NVLink接口以及以太网总线接口等通用总线接口。因此,聚合通信模块1121实现了在硬件上支持基于专有协议和标准协议的通信。
又如,聚合通信模块1121通过支持专有协议的软件和支持标准协议的软件进行数据收发和处理。该支持专有协议的软件例如为专有协议通信模块提供的驱动程序。该支持专有协议的软件用于解析加速器基于专有协议发来的数据、将数据封装为专有协议要求的格式后发送给加速器。该支持标准协议的软件例如为标准协议通信模块提供的驱动程序。该支持标准协议的软件用于解析其他节点设备通过标准协议发来的数据、将数据封装为标准协议要求的格式后发送给其他节点设备。因此,聚合通信模块1121实现了在软件上支持基于专有协议和标准协议的通信。
(b)NIC1122
NIC1122为网口,具体为通用标准协议网口。NIC1122用于支持交换平面112基于标准协议通信。具体地,NIC1122能够基于标准协议进行节点设备之间数据的收发。例如,NIC1122用于将节点设备11的数据基于标准协议发送给节点设备12,并且NIC1122用于基于标准协议接收来自于节点设备12的数据。
值得说明的一点是,本申请实施例对一个交换平面包含的NIC的数量不做限定。附图19所示的一个交换平面包含1个NIC的场景仅是示意性的。在另一些实施例中,一个交换平面包含多个NIC,聚合通信模块能够通过聚合通信模块所在的交换平面上的每个NIC对外通信。
在一些实施例中,NIC1122与聚合通信模块1121分离设置。在另一些实施例中,NIC1122与聚合通信模块1121集成为同一个硬件。
(c)数据缓存1123
数据缓存1123用于存放聚合通信的数据。可选地,数据缓存1123部署在交换平面112中。或者,数据缓存1123部署在交换平面112外部。例如,数据缓存1123是与交换平面112分离设置的外挂芯片。数据缓存1123例如为存储芯片。
(d)专有协议模块1124
专有协议模块1124用于进行专有协议数据的收发。
以上结合附图18和附图19介绍了聚合通信整体的系统架构以及交换平面内部的具体组件,以下对基于上述系统架构进行聚合通信的方法流程进行介绍。
参见附图20,附图20是本申请实施例提供的一种聚合通信方法的流程图。
该聚合通信方法由第一节点设备执行,或者由第一节点设备与第二节点设备交互执行。例如,附图20所示的聚合通信方法由一个服务器执行或者由多个服务器交互执行。其中,第一节点设备例如为附图18所示的节点设备11,第二节点设备例如为附图18所示的节点设备12。第一节点设备和/或第二节点设备例如具有附图19所示的专有协议交换平面。第一节点设备和/或第二节点设备在参与聚合通信时,例如通过附图19所示的聚合通信模块1121执行聚合通信操作,通过附图19所示的NIC1122对外收发数据,并通过专有协议模块1124收发数据。
示例性地,该聚合通信方法包括以下步骤S210至步骤S230。
步骤S210、至少一个加速器向至少一个交换平面发送聚合请求。
当加速器需要进行聚合通信时,加速器生成聚合请求。加速器通过专有协议链路向交换平面发送聚合请求。聚合请求用于指示执行聚合通信操作。聚合请求从加速器发起。聚合请求的目的地为交换平面内的聚合通信模块。聚合请求携带参与聚合通信的数据或者数据的存放地址。
在一些实施例中,加速器将数据分段,得到多个数据段。加速器根据多个数据段同时向多个交换平面发送聚合请求。其中,数据段为数据的一部分。在一些实施例中,加速器向不同交换平面发送的聚合请求携带不同数据段,从而指示不同交换平面根据不同数据段执行聚合通信操作。
在一些实施例中,一个加速器同时连接多个交换平面。可选地,加速器向加速器连接的每个交换平面发送聚合请求,以便通过多个交换平面同时执行聚合通信操作来提升性能。或者,可选地,加速器向加速器连接的部分交换平面发送聚合请求;或者,可选地,加速器向加速器连接的指定交换平面发送聚合请求。在一些实施例中,可选地,加速器根据交换平面的状态以及NIC的状态,确定待执行聚合通信操作的目标交换平面,向该目标交换平面发送聚合请求。其中,交换平面的状态例如为交换平面是正常状态还是故障状态,又如为交换平面是空闲状态还是忙碌状态。NIC的状态包括NIC的连接状态、正常状态或者故障状态、拥塞状态等。
步骤S220、至少一个交换平面响应于聚合请求,执行聚合通信操作得到聚合结果。
交换平面执行的聚合通信操作包括节点设备内的聚合通信操作以及节点设备之间的聚合通信操作,下面通过情况一至情况二举例说明。为了区分描述,将第一节点设备内参与聚合通信的数据称为第一数据,将第二节点设备内参与聚合通信的数据称为第二数据。
第一数据例如为第一节点设备的加速器待参与聚合通信的数据。第一数据来自于第一节点设备中的至少一个加速器。可选地,第一数据为尚未经过聚合通信操作的原始数据。可选地,第一数据为第一节点设备的加速器进行数据处理得到的数据。可选地,第一数据为已经过一次或多次聚合通信操作的中间结果。可选地,第一数据为第一节点设备中加速器进行AI训练得到的数据。例如,第一数据为梯度值或者模型参数。
第二数据例如为第二节点设备的加速器待参与聚合通信的数据。
可选地,第二数据来自于第二节点设备中的交换平面。可选地,第二数据为已经过一次或多次聚合通信操作的中间结果。例如,第二数据为对第二节点设备的加速器发送的数据进行聚合后得到的中间结果。例如,在第一节点设备与第二节点设备之间进行聚合通信时,第二节点设备的交换平面先对第二节点设备的加速器发起的数据执行聚合通信操作,第二节点设备的交换平面将得到的中间结果(第二数据)发送给第一节点设备的交换平面,从而发起节点设备之间数据的进一步聚合。
可选地,第二数据来自于第二节点设备中的至少一个加速器。可选地,第二数据为尚未经过聚合通信操作的原始数据。
可选地,第二数据为第二节点设备的加速器进行数据处理得到的数据。可选地,第二数据为第二节点设备中加速器进行AI训练得到的数据。例如,第二数据为梯度值或者模型参数。
情况一、交换平面执行节点设备内的聚合通信操作。
在情况一下,聚合请求用于指示交换平面执行第一节点设备内的聚合通信操作。交换平面通过专有协议链路,从第一节点设备内参与聚合通信的多个加速器分别接收聚合请求。交换平面响应于聚合请求,为第一节点设备内参与聚合通信的多个加速器执行聚合通信操作,得到聚合结果。该聚合结果为第一节点设备内多个加速器的数据聚合后的数据。
例如,至少一个交换平面通过专有协议链路,从至少一个加速器接收第一数据;至少一个交换平面根据第一数据执行聚合通信操作,得到聚合结果。例如,参见附图21,加速器1、加速器2、加速器3……加速器8这8个加速器分别通过专有协议链路将数据发送给专有协议交换平面1和专有协议交换平面n。专有协议交换平面1和专有协议交换平面n分别通过专有协议链路接收8个加速器的数据。专有协议交换平面1和专有协议交换平面n分别通过各自包含的聚合通信模块,根据8个加速器的数据执行聚合通信操作,得到聚合结果,该聚合结果为8个加速器的数据聚合后的数据。
情况二、交换平面执行节点设备之间的聚合通信操作。
在情况二下,聚合请求用于指示交换平面执行不同节点设备之间的聚合通信操作。交换平面响应于聚合请求,执行不同节点设备之间的聚合通信操作,得到聚合结果。该聚合结果为不同节点设备的数据聚合后的数据。
在一些实施例中,交换平面利用节点设备内聚合后的数据发起节点设备之间的聚合通信。具体地,至少一个交换平面从至少一个加速器接收第一数据之后,至少一个交换平面对第一数据进行聚合,得到第三数据;至少一个交换平面通过标准协议链路向第二节点设备发送第三数据。
其中,第三数据是指第一节点设备内参与聚合通信的数据聚合后的数据。例如,第一节点设备包含加速器1、加速器2和加速器3。加速器1、加速器2和加速器3在参与聚合通信的过程中,加速器1提供数据1,加速器2提供数据2,加速器3提供数据3,则第三数据为对数据1、数据2、数据3聚合后得到的数据。
在一些实施例中,部署在交换平面内的聚合通信模块通过NIC从而发起节点设备之间的聚合通信。具体地,节点设备中每个交换平面均包含NIC,节点设备各个交换平面中的聚合通信模块分别指示各个交换平面包含的NIC,通过标准协议链路向第二节点设备发送第三数据。例如,交换平面中的聚合通信模块调用NIC中的驱动程序,从而指示NIC将第三数据通过标准协议链路发送出去。
以节点设备为服务器为例,示例性地,参见附图22,聚合通信模块接收到本服务器内参与本次聚合操作的所有加速器的聚合请求后,聚合通信模块进行第一层的聚合操作,从而完成本服务器内参与本次聚合操作的所有加速器的数据的聚合。并且,聚合通信模块以第一层聚合后的数据,通过通用标准端口(NIC),发起服务器间的聚合操作,从而完成第二层的聚合操作。第二层聚合操作的结果即为最终的聚合操作结果。
其中,第一层的聚合操作是指通过专有协议网络进行聚合通信的操作。第二层的聚合操作是指通过标准协议网络进行聚合通信的操作。第一层的聚合操作为节点设备内的聚合通信操作。第二层的聚合操作为节点设备之间的聚合通信操作。
如何执行节点设备之间的聚合通信操作包括多种具体实现方式,下面通过实现方式一和实现方式二举例说明。
实现方式一、参与聚合通信的每个节点设备中的交换平面分别对本地数据与其他节点设备的数据进行聚合。
例如,第一节点设备和第二节点设备这2个节点设备的所有加速器之间进行数据聚合时,第一节点设备的交换平面中的聚合通信模块对第一节点设备内参与聚合通信的每个加速器的数据进行聚合,得到第一节点设备本地聚合后的数据(即第一节点设备对应的第三数据);同理地,第二节点设备的交换平面中的聚合通信模块对第二节点设备内参与聚合通信的每个加速器的数据进行聚合,得到第二节点设备本地聚合后的数据(即第二节点设备对应的第三数据);第一节点设备的交换平面中的聚合通信模块将第一节点设备本地聚合后的数据通过标准协议链路发送给第二节点设备;第二节点设备的交换平面中的聚合通信模块将第二节点设备本地聚合后的数据通过标准协议链路发送给第一节点设备;第一节点设备的交换平面中的聚合通信模块对第一节点设备本地聚合后的数据与第二节点设备本地聚合后的数据进行聚合,得到第二层的聚合操作结果;第二节点设备的交换平面中的聚合通信模块对第二节点设备本地聚合后的数据与第一节点设备本地聚合后的数据进行聚合,得到第二层的聚合操作结果。
其中,第二层的聚合操作结果返回给哪个或者哪些加速器例如根据聚合请求确定。例如,当聚合通信操作为reduce操作时,第二层的聚合操作结果返回给根加速器。
实现方式二、参与聚合通信的所有节点设备中一个或多个节点设备内的交换平面执行第二层聚合操作。
比如,第一节点设备和第二节点设备这2个节点设备的所有加速器之间进行数据聚合时,第一节点设备的交换平面中的聚合通信模块对第一节点设备内参与聚合通信的每个加速器的数据进行聚合,得到第一节点设备本地聚合后的数据(即第一节点设备对应的第三数据);之后,第一节点设备的交换平面中的聚合通信模块通过NIC将第一节点设备本地聚合后的数据通过标准协议链路发送给第二节点设备;第二节点设备的交换平面中的聚合通信模块对第二节点设备内参与聚合通信的每个加速器的数据进行聚合,得到第二节点设备本地聚合后的数据(即第二节点设备对应的第三数据)。这一场景下,第一节点设备和第二节点设备之间的聚合通信操作例如为reduce操作,第二节点设备例如为根加速器所在的节点设备。
与实现方式一相区别的是,第二节点设备无需对外发送第二节点设备本地聚合后的数据,而是通过聚合通信模块对第二节点设备本地的第一层的聚合后的数据与第一节点设备发来的聚合后的数据执行聚合操作,得到第二层的聚合操作结果。
在参与聚合通信的所有节点设备中,具体由哪个节点设备或者由哪些节点设备执行第二层的聚合操作包括多种实现方式。例如,根据聚合通信操作的类型确定负责执行第二层的聚合操作的节点设备;又如,根据根加速器所在的节点设备的ID确定负责执行第二层的聚合操作的节点设备;又如,根据聚合请求携带的信息确定负责执行第二层的聚合操作的节点设备。
交换平面根据聚合请求执行的聚合通信操作包括而不限于reduce操作、allreduce操作、broadcast操作、gather操作、allgather操作、scatter操作、reduce-scatter操作。在一些实施例中,聚合请求携带聚合通信操作的类型标识。交换平面根据聚合请求携带的类型标识,执行类型标识对应的聚合通信操作,例如,当聚合请求携带类型标识1时,交换平面执行reduce操作;当聚合请求携带类型标识2时,交换平面执行scatter操作。通过这种方式,加速器能够控制交换平面执行哪一种类型的聚合通信操作,提高方案实施的灵活性。
步骤S230、至少一个交换平面向至少一个加速器发送聚合结果。
由于交换平面与加速器通过专有协议链路相连,交换平面能够通过专有协议链路向加速器发送聚合结果,从而将聚合结果返回给加速器。
本实施例对交换平面向哪个加速器发送聚合结果不做限定,以下通过方式A和方式B举例说明。
方式A、交换平面向第一节点设备内的所有加速器发送聚合结果。
方式B、交换平面从第一节点设备内的所有加速器中,确定一个或多个目标加速器,交换平面向该一个或多个目标加速器发送聚合结果,从而将聚合结果传递至第一节点设备内指定的加速器。例如,发起聚合通信的加速器通过聚合请求指定后续得到的聚合结果要返回给哪些加速器。比如,聚合请求中携带目标加速器的ID或地址。交换平面接收到聚合请求时,会保存聚合请求中携带的目标加速器的身份标识(identity,ID)或地址。当交换平面后续得到聚合结果后,根据保存的目标加速器的ID或地址,向目标加速器发送聚合结果。在一些实施例中,在多个节点设备之间进行聚合通信的情况下,聚合请求还可选地携带目标节点设备的ID。交换平面根据聚合请求中携带的目标节点设备的ID,从而查询到向哪个目标节点设备的哪个目标加速器发送聚合结果。
在一些实施例中,第一节点设备的交换平面得到聚合结果之后,还会通过标准协议链路向第二节点设备发送聚合结果。第一节点设备通过将本设备的聚合结果发给第二节点设备,便于第二节点设备应用第一节点设备的聚合结果。
例如,可选地,第二节点设备的交换平面将第一节点设备的聚合结果发送至第二节点设备内的加速器,第二节点设备的加速器将本地的数据更新为第一节点设备的聚合结果,使得第一节点设备的聚合结果同步至第二节点设备的加速器。
又如,可选地,第二节点设备的交换平面对第一节点设备的聚合结果与第二节点设备内加速器发送的数据进行聚合。可选地,第二节点设备的交换平面先对第二节点设备内加速器发送的数据进行聚合,再对第二节点设备的聚合结果与第一节点设备的聚合结果进行进一步聚合。第二节点设备得到第一节点设备与第二节点设备之间的聚合结果后,将两个设备之间的聚合结果发送至第二节点设备内的加速器,第二节点设备的加速器将本地的数据更新为将两个设备之间的聚合结果,使得将两个设备之间的聚合结果同步至第二节点设备的加速器。
本实施例提供的方法中,通过部署了与加速器之间通过专有协议链路相连的交换平面,由交换平面代理加速器的聚合通信行为,从而将聚合通信工作从加速器卸载至交换平面,因此减少了加速器的负载,提升聚合通信的性能。
进一步地,当一个交换平面或者NIC网络连接故障时,对于所有加速器来说,其网络拓扑依然没有改变,仅仅是减少了一个交换平面的带宽。设交换平面的个数为n,则一个交换平面故障情况下,带宽仅降低1/n,因此降低了链路故障对聚合通信性能的影响。其中,n为正整数。
进一步地,与附图16所示的方式不同,本申请的一些实施例在专有协议的一层交换平面内完成聚合通信原语的所有操作,而不是在整个交换网络中逐层操作完成。换句话说,本申请实施例中的聚合通信模块是聚合通信的一个完整代理,而非附图16所示的方式那样,每个聚合节点(如交换机)只完成一部分聚合操作。因此本申请实施例不需要特定的交换机支持,不需要对交换网络进行改造,适用于现有的交换网络。
进一步地,与附图16所示的方式不同,本申请实施例不依赖于特有的网络逻辑拓扑,不需要建立一个逻辑的聚合树,从而减少了聚合树的创建和维护工作。
进一步地,与附图16所示的方式不同,本申请实施例主要是卸载加速器的聚合通信工作,而非CPU的聚合通信工作,更适用于AI等主要采用加速器进行计算的场景。
进一步地,与附图17所示的方式不同,附图17所示的方式中加速器需要同时连接NIC和专有协议NVLink交换链路,专有协议NVLink交换平面不外出NIC。而本申请实施例中,加速器连接专有协议链路,由专有协议交换平面上部署NIC连接外部网络。如此,加速器无需感知外部的链路拓扑,网络更为对称,聚合通信算法更为简单。故障场景下带宽仅下降1/n(n为专有协议交换平面的个数),而附图17所示的方式带宽将下降50%。
进一步地,与附图17所示的方式不同,附图17所示的方式中专有协议NVLink仅作为通信联络,不具有聚合通信的功能,而本申请实施例,专有协议交换平面部署了聚合通信模块,代理了加速器的整个聚合操作算法。从而卸载了加速器的集合通信负载,获得更高的性能,特别是单服务器聚合时,仅需要一次上行(加速器发起请求)和一次下行(聚合通信模块下发聚合结果)操作,数据不需要在链路中来回反复传输。
以上提供的聚合通信方法适用于任意跨不同通信协议的聚合通信的场景。该不同通信协议可选地为专有协议和标准协议,或者为其他不同协议。当应用于不同通信协议时,将部署于专有协议交换平面中的聚合通信模块部署到异构网络的交接点即可。此外,上述方法适用于不同节点设备之间异构网络的聚合通信,仅需将部署于节点设备内专有协议交换平面的聚合通信模块,部署到节点设备之间异构网络的交接点(如跨协议的交换机/路由器)即可。其中,异构网络的交接点例如是两个专有协议网络之间连接的位置。
在一些实施例中,以上描述的聚合通信方法还涉及人机交互。具体地,实现以上方法中聚合通信操作的算法包括很多种。比如,allreduce可能有各种实现的算法。用户可以根据需求,选择聚合通信操作具体使用哪种算法实现。
例如,提供(如由用户设备显示)UI界面,UI界面用于提示用户在至少一种算法中选择实现聚合通信操作的目标算法。用户在UI界面上执行选择操作,触发算法选择指令。计算系统接收用户的算法选择指令。计算系统根据算法选择指令选择实现聚合通信操作的目标算法。计算系统基于目标算法实现上述方法实施例中的聚合通信操作。
在一些实施例中,上述聚合通信方法的输入为用户提供的数据,上述聚合通信方法的输出会返回给用户。
例如,应用在深度学习领域中执行模型训练任务的场景下,上述聚合通信方法的输入为用户提供的样本集,样本集例如为人脸图像集、视频集、语料集等等。上述聚合通信方法的输出为训练好的AI模型。例如,服务器通过执行上述聚合通信方法,对用户提供的样本集训练得到AI模型后,服务器将AI模型提供给用户。
又如,应用在物理实验数据分析、气象数据分析或者其他大数据分析场景下,上述聚合通信方法的输入为用户提供的需要分析的数据。上述聚合通信方法的输出为分析结果。例如,服务器通过执行上述聚合通信方法,对用户提供的数据进行分析后,服务器将分析结果提供给用户。
以上介绍了本申请实施例的方法实施例,以下对加速器和交换平面的硬件结构进一步具体介绍。
附图23示出了上述实施例中所涉及的加速器的一种可能的结构示意图。附图23所示的加速器500例如为附图18中的加速器111或者加速器121。加速器500用于实现方法实施例中加速器的功能。
请参考附图23,加速器500包括发送单元501和接收单元502。加速器500中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。加速器500中的各个单元用于执行上述方法实施例中加速器的相应功能。具体地,发送单元501用于支持加速器500向至少一个交换平面发送聚合请求。接收单元502用于支持加速器500从至少一个交换平面接收聚合通信操作的聚合结果。
本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
在一些实施例中,加速器500中各个单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。发送单元501通过芯片中的输出接口实现。接收单元502通过芯片中的输入接口实现。例如,该芯片通过一个或多个现场可编程门阵列(英文全称:field-programmable gate array,英文简称:FPGA)、可编程逻辑器件(英文全称:programmable logic device,英文简称:PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合实现。
附图24示出了上述实施例中所涉及的交换平面的一种可能的结构示意图。附图24所示的交换平面600例如为附图18中的交换平面112或者交换平面112。交换平面600用于实现方法实施例中交换平面的功能。
请参考附图24,交换平面600包括接收单元601、处理单元602和发送单元603。交换平面600中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。交换平面600中的各个单元用于执行交换平面112或者交换平面112的相应功能。具体地,接收单元601用于支持交换平面600从至少一个加速器接收聚合请求。处理单元602用于支持交换平面600执行聚合通信操作。发送单元603用于支持交换平面600向至少一个加速器发送聚合结果。
在一种可能的实现中,接收单元601或者发送单元603中的至少一项包括NIC1122。处理单元602为聚合通信模块1121。接收单元601或者发送单元603中的至少一项包括专有协议模块1124。
本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
在一些实施例中,交换平面600中各个单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。处理单元602通过芯片中的处理电路实现。接收单元601通过芯片中的输入接口实现。发送单元603通过芯片中的输出接口实现。例如,该芯片通过一个或多个现场可编程门阵列(英文全称:field-programmable gate array,英文简称:FPGA)、可编程逻辑器件(英文全称:programmablelogic device,英文简称:PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideo disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (25)
1.一种计算系统,其特征在于,所述计算系统包括至少一个加速器和至少一个交换平面,所述加速器用于执行计算任务,所述交换平面中部署有聚合通信模块,所述聚合通信模块用于支持所述交换平面执行聚合通信操作;
所述至少一个加速器,用于向所述至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作;
所述至少一个交换平面,用于:响应于所述聚合请求,由所述至少一个交换平面中部署的至少一个聚合通信模块代理所述至少一个加速器执行所述聚合通信操作,得到聚合结果;向所述至少一个加速器发送所述聚合结果;
其中,所述聚合通信模块用于实现同一设备内的多个加速器之间的所述聚合通信操作;或,用于实现不同设备之间的聚合通信操作原语多个步骤的控制逻辑。
2.根据权利要求1所述的计算系统,其特征在于,所述至少一个加速器和所述至少一个交换平面分别通过专有协议链路相连。
3.根据权利要求2所述的计算系统,其特征在于,
所述至少一个交换平面,用于:通过所述专有协议链路,从所述至少一个加速器接收第一数据;根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
4.根据权利要求1至3中任一项所述的计算系统,其特征在于,
所述至少一个交换平面,用于:通过标准协议链路从第二节点设备接收第二数据;根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
5.根据权利要求4所述的计算系统,其特征在于,所述至少一个交换平面中的每个交换平面包含网络接口控制器NIC,所述至少一个交换平面,用于:使用各自包含的NIC,通过所述标准协议链路从所述第二节点设备接收所述第二数据。
6.根据权利要求1至3中任一项所述的计算系统,其特征在于,
所述至少一个交换平面,还用于通过标准协议链路向第二节点设备发送所述聚合结果。
7.根据权利要求1至3任一项所述的计算系统,其特征在于,所述计算系统还用于接收用户的算法选择指令,根据所述算法选择指令选择实现所述聚合通信操作的目标算法。
8.一种加速器,其特征在于,所述加速器用于执行计算任务,所述加速器包括:
发送单元,用于向至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作,所述交换平面中部署有聚合通信模块,所述聚合通信模块用于支持所述交换平面执行所述聚合通信操作;
接收单元,用于从所述至少一个交换平面接收所述聚合通信操作的聚合结果,所述聚合结果由所述至少一个交换平面中部署的至少一个聚合通信模块代理至少一个加速器执行所述聚合通信操作得到;
其中,所述聚合通信模块用于实现同一设备内的多个加速器之间的所述聚合通信操作;或,用于实现不同设备之间的聚合通信操作原语多个步骤的控制逻辑。
9.根据权利要求8所述的加速器,其特征在于,所述加速器和所述至少一个交换平面分别通过专有协议链路相连。
10.一种交换平面,其特征在于,所述交换平面中部署有聚合通信模块,所述聚合通信模块用于支持所述交换平面执行聚合通信操作,所述交换平面包括:
接收单元,用于从至少一个加速器接收聚合请求,所述聚合请求用于指示执行聚合通信操作,所述加速器用于执行计算任务;
处理单元,用于响应于所述聚合请求,通过所述聚合通信模块代理所述至少一个加速器执行所述聚合通信操作,得到聚合结果;
发送单元,用于向所述至少一个加速器发送所述聚合结果;
其中,所述聚合通信模块用于实现同一设备内的多个加速器之间的所述聚合通信操作;或,用于实现不同设备之间的聚合通信操作原语多个步骤的控制逻辑。
11.根据权利要求10所述的交换平面,其特征在于,所述交换平面和所述至少一个加速器分别通过专有协议链路相连。
12.根据权利要求11所述的交换平面,其特征在于,
所述接收单元,用于通过所述专有协议链路,从所述至少一个加速器接收第一数据;
所述处理单元,用于根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
13.根据权利要求10至12中任一项所述的交换平面,其特征在于,
所述接收单元,用于通过标准协议链路从第二节点设备接收第二数据;
所述处理单元,用于根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
14.根据权利要求13所述的交换平面,其特征在于,
所述发送单元,用于通过标准协议链路向所述第二节点设备发送所述聚合结果。
15.根据权利要求13所述的交换平面,其特征在于,所述交换平面包含网络接口控制器NIC,所述接收单元或者所述发送单元中的至少一项通过所述NIC实现。
16.一种聚合通信方法,其特征在于,所述方法包括:
至少一个加速器向至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作,所述加速器用于执行计算任务,所述交换平面中部署有聚合通信模块,所述聚合通信模块用于支持所述交换平面执行所述聚合通信操作;
所述至少一个交换平面响应于所述聚合请求,由所述至少一个交换平面中部署的至少一个聚合通信模块代理所述至少一个加速器执行所述聚合通信操作,得到聚合结果;
所述至少一个交换平面向所述至少一个加速器发送所述聚合结果;
其中,所述聚合通信模块用于实现同一设备内的多个加速器之间的所述聚合通信操作;或,用于实现不同设备之间的聚合通信操作原语多个步骤的控制逻辑。
17.根据权利要求16所述的方法,其特征在于,所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果,包括:
所述至少一个交换平面从所述至少一个加速器接收第一数据;
所述至少一个交换平面根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
18.根据权利要求16或17所述的方法,其特征在于,所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果,包括:
所述至少一个交换平面通过标准协议链路从第二节点设备接收第二数据;
所述至少一个交换平面根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
19.根据权利要求16或17所述的方法,其特征在于,所述至少一个交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果之后,所述方法还包括:
所述至少一个交换平面通过标准协议链路向第二节点设备发送所述聚合结果。
20.根据权利要求16或17所述的方法,其特征在于,所述至少一个加速器和所述至少一个交换平面分别通过专有协议链路相连。
21.一种聚合通信方法,其特征在于,所述方法包括:
加速器向至少一个交换平面发送聚合请求,所述聚合请求用于指示执行聚合通信操作,所述加速器用于执行计算任务,所述交换平面中部署有聚合通信模块,所述聚合通信模块用于支持所述交换平面执行所述聚合通信操作;
所述加速器从所述至少一个交换平面接收所述聚合通信操作的聚合结果,所述聚合结果由所述至少一个交换平面中部署的至少一个聚合通信模块代理至少一个加速器执行所述聚合通信操作得到;
其中,所述聚合通信模块用于实现同一设备内的多个加速器之间的所述聚合通信操作;或,用于实现不同设备之间的聚合通信操作原语多个步骤的控制逻辑。
22.根据权利要求21所述的方法,其特征在于,所述聚合请求是通过专有协议链路发送的,所述加速器向至少一个交换平面发送聚合请求之前,所述方法还包括:
所述加速器与所述至少一个交换平面建立所述专有协议链路。
23.一种聚合通信方法,其特征在于,所述方法包括:
交换平面从至少一个加速器接收聚合请求,所述聚合请求用于指示执行聚合通信操作,所述加速器用于执行计算任务,所述交换平面中部署有聚合通信模块,所述聚合通信模块用于支持所述交换平面执行所述聚合通信操作;
所述交换平面响应于所述聚合请求,通过所述聚合通信模块代理所述至少一个加速器执行所述聚合通信操作,得到聚合结果;
所述交换平面向所述至少一个加速器发送所述聚合结果;
其中,所述聚合通信模块用于实现同一设备内的多个加速器之间的所述聚合通信操作;或,用于实现不同设备之间的聚合通信操作原语多个步骤的控制逻辑。
24.根据权利要求23所述的方法,其特征在于,所述交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果,包括:
所述交换平面通过专有协议链路从所述至少一个加速器接收第一数据;
所述交换平面根据所述第一数据执行所述聚合通信操作,得到所述聚合结果。
25.根据权利要求23或24所述的方法,其特征在于,所述交换平面响应于所述聚合请求,执行所述聚合通信操作得到聚合结果,包括:
所述交换平面通过标准协议链路从第二节点设备接收第二数据;
所述交换平面根据所述第二数据执行所述聚合通信操作,得到所述聚合结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011057768.4A CN114363248B (zh) | 2020-09-29 | 2020-09-29 | 计算系统、加速器、交换平面及聚合通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011057768.4A CN114363248B (zh) | 2020-09-29 | 2020-09-29 | 计算系统、加速器、交换平面及聚合通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114363248A CN114363248A (zh) | 2022-04-15 |
CN114363248B true CN114363248B (zh) | 2023-04-07 |
Family
ID=81089708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011057768.4A Active CN114363248B (zh) | 2020-09-29 | 2020-09-29 | 计算系统、加速器、交换平面及聚合通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114363248B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277454B (zh) * | 2022-07-28 | 2023-10-24 | 中国人民解放军国防科技大学 | 用于分布式深度学习训练的聚合通信方法 |
CN116366467B (zh) * | 2023-05-29 | 2023-08-08 | 北京大学 | 服务器无感知的分布式训练软件定义聚合通信框架和方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597055A (zh) * | 2020-07-24 | 2020-08-28 | 北京一流科技有限公司 | 分布式数据处理系统、分布式计算任务部署系统及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2722767B1 (en) * | 2012-10-16 | 2018-03-21 | Solarflare Communications Inc | Encapsulated accelerator |
US10284383B2 (en) * | 2015-08-31 | 2019-05-07 | Mellanox Technologies, Ltd. | Aggregation protocol |
JP6695973B2 (ja) * | 2016-06-28 | 2020-05-20 | 株式会社日立製作所 | 計算機システム及びデータベース管理方法 |
US10362149B2 (en) * | 2016-12-30 | 2019-07-23 | Intel Corporation | Intelligent packet aggregation |
US10728091B2 (en) * | 2018-04-04 | 2020-07-28 | EMC IP Holding Company LLC | Topology-aware provisioning of hardware accelerator resources in a distributed environment |
US11271775B2 (en) * | 2018-06-29 | 2022-03-08 | Intel Corporation | Technologies for hairpinning network traffic |
CN110795228B (zh) * | 2018-08-03 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 用于训练深度学习模型的方法和制品、以及计算系统 |
US20200106828A1 (en) * | 2018-10-02 | 2020-04-02 | Mellanox Technologies, Ltd. | Parallel Computation Network Device |
CN111275173B (zh) * | 2020-02-12 | 2023-08-04 | 字节跳动有限公司 | 一种神经网络训练方法、装置及其设备 |
-
2020
- 2020-09-29 CN CN202011057768.4A patent/CN114363248B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597055A (zh) * | 2020-07-24 | 2020-08-28 | 北京一流科技有限公司 | 分布式数据处理系统、分布式计算任务部署系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114363248A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110233798B (zh) | 数据处理方法、装置及系统 | |
CN114756340A (zh) | 算力调度系统、方法、装置和存储介质 | |
US9660864B2 (en) | Staged port initiation of inter switch links | |
CN114363248B (zh) | 计算系统、加速器、交换平面及聚合通信方法 | |
US20180013697A1 (en) | Software defined visibility fabric | |
JP7092813B2 (ja) | パケット伝送方法及び装置 | |
EP3855690A1 (en) | Network element supporting flexible data reduction operations | |
EP3560148B1 (en) | Database functions-defined network switch | |
CN115426327B (zh) | 算力调度方法、装置、电子设备和存储介质 | |
CN116055426B (zh) | 用于多绑定模式下流量卸载转发的方法、设备及介质 | |
CN115514651B (zh) | 基于软件定义层叠网的云边数据传输路径规划方法及系统 | |
CN104639437A (zh) | 堆叠系统中广播报文的转发方法及装置 | |
CN114945032A (zh) | 电力物联网终端数据接入系统、方法、装置、设备及介质 | |
CN116455817A (zh) | 一种软件定义云网融合架构及路由实现方法 | |
CN113395183B (zh) | 网络仿真平台vlan互联的虚拟节点调度方法与系统 | |
US11729263B2 (en) | Methods, apparatus and systems for cloud native application multi-factor load balancing | |
US20220385577A1 (en) | Switch-based workload distribution for virtualized rans | |
CN105049481A (zh) | 一种支持多异构系统智能交互的方法 | |
CN113170001A (zh) | 适配在网关上执行的软件应用程序 | |
CN115174654B (zh) | 一种基于FPGA和InfiniBand网络的异地通信方法及系统 | |
CN113630330B (zh) | 软件定义网络多控制器负载均衡方法及系统 | |
WO2024041572A1 (zh) | 业务处理方法、装置、设备、介质及程序产品 | |
CN118282851B (zh) | 用于网络控制器边带接口协议的配置方法、设备及介质 | |
CN116319380B (zh) | 基于云原生平台及用户态交换机的网络仿真方法及系统 | |
CN113678115B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |