一种分布式异构加速平台通信方法、系统、设备及介质转让专利

申请号 : CN202111495314.X

文献号 : CN113900982B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阚宏伟李仁刚王彦伟郝锐王江为宿栋栋朱克峰杨乐

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请公开了一种分布式异构加速平台通信方法、系统、设备及介质。该方法包括:在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务。能够实现多个异构加速卡之间自发的数据通信,提高分布式的异构加速计算的能力。

权利要求 :

1.一种分布式异构加速平台通信方法,其特征在于,包括:在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目标异构加速卡;

通过所述第一目标异构加速卡根据预先定义的数据包格式生成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;

通过所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务;

其中,所述根据预先定义的数据包格式生成目标数据包,包括:按照PCIE的处理层数据包格式进行组包,并按照所述预先定义的数据包格式对所述处理层数据包格式内的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型字段、操作地址字段、数据大小字段、数据字段,得到所述目标数据包;

其中,所述源ID字段用于存储所述第一目标异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的唯一标识号,所述操作类型包括读操作和写操作。

2.根据权利要求1所述的分布式异构加速平台通信方法,其特征在于,所述分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目标异构加速卡之前,还包括:根据所述协同加速任务对应的任务信息,为所述分布式异构加速平台内的每个异构加速卡配置各自的信息表;所述信息表包括板卡查找表和协同加速参数表;

在所述信息表配置完成后,向所述分布式异构加速平台发起协同加速任务启动命令。

3.根据权利要求2所述的分布式异构加速平台通信方法,其特征在于,为所述分布式异构加速平台内的每个异构加速卡配置板卡查找表,包括:获取PCIE系统为每个所述异构加速卡分配的身份信息;所述身份信息包括总线号、设备号和功能号;

为所述分布式异构加速平台内的每个异构加速卡设置一个唯一标识号,基于所述身份信息和所述唯一标识号得到每个所述异构加速卡对应的参数信息;

基于所有所述异构加速卡对应的参数信息,为每个所述异构加速卡配置所述板卡查找表。

4.根据权利要求3所述的分布式异构加速平台通信方法,其特征在于,为所述分布式异构加速平台内的每个异构加速卡配置协同加速参数表,包括:根据所述协同加速任务对应的任务信息,为所述异构加速卡配置对应的协同加速信息表;所述协同加速信息表包含本次协同加速任务对应的参与信息、启动信息以及存在关联的异构加速卡的唯一标识号。

5.根据权利要求1所述的分布式异构加速平台通信方法,其特征在于,所述根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,包括:根据所述数据包格式解析所述目标数据包的有效载荷字段;

判断所述有效载荷字段内的所述目标ID字段存储的参数信息与本地的唯一标识号是否一致;

若一致,则确定出所述有效载荷字段的操作类型字段对应的操作类型;

根据所述有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作方式执行相应的操作。

6.根据权利要求5所述的分布式异构加速平台通信方法,其特征在于,所述根据所述有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作方式执行相应的操作,包括:

若所述操作类型为写操作,则根据所述操作地址字段确定出写入的第一起始地址,并根据所述数据大小字段确定出第一数据长度,然后按照所述第一起始地址和所述第一数据长度将所述数据字段包含的内容写入本地;

若所述操作类型为读操作,则根据所述操作地址字段确定出读取的第二起始地址,并根据所述数据大小字段确定出第二数据长度,然后按照所述第二起始地址和所述第二数据长度读取本地对应的数据以生成处理层数据包,并将所述处理层数据包发送给所述第一目标异构加速卡。

7.一种分布式异构加速平台通信系统,其特征在于,包括:第一目标异构加速卡,用于在启动协同加速任务后,通过查询与所述协同加速任务对应的信息表,从分布式异构加速平台中确定出第二目标异构加速卡,并根据预先定义的数据包格式生成目标数据包,然后通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;

所述第二目标异构加速卡,用于根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务;

其中,所述第一目标异构加速卡还用于按照PCIE的处理层数据包格式进行组包,并按照所述预先定义的数据包格式对所述处理层数据包格式内的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型字段、操作地址字段、数据大小字段、数据字段,得到所述目标数据包;

