一种分布式异构加速平台通信方法、系统、设备及介质转让专利
申请号 : CN202111495314.X
文献号 : CN113900982B
文献日 : 2022-03-08
发明人 : 阚宏伟 , 李仁刚 , 王彦伟 , 郝锐 , 王江为 , 宿栋栋 , 朱克峰 , 杨乐
申请人 : 苏州浪潮智能科技有限公司
摘要 :
权利要求 :
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任一项所述的分布式异构加速平台通信方法。
说明书 :
一种分布式异构加速平台通信方法、系统、设备及介质
技术领域
背景技术
interconnect express,是一种高速串行计算机扩展总线标准)接口、10G或者100G网络接
口,用于构建分布式的异构加速平台。在诸如人工智能和高性能异构加速应用中,经常需要
多块加速器板卡通过协作分工实现一个异构加速任务,因此,不同FPGA加速卡之间的通信
与数据传输尤为重要。现有技术中,通常通过网络接口进行不同加速卡之间数据传输,但是
使用网络接口存在诸如数据传输延迟大、网络丢包等问题,不能适应全部的场景。当前的各
类加速卡的PCIE接口大多是用于与主机(Host)进行数据交互,而板卡之间使用物理上独立
的高速自定义总线完成,对于在异构加速平台中如何利用PCIE接口进行不同的FPGA加速卡
之间数据交互与通信,目前还停留在以CPU为主导中转的架构方案阶段,降低了异构加速卡
间数据的传输效率。
发明内容
力。其具体方案如下:
速卡;
还包括:
关联的异构加速卡的唯一标识号。
字段、操作地址字段、数据大小字段、数据字段,得到所述目标数据包;
作。
一数据长度将所述数据字段包含的内容写入本地;
二数据长度读取本地对应的数据以生成处理层数据包,并将所述处理层数据包发送给所述
第一目标异构加速卡。
的数据包格式生成目标数据包,然后通过PCIE接口将所述目标数据包发送给所述第二目标
异构加速卡;
目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生成目标数据
包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过所述第二目
标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行相应的读操
作或写操作,以完成所述协同加速任务。由上可见,本实施例中通过预先配置的协同加速任
务对应的信息表,第一目标异构加速卡即数据发送端,通过根据信息表确定出第二目标异
构加速卡,并按照预先定义的数据包格式生成目标数据包,然后将目标数据包通过PCIE接
口发送给第二目标异构加速卡,第二目标异构加速卡再按照数据包格式解析目标数据包然
后执行相应的操作,由此利用第一目标异构加速卡和第二目标异构加速卡均包含PCIE接口
的特性,通过预设的数据包格式进行封包解包,利用PCIE接口具有带宽大,传输数据延迟
小,传输数据私密可靠性高的特点,仅根据信息表在没有CPU介入的情况下异构加速板卡之
间主动发起读写操作,通过设计自定义的数据包格式,实现系统内多个异构加速卡之间自
发的数据通信,实现分布式的异构加速计算任务,完成多块异构加速卡分工共同实施一个
异构加速任务。
附图说明
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
具体实施方式
仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术
人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
异构加速平台通信方法,能够实现多个异构加速卡之间自发的数据通信,提高分布式的异
构加速计算的能力。
标异构加速卡。
构加速平台中确定出第二目标异构加速卡。可以理解的是,上述第一目标异构加速卡和上
述第二目标异构加速卡为对分布式异构加速平台内的多个异构加速卡的泛指,第一目标异
构加速卡为单次数据传输的发送端,第二目标异构加速卡为相应的接收端。其中,上述信息
表可以是预先存储于上述第一目标异构加速卡内的,也可以是预先存储在面向分布式异构
加速平台内的所有异构加速卡的公共数据库。
前,还可以包括:根据所述协同加速任务对应的任务信息,为所述分布式异构加速平台内的
每个异构加速卡配置各自的信息表;所述信息表包括板卡查找表和协同加速参数表;在所
述信息表配置完成后,向所述分布式异构加速平台发起协同加速任务启动命令。即在启动
协同加速任务之前,根据协同加速任务对应的任务信息为分布式异构加速平台内的每个异
构加速卡配置各自的信息表,信息表包括板卡查找表和协同加速参数表,其中,板卡查找表
内存有上述分布式异构加速平台内所有异构加速卡的参数信息,上述协同加速参数表内存
有与上述协同加速任务对应的关联信息。
号、设备号和功能号;为所述分布式异构加速平台内的每个异构加速卡设置一个唯一标识
号,基于所述身份信息和所述唯一标识号得到每个所述异构加速卡对应的参数信息;基于
所有所述异构加速卡对应的参数信息,为每个所述异构加速卡配置所述板卡查找表。可以
理解的是,根据PCIE协议,PCIE系统在上电初始化时会给每一个异构加速卡分配在系统的
中身份信息(BDF信息),包括总线号(bus)、设备号(device)和功能号(Function)。从而主机
端获取PCIE系统为每个异构加速卡分配的身份信息,并为系统中的每个异构加速卡设置一
个标识号,记录为卡ID信息。用来作为异构加速卡的身份识别,ID信息可以采用从0开始累
加1的方式实施,但在当前分布式异构加速平台内需要是唯一的。
加速信息表;所述协同加速信息表包含本次协同加速任务对应的参与信息、启动信息以及
存在关联的异构加速卡的唯一标识号。即协同加速信息表,用来记录本加速卡是否参与此
次协同异构加速,以及启动信息,还有本卡本地异构加速操作完成后数据传向下一个板卡
的ID信息。协同加速信息表由Enable、Start、IDs组成。参与信息(Enable)、(Start)、存在关
联的异构加速卡的唯一标识号(IDs);Enable即参与信息,表示本卡需要参与此次协同异构
加速,可以用0/1表示,0表示不需要响应;Start即启动信息,表示启动此次本卡的协同加速
操作,本卡开始参与加速动作(比如计算等操作);ID即存在关联的异构加速卡的唯一标识
号,包括但不限于一个异构加速卡ID,表示本卡在本地的加速操作结果需要传递给下一个
异构加速卡,以及继续进行后续异构加速动作。需要说明的是,上述协同加速任务的启动操
作和信息表的配置操作,具体可以由平台所在的主机端执行的,也可以是由其余主机端通
过网络执行的。
卡中,FPGA逻辑功能中设置有一个查找表逻辑模块,由FPGA的Ram或者寄存器资源实现,系
统上电后,这个查找表由主机端系统软件配置一次,配置的信息为系统中所有异构加速卡
的PCIE信息(比如标准的总线号、设备号、功能号)以及相对应自定义的卡ID信息。
2所示,以FPGA异构加速卡为例,在PCIE系统中,FPGA异构加速卡1…n通过自身的PCIE接口
挂接在PCIESwitch(交换机)上,PCIESwitch是PCIE系统里一种中转交换件。PCIE逻辑具备
支持点对点通信,PCIESwitch也支持点对点通信(peertopeer),即支持FPGA加速卡1与其余
FPGA加速卡之间的通信。
包格式内的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型字段、操作地
址字段、数据大小字段、数据字段,得到所述目标数据包;其中,所述源ID字段用于存储所述
第一目标异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的
唯一标识号,所述操作类型包括读操作和写操作。
传输的数据为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(即数据字段)为读写操作的数据。
荷字段;判断所述有效载荷字段内的所述目标ID字段存储的参数信息与本地的唯一标识号
是否一致;若一致,则确定出所述有效载荷字段的操作类型字段对应的操作类型;根据所述
有效载荷字段的操作地址字段、数据大小字段和数据字段,按照所述操作类型对应的操作
方式执行相应的操作。
操作,则根据所述操作地址字段确定出写入的第一起始地址,并根据所述数据大小字段确
定出第一数据长度,然后按照所述第一起始地址和所述第一数据长度将所述数据字段包含
的内容写入本地;若所述操作类型为读操作,则根据所述操作地址字段确定出读取的第二
起始地址,并根据所述数据大小字段确定出第二数据长度,然后按照所述第二起始地址和
所述第二数据长度读取本地对应的数据以生成处理层数据包,并将所述处理层数据包发送
给所述第一目标异构加速卡。
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卡间数
据读写操作。
确定出第二目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生
成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过
所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行
相应的读操作或写操作,以完成所述协同加速任务。由上可见,本实施例中通过预先配置的
协同加速任务对应的信息表,第一目标异构加速卡即数据发送端,通过根据信息表确定出
第二目标异构加速卡,并按照预先定义的数据包格式生成目标数据包,然后将目标数据包
通过PCIE接口发送给第二目标异构加速卡,第二目标异构加速卡再按照数据包格式解析目
标数据包然后执行相应的操作,由此利用第一目标异构加速卡和第二目标异构加速卡均包
含PCIE接口的特性,通过预设的数据包格式进行封包解包,利用PCIE接口具有带宽大,传输
数据延迟小,传输数据私密可靠性高的特点,仅根据信息表在没有CPU介入的情况下异构加
速板卡之间主动发起读写操作,通过设计自定义的数据包格式,实现系统内多个异构加速
卡之间自发的数据通信,实现分布式的异构加速计算任务,完成多块异构加速卡分工共同
实施一个异构加速任务。
加速平台中实现分布式多板协同解决方案。在不增加系统布局和结构的前提下,满足人工
智能或高性能异构加速计算等领域实际的需求,有非常珍贵的现实意义。
义的数据包格式生成目标数据包,然后通过PCIE接口将所述目标数据包发送给所述第二目
标异构加速卡;
确定出第二目标异构加速卡;通过所述第一目标异构加速卡根据预先定义的数据包格式生
成目标数据包,并通过PCIE接口将所述目标数据包发送给所述第二目标异构加速卡;通过
所述第二目标异构加速卡根据所述数据包格式解析所述目标数据包,并根据解析结果执行
相应的读操作或写操作,以完成所述协同加速任务。由上可见,本实施例中通过预先配置的
协同加速任务对应的信息表,第一目标异构加速卡即数据发送端,通过根据信息表确定出
第二目标异构加速卡,并按照预先定义的数据包格式生成目标数据包,然后将目标数据包
通过PCIE接口发送给第二目标异构加速卡,第二目标异构加速卡再按照数据包格式解析目
标数据包然后执行相应的操作,由此利用第一目标异构加速卡和第二目标异构加速卡均包
含PCIE接口的特性,通过预设的数据包格式进行封包解包,利用PCIE接口具有带宽大,传输
数据延迟小,传输数据私密可靠性高的特点,仅根据信息表在没有CPU介入的情况下异构加
速板卡之间主动发起读写操作,通过设计自定义的数据包格式,实现系统内多个异构加速
卡之间自发的数据通信,实现分布式的异构加速计算任务,完成多块异构加速卡分工共同
实施一个异构加速任务。
速参数表;在所述信息表配置完成后,向所述分布式异构加速平台发起协同加速任务启动
命令。
数信息;
的参与信息、启动信息以及存在关联的异构加速卡的唯一标识号。
的有效载荷字段进行填充,以配置源ID字段、目标ID字段、操作类型字段、操作地址字段、数
据大小字段、数据字段,得到所述目标数据包;其中,所述源ID字段用于存储所述第一目标
异构加速卡的唯一标识号,所述目标ID字段用于存储所述第二目标异构加速卡的唯一标识
号,所述操作类型包括读操作和写操作。
存储的参数信息与本地的唯一标识号是否一致;若一致,则确定出所述有效载荷字段的操
作类型字段对应的操作类型;根据所述有效载荷字段的操作地址字段、数据大小字段和数
据字段,按照所述操作类型对应的操作方式执行相应的操作。
字段确定出第一数据长度,然后按照所述第一起始地址和所述第一数据长度将所述数据字
段包含的内容写入本地;以及,用于若所述操作类型为读操作,则根据所述操作地址字段确
定出读取的第二起始地址,并根据所述数据大小字段确定出第二数据长度,然后按照所述
第二起始地址和所述第二数据长度读取本地对应的数据以生成处理层数据包,并将所述处
理层数据包发送给所述第一目标异构加速卡。
信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载
并执行,以实现前述任一实施例公开的分布式异构加速平台通信方法中的相关步骤。
用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获
取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,
在此不进行具体限定。
等,存储方式可以是短暂存储或者永久存储。
Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由
电子设备20执行的分布式异构加速平台通信方法的计算机程序之外,还可以进一步包括能
够用于完成其他特定工作的计算机程序。
实施例公开的分布式异构加速平台通信方法步骤。
统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分
说明即可。
储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术
领域内所公知的任意其它形式的存储介质中。
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人
员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明
书内容不应理解为对本发明的限制。