其中,所述源ID字段用于存储所述第一目标异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的唯一标识号,所述操作类型包括读操作和写操作。

8.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的分布式异构加速平台通信方法。

9.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至6任一项所述的分布式异构加速平台通信方法。

说明书 :

一种分布式异构加速平台通信方法、系统、设备及介质

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种分布式异构加速平台通信方法、系统、设备及介质。

背景技术

[0002] 目前,异构加速卡在数据中心被大量使用,例如,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)异构加速卡配有标准的PCIE(peripheral component 
interconnect express,是一种高速串行计算机扩展总线标准)接口、10G或者100G网络接
口,用于构建分布式的异构加速平台。在诸如人工智能和高性能异构加速应用中,经常需要
多块加速器板卡通过协作分工实现一个异构加速任务,因此,不同FPGA加速卡之间的通信
与数据传输尤为重要。现有技术中,通常通过网络接口进行不同加速卡之间数据传输,但是
使用网络接口存在诸如数据传输延迟大、网络丢包等问题,不能适应全部的场景。当前的各
类加速卡的PCIE接口大多是用于与主机(Host)进行数据交互,而板卡之间使用物理上独立
的高速自定义总线完成,对于在异构加速平台中如何利用PCIE接口进行不同的FPGA加速卡
之间数据交互与通信,目前还停留在以CPU为主导中转的架构方案阶段,降低了异构加速卡
间数据的传输效率。

发明内容

[0003] 有鉴于此,本发明的目的在于提供一种分布式异构加速平台通信方法、系统、设备及介质,能够实现多个异构加速卡之间自发的数据通信,提高分布式的异构加速计算的能
力。其具体方案如下:
[0004] 第一方面,本申请公开了一种分布式异构加速平台通信方法,包括:
[0005] 在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目标异构加
速卡;
[0006] 通过所述第一目标异构加速卡根据预先定义的数据包格式生成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;
[0007] 通过所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务。
[0008] 可选的,所述分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目标异构加速卡之前,
还包括:
[0009] 根据所述协同加速任务对应的任务信息,为所述分布式异构加速平台内的每个异构加速卡配置各自的信息表;所述信息表包括板卡查找表和协同加速参数表;
[0010] 在所述信息表配置完成后,向所述分布式异构加速平台发起协同加速任务启动命令。
[0011] 可选的,为所述分布式异构加速平台内的每个异构加速卡配置板卡查找表,包括:
[0012] 获取PCIE系统为每个所述异构加速卡分配的身份信息;所述身份信息包括总线号、设备号和功能号;
[0013] 为所述分布式异构加速平台内的每个异构加速卡设置一个唯一标识号,基于所述身份信息和所述唯一标识号得到每个所述异构加速卡对应的参数信息;
[0014] 基于所有所述异构加速卡对应的参数信息,为每个所述异构加速卡配置所述板卡查找表。
[0015] 可选的,为所述分布式异构加速平台内的每个异构加速卡配置协同加速参数表,包括:
[0016] 根据所述协同加速任务对应的任务信息,为所述异构加速卡配置对应的协同加速信息表;所述协同加速信息表包含本次协同加速任务对应的参与信息、启动信息以及存在
关联的异构加速卡的唯一标识号。
[0017] 可选的,所述根据预先定义的数据包格式生成目标数据包,包括:
[0018] 按照PCIE的处理层数据包格式进行组包,并按照所述预先定义的数据包格式对所述处理层数据包格式内的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型
字段、操作地址字段、数据大小字段、数据字段,得到所述目标数据包;
[0019] 其中,所述源ID字段用于存储所述第一目标异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的唯一标识号,所述操作类型包括读操作和写操
作。
[0020] 可选的,所述根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,包括:
[0021] 根据所述数据包格式解析所述目标数据包的有效载荷字段;
[0022] 判断所述有效载荷字段内的所述目标ID字段存储的参数信息与本地的唯一标识号是否一致;
[0023] 若一致,则确定出所述有效载荷字段的操作类型字段对应的操作类型;
[0024] 根据所述有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作方式执行相应的操作。
[0025] 可选的,所述根据所述有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作方式执行相应的操作,包括:
[0026] 若所述操作类型为写操作,则根据所述操作地址字段确定出写入的第一起始地址,并根据所述数据大小字段确定出第一数据长度,然后按照所述第一起始地址和所述第
一数据长度将所述数据字段包含的内容写入本地;
[0027] 若所述操作类型为读操作,则根据所述操作地址字段确定出读取的第二起始地址,并根据所述数据大小字段确定出第二数据长度,然后按照所述第二起始地址和所述第
二数据长度读取本地对应的数据以生成处理层数据包,并将所述处理层数据包发送给所述
第一目标异构加速卡。
[0028] 第二方面,本申请公开了一种分布式异构加速平台通信系统,包括:
[0029] 第一目标异构加速卡,用于在启动协同加速任务后,通过查询与所述协同加速任务对应的信息表,从分布式异构加速平台中确定出第二目标异构加速卡,并根据预先定义
的数据包格式生成目标数据包,然后通过PCIE接口将所述目标数据包发送给所述第二目标
异构加速卡;
[0030] 所述第二目标异构加速卡,用于根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务。
[0031] 第三方面,本申请公开了一种电子设备,包括:
[0032] 存储器,用于保存计算机程序;
[0033] 处理器,用于执行所述计算机程序,以实现前述的分布式异构加速平台通信方法。
[0034] 第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的分布式异构加速平台通信方法。
[0035] 本申请中,在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二
目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生成目标数据
包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过所述第二目
标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操
作或写操作,以完成所述协同加速任务。由上可见,本实施例中通过预先配置的协同加速任
务对应的信息表,第一目标异构加速卡即数据发送端,通过根据信息表确定出第二目标异
构加速卡,并按照预先定义的数据包格式生成目标数据包,然后将目标数据包通过PCIE接
口发送给第二目标异构加速卡,第二目标异构加速卡再按照数据包格式解析目标数据包然
后执行相应的操作,由此利用第一目标异构加速卡和第二目标异构加速卡均包含PCIE接口
的特性,通过预设的数据包格式进行封包解包,利用PCIE接口具有带宽大,传输数据延迟
小,传输数据私密可靠性高的特点,仅根据信息表在没有CPU介入的情况下异构加速板卡之
间主动发起读写操作,通过设计自定义的数据包格式,实现系统内多个异构加速卡之间自
发的数据通信,实现分布式的异构加速计算任务,完成多块异构加速卡分工共同实施一个
异构加速任务。

附图说明

[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
[0037] 图1为本申请提供的一种分布式异构加速平台通信方法流程图;
[0038] 图2为本申请提供的一种具体的分布式异构加速平台通信方法流程图;
[0039] 图3为本申请提供的一种具体的分布式异构加速平台通信方法流程图;
[0040] 图4为本申请提供的一种分布式异构加速平台通信系统结构示意图;
[0041] 图5为本申请提供的一种电子设备结构图。

具体实施方式

[0042] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅
仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术
人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 现有技术中,常通过网络接口进行不同加速卡之间数据传输,但是使用网络接口存在诸如数据传输延迟大、网络丢包等问题。为克服上述技术问题,本申请提出一种分布式
异构加速平台通信方法,能够实现多个异构加速卡之间自发的数据通信,提高分布式的异
构加速计算的能力。
[0044] 本申请实施例公开了一种分布式异构加速平台通信方法,参见图1所示,该方法可以包括以下步骤:
[0045] 步骤S11:在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目
标异构加速卡。
[0046] 本实施例中,在向分布式异构加速平台启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与上述协同加速任务对应的信息表,从上述分布式异
构加速平台中确定出第二目标异构加速卡。可以理解的是,上述第一目标异构加速卡和上
述第二目标异构加速卡为对分布式异构加速平台内的多个异构加速卡的泛指,第一目标异
构加速卡为单次数据传输的发送端,第二目标异构加速卡为相应的接收端。其中,上述信息
表可以是预先存储于上述第一目标异构加速卡内的,也可以是预先存储在面向分布式异构
加速平台内的所有异构加速卡的公共数据库。
[0047] 本实施例中,所述分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中确定出第二目标异构加速卡之
前,还可以包括:根据所述协同加速任务对应的任务信息,为所述分布式异构加速平台内的
每个异构加速卡配置各自的信息表;所述信息表包括板卡查找表和协同加速参数表;在所
述信息表配置完成后,向所述分布式异构加速平台发起协同加速任务启动命令。即在启动
协同加速任务之前,根据协同加速任务对应的任务信息为分布式异构加速平台内的每个异
构加速卡配置各自的信息表,信息表包括板卡查找表和协同加速参数表,其中,板卡查找表
内存有上述分布式异构加速平台内所有异构加速卡的参数信息,上述协同加速参数表内存
有与上述协同加速任务对应的关联信息。
[0048] 本实施例中,为所述分布式异构加速平台内的每个异构加速卡配置板卡查找表,可以包括:获取PCIE系统为每个所述异构加速卡分配的身份信息;所述身份信息包括总线
号、设备号和功能号;为所述分布式异构加速平台内的每个异构加速卡设置一个唯一标识
号,基于所述身份信息和所述唯一标识号得到每个所述异构加速卡对应的参数信息;基于
所有所述异构加速卡对应的参数信息,为每个所述异构加速卡配置所述板卡查找表。可以
理解的是,根据PCIE协议,PCIE系统在上电初始化时会给每一个异构加速卡分配在系统的
中身份信息(BDF信息),包括总线号(bus)、设备号(device)和功能号(Function)。从而主机
端获取PCIE系统为每个异构加速卡分配的身份信息,并为系统中的每个异构加速卡设置一
个标识号,记录为卡ID信息。用来作为异构加速卡的身份识别,ID信息可以采用从0开始累
加1的方式实施,但在当前分布式异构加速平台内需要是唯一的。
[0049] 本实施例中,为所述分布式异构加速平台内的每个异构加速卡配置协同加速参数表,可以包括:根据所述协同加速任务对应的任务信息,为所述异构加速卡配置对应的协同
加速信息表;所述协同加速信息表包含本次协同加速任务对应的参与信息、启动信息以及
存在关联的异构加速卡的唯一标识号。即协同加速信息表,用来记录本加速卡是否参与此
次协同异构加速,以及启动信息,还有本卡本地异构加速操作完成后数据传向下一个板卡
的ID信息。协同加速信息表由Enable、Start、IDs组成。参与信息(Enable)、(Start)、存在关
联的异构加速卡的唯一标识号(IDs);Enable即参与信息,表示本卡需要参与此次协同异构
加速,可以用0/1表示,0表示不需要响应;Start即启动信息,表示启动此次本卡的协同加速
操作,本卡开始参与加速动作(比如计算等操作);ID即存在关联的异构加速卡的唯一标识
号,包括但不限于一个异构加速卡ID,表示本卡在本地的加速操作结果需要传递给下一个
异构加速卡,以及继续进行后续异构加速动作。需要说明的是,上述协同加速任务的启动操
作和信息表的配置操作,具体可以由平台所在的主机端执行的,也可以是由其余主机端通
过网络执行的。
[0050] 上述异构加速卡可以为FPGA异构加速卡、GPU(graphics processing unit,图形处理器)异构加速卡或其他类型的异构加速卡。以FPGA异构加速卡为例,每个FPGA异构加速
卡中,FPGA逻辑功能中设置有一个查找表逻辑模块,由FPGA的Ram或者寄存器资源实现,系
统上电后,这个查找表由主机端系统软件配置一次,配置的信息为系统中所有异构加速卡
的PCIE信息(比如标准的总线号、设备号、功能号)以及相对应自定义的卡ID信息。
[0051] 步骤S12:通过所述第一目标异构加速卡根据预先定义的数据包格式生成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡。
[0052] 本实施例中,上述第一目标异构加速卡根据预先定义的数据包格式生成目标数据包,并通过PCIE接口将上述目标数据包发送给第二目标异构加速卡。可以理解的是,例如图
2所示,以FPGA异构加速卡为例,在PCIE系统中,FPGA异构加速卡1…n通过自身的PCIE接口
挂接在PCIESwitch(交换机)上,PCIESwitch是PCIE系统里一种中转交换件。PCIE逻辑具备
支持点对点通信,PCIESwitch也支持点对点通信(peertopeer),即支持FPGA加速卡1与其余
FPGA加速卡之间的通信。
[0053] 本实施例中,所述根据预先定义的数据包格式生成目标数据包,可以包括:按照PCIE的处理层数据包格式进行组包,并按照所述预先定义的数据包格式对所述处理层数据
包格式内的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型字段、操作地
址字段、数据大小字段、数据字段,得到所述目标数据包;其中,所述源ID字段用于存储所述
第一目标异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的
唯一标识号,所述操作类型包括读操作和写操作。
[0054] 可以理解的是,PCIE系统分为传输层、链路层、物理层。其中标准的传输层数据包格式为:HEADER、PAYLOAD、ECRC;HEADER是PCIE的数据头部,PAYLOAD(有效载荷字段)是PCIE
传输的数据为0‑4096bytes,ECRC是校验位。本实施例中,使用PAYLOAD的位置自定义用于通
信的数据包格式,具体包括Source ID、Destination ID、W/R、ADDR、LENGTH、DATA PAYLOAD;
Source ID(即源ID字段)与Destination ID(即目标ID字段)为发起操作的FPGA加速卡(主)
的ID号与被操作的FPGA加速卡(从)的ID号,比如FPGA加速卡1发起向FPGA加速卡2进行写操
作,那么FPGA加速卡1的ID为sourceID,FPGA加速卡2称为Destination ID;W/R(即操作类型
字段)为读写操作位,比如1表示写操作,0表示读操作; ADDR(即操作地址字段)为读写操作
的地址,表示从那个地址开始读写数据;LENGTH(即数据大小字段)为读写数据的大小,单位
字节;DATA PAYLOAD(即数据字段)为读写操作的数据。
[0055] 步骤S13:通过所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务。
[0056] 即第二目标异构加速卡接收到目标数据包后,根据封包时的数据包格式解析目标数据包,然后根据解析结果执行相应的读操作或写操作,以完成协同加速任务。
[0057] 本实施例中,所述根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,可以包括:根据所述数据包格式解析所述目标数据包的有效载
荷字段;判断所述有效载荷字段内的所述目标ID字段存储的参数信息与本地的唯一标识号
是否一致;若一致,则确定出所述有效载荷字段的操作类型字段对应的操作类型;根据所述
有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作
方式执行相应的操作。
[0058] 本实施例中,所述根据所述有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作方式执行相应的操作,可以包括:若所述操作类型为写
操作,则根据所述操作地址字段确定出写入的第一起始地址,并根据所述数据大小字段确
定出第一数据长度,然后按照所述第一起始地址和所述第一数据长度将所述数据字段包含
的内容写入本地;若所述操作类型为读操作,则根据所述操作地址字段确定出读取的第二
起始地址,并根据所述数据大小字段确定出第二数据长度,然后按照所述第二起始地址和
所述第二数据长度读取本地对应的数据以生成处理层数据包,并将所述处理层数据包发送
给所述第一目标异构加速卡。
[0059] 例如,平台内FPGA卡1向FPGA卡2发起读写操作,FPGA卡1称为主端,FPGA卡2成为从端。主端首先从信息表中,找到需要操作的FPGA卡2的ID信息,以及FPGA卡2在PCIE系统中的
PCIE信息(BDF信息),主端根据标准的PCIE TLP组包,其中PAYLOAD段使用自定义的信息填
充,向FPGA卡2发起PCIE TLP的传输;当FPGA卡2收到FPGA卡1发来的TLP数据包后,首先根据
自定义的数据格式(PAYLOAD段),解析数据,检验Destination ID信息是否为FPGA卡2的ID
信息,若是那么接收TLP数据包,若不是则不响应。若是FPGA卡1向FPGA卡2写操作,那么FPGA
卡2接收来自FPGA卡1写来的数据,根据起始地址、数据长度信息,将数据写入FPGA卡2中;若
是FPGA卡1向FPGA卡2读操作,那么FPGA卡2需要根据传来的起始地址与数据长度,从FPGA卡
2中读取数据,然后组包成TLP数据包FPGA卡2作为主端发回给FPGA卡1,即完成FPGA卡间数
据读写操作。
[0060] 由上可见,本实施例中在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中
确定出第二目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生
成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过
所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行
相应的读操作或写操作,以完成所述协同加速任务。由上可见,本实施例中通过预先配置的
协同加速任务对应的信息表,第一目标异构加速卡即数据发送端,通过根据信息表确定出
第二目标异构加速卡,并按照预先定义的数据包格式生成目标数据包,然后将目标数据包
通过PCIE接口发送给第二目标异构加速卡,第二目标异构加速卡再按照数据包格式解析目
标数据包然后执行相应的操作,由此利用第一目标异构加速卡和第二目标异构加速卡均包
含PCIE接口的特性,通过预设的数据包格式进行封包解包,利用PCIE接口具有带宽大,传输
数据延迟小,传输数据私密可靠性高的特点,仅根据信息表在没有CPU介入的情况下异构加
速板卡之间主动发起读写操作,通过设计自定义的数据包格式,实现系统内多个异构加速
卡之间自发的数据通信,实现分布式的异构加速计算任务,完成多块异构加速卡分工共同
实施一个异构加速任务。
[0061] 例如图3所示为本申请实施例公开的一种具体的分布式异构加速平台通信流程,可以包括以下步骤:
[0062] (1)复位上电,PCIE系统初始化,PCIE系统会给每个PCIE端(FPGA加速卡作为endpoint)分配BFD信息。进入(2);
[0063] (2)主机端软件配置一次板卡查找表,把系统中的FPGA加速卡的ID信息,以及在PCIE中的BFD信息配置到每个FPGA加速卡的查找表模块中。进入(3);
[0064] (3)是否需要多块加速卡协同配合实施同一异构加速任务,如果否,那么在3等待,如果是,那么进入(4);
[0065] (4)主机端配置协同加速信息表。进入(5);
[0066] (5)主机端发起启动协同加速任务命令。进入(6);
[0067] (6)多卡进行本卡的加速逻辑。进入(7);
[0068] (7)判断本卡是否完成本地的加速逻辑操作,若是(8),若否(9);
[0069] (8)多板卡间数据进行读写操作,进入(10);
[0070] (9)本卡本地进行加速逻辑操作,继续检查(7);
[0071] (10)判断是否完成本次协同异构加速任务操作,若是,那么(11),如否那么(6);
[0072] (11)完成一次多卡协同异构加速任务,进入(3)。
[0073] 可见,通过利用现有异构加速卡上的PCIE接口,基于常用的AI服务器中PCIE交换芯片技术, 通过使用自定义的数据包格式实现不同加速卡之间进行数据传输,从而在异构
加速平台中实现分布式多板协同解决方案。在不增加系统布局和结构的前提下,满足人工
智能或高性能异构加速计算等领域实际的需求,有非常珍贵的现实意义。
[0074] 相应的,本申请实施例还公开了一种分布式异构加速平台通信系统,参见图4所示,该系统包括:
[0075] 第一目标异构加速卡11,用于在启动协同加速任务后,通过查询与所述协同加速任务对应的信息表,从分布式异构加速平台中确定出第二目标异构加速卡,并根据预先定
义的数据包格式生成目标数据包,然后通过PCIE接口将所述目标数据包发送给所述第二目
标异构加速卡;
[0076] 所述第二目标异构加速卡12,用于根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操作或写操作,以完成所述协同加速任务。
[0077] 由上可见,本实施例中在启动协同加速任务后,分布式异构加速平台内的第一目标异构加速卡通过查询与所述协同加速任务对应的信息表,从所述分布式异构加速平台中
确定出第二目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生
成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过
所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行
相应的读操作或写操作,以完成所述协同加速任务。由上可见,本实施例中通过预先配置的
协同加速任务对应的信息表,第一目标异构加速卡即数据发送端,通过根据信息表确定出
第二目标异构加速卡,并按照预先定义的数据包格式生成目标数据包,然后将目标数据包
通过PCIE接口发送给第二目标异构加速卡,第二目标异构加速卡再按照数据包格式解析目
标数据包然后执行相应的操作,由此利用第一目标异构加速卡和第二目标异构加速卡均包
含PCIE接口的特性,通过预设的数据包格式进行封包解包,利用PCIE接口具有带宽大,传输
数据延迟小,传输数据私密可靠性高的特点,仅根据信息表在没有CPU介入的情况下异构加
速板卡之间主动发起读写操作,通过设计自定义的数据包格式,实现系统内多个异构加速
卡之间自发的数据通信,实现分布式的异构加速计算任务,完成多块异构加速卡分工共同
实施一个异构加速任务。
[0078] 在一些具体实施例中,所述分布式异构加速平台通信系统具体还可以包括:
[0079] 信息表配置单元,用于根据所述协同加速任务对应的任务信息,为所述分布式异构加速平台内的每个异构加速卡配置各自的信息表;所述信息表包括板卡查找表和协同加
速参数表;在所述信息表配置完成后,向所述分布式异构加速平台发起协同加速任务启动
命令。
[0080] 在一些具体实施例中,所述信息表配置单元具体还可以包括:
[0081] 身份信息获取单元,用于获取PCIE系统为每个所述异构加速卡分配的身份信息;所述身份信息包括总线号、设备号和功能号;
[0082] 唯一标识号生成单元,用于为所述分布式异构加速平台内的每个异构加速卡设置一个唯一标识号,基于所述身份信息和所述唯一标识号得到每个所述异构加速卡对应的参
数信息;
[0083] 板卡查找表配置单元,用于基于所有所述异构加速卡对应的参数信息,为每个所述异构加速卡配置所述板卡查找表。
[0084] 在一些具体实施例中,所述信息表配置单元具体还可以包括:
[0085] 协同加速信息表配置单元,用于根据所述协同加速任务对应的任务信息,为所述异构加速卡配置对应的协同加速信息表;所述协同加速信息表包含本次协同加速任务对应
的参与信息、启动信息以及存在关联的异构加速卡的唯一标识号。
[0086] 在一些具体实施例中,所述第一目标异构加速卡11具体还可以用于按照PCIE的处理层数据包格式进行组包,并按照所述预先定义的数据包格式对所述处理层数据包格式内
的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型字段、操作地址字段、数
据大小字段、数据字段,得到所述目标数据包;其中,所述源ID字段用于存储所述第一目标
异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的唯一标识
号,所述操作类型包括读操作和写操作。
[0087] 在一些具体实施例中,所述第二目标异构加速卡12具体还可以用于根据所述数据包格式解析所述目标数据包的有效载荷字段;判断所述有效载荷字段内的所述目标ID字段
存储的参数信息与本地的唯一标识号是否一致;若一致,则确定出所述有效载荷字段的操
作类型字段对应的操作类型;根据所述有效载荷字段的操作地址字段、数据大小字段和数
据字段,按照所述操作类型对应的操作方式执行相应的操作。
[0088] 在一些具体实施例中,所述第二目标异构加速卡12具体还可以用于若所述操作类型为写操作,则根据所述操作地址字段确定出写入的第一起始地址,并根据所述数据大小
字段确定出第一数据长度,然后按照所述第一起始地址和所述第一数据长度将所述数据字
段包含的内容写入本地;以及,用于若所述操作类型为读操作,则根据所述操作地址字段确
定出读取的第二起始地址,并根据所述数据大小字段确定出第二数据长度,然后按照所述
第二起始地址和所述第二数据长度读取本地对应的数据以生成处理层数据包,并将所述处
理层数据包发送给所述第一目标异构加速卡。
[0089] 进一步的,本申请实施例还公开了一种电子设备,参见图5所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
[0090] 图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通
信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载
并执行,以实现前述任一实施例公开的分布式异构加速平台通信方法中的相关步骤。
[0091] 本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适
用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获
取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,
在此不进行具体限定。
[0092] 另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括信息表在内的数据223
等,存储方式可以是短暂存储或者永久存储。
[0093] 其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、
Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由
电子设备20执行的分布式异构加速平台通信方法的计算机程序之外,还可以进一步包括能
够用于完成其他特定工作的计算机程序。
[0094] 进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一
实施例公开的分布式异构加速平台通信方法步骤。
[0095] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的系
统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分
说明即可。
[0096] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存
储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术
领域内所公知的任意其它形式的存储介质中。
[0097] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0098] 以上对本发明所提供的一种分布式异构加速平台通信方法、系统、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施
例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人
员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明
书内容不应理解为对本发明的限制。