CN117687943A - 一种加速设备、异构计算架构及数据处理方法 - Google Patents
一种加速设备、异构计算架构及数据处理方法 Download PDFInfo
- Publication number
- CN117687943A CN117687943A CN202410154212.9A CN202410154212A CN117687943A CN 117687943 A CN117687943 A CN 117687943A CN 202410154212 A CN202410154212 A CN 202410154212A CN 117687943 A CN117687943 A CN 117687943A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- forwarding
- data frame
- module
- 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.)
- Granted
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 154
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 230000003287 optical effect Effects 0.000 claims abstract description 107
- 238000004364 calculation method Methods 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 30
- 238000004458 analytical method Methods 0.000 claims description 22
- 230000009471 action Effects 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000009432 framing Methods 0.000 claims description 13
- 230000003139 buffering effect Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000008521 reorganization Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 30
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 16
- 239000000284 extract Substances 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000005441 aurora Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种加速设备、异构计算架构及数据处理方法,涉及数据处理领域,为解决异构计算架构中各个加速设备交互效率低的问题,该加速设备包括:存储模组、至少一个本地光口、与各个本地光口连接的外部路由模组、内部路由模组、计算模组。本发明能够同时进行多个加速设备之间的数据传输,光口的数据传输带宽较高,利用光口进行数据传输可以提高计算任务的协同完成效率。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种加速设备、异构计算架构及数据处理方法。
背景技术
随着人工智能的不断发展,CPU(Central Processing Unit,中央处理器)能够提供的算力与AI(Artificial Intelligence,人工智能)领域对于算力的需求之间的矛盾日益突出。传统单CPU计算架构存在算力不足的问题,异构计算架构应运而生,异构计算架构为CPU与GPU(Graphics Processing Unit,图形处理器)、FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)、ASIC(Application Specific Integrated Circuit,专用集成电路)中任一项或多项的组合。
为了获得足够的算力,通常在一台服务器上配备多张加速卡来共同完成计算任务,乃至扩展到多台服务器共同完成AI大模型的推理和计算任务。在多卡乃至多服务之间实现高效的数据传输是目前面临的一个比较重大的难题。目前加速卡之间的通信可以以主机内存为桥梁来实现,即当加速卡A的数据需要传输到加速卡B时,CPU首先将数据从加速卡A取出并存入主机内存中,然后再将数据从主机内存传输给加速卡B,这种方式显然效率比较低下。另一种比较高效的方式是使用PCIe(Peripheral Component InterconnectExpress,高速串行计算机扩展总线标准) P2P(Peer to Peer,点对点)技术,P2P通信是PCIe的一个特性,它允许两个PCIe设备之间直接进行数据传输,而无需主机内存作为临时存储,但由于P2P是基于PCIe的技术,其传输带宽也受PCIe技术的限制,而且多张加速卡是分时共用PCIe总线,所以并不能同时进行多张卡之间的数据传输。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种加速设备、异构计算架构及数据处理方法,能够同时进行多个加速设备之间的数据传输,光口的数据传输带宽较高,利用光口进行数据传输可以提高计算任务的协同完成效率。
为解决上述技术问题,本发明提供了一种加速设备,包括:
存储模组;
至少一个本地光口,各个所述本地光口与各个远端光口连接,所述远端光口为其他加速设备上的光口;
与各个所述本地光口连接的外部路由模组,用于接收所述本地光口和/或内部路由模组传输的待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧输出至对应的本地光口,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组;
所述内部路由模组,用于将所述待处理数据帧中的待计算数据写入所述存储模组并生成第一触发指令,当接收到转发指令,从所述存储模组中读取与所述转发指令对应的结果数据,将基于所述结果数据得到的待处理数据帧传输至所述外部路由模组;
计算模组,用于基于目标触发指令对所述存储模组中的待计算数据进行计算,得到结果数据后写入所述存储模组,并生成所述转发指令,所述目标触发指令为所述第一触发指令或主机基于当前计算任务生成的第二触发指令。
在一示例性实施例中,所述本地光口的数量为多个,所述外部路由模组包括与多个所述本地光口一一对应的外部路由模块,多个所述外部路由模块依次连接;
每个所述外部路由模块,用于接收与自身连接的所述本地光口和/或上级路由模块传输的待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧输出至对应的本地光口,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组,当所述待处理数据帧满足向内转发条件,将所述待处理数据帧输出至下级路由模块;当所述上级路由模块为所述内部路由模组时,所述下级路由模块为其他外部路由模块,当所述下级路由模块为所述内部路由模组时,所述上级路由模块为其他外部路由模块。
在一示例性实施例中,每个所述外部路由模块均包括第一接收端口、第二接收端口、第一转发端口和第二转发端口,所述第一转发端口及所述第一接收端口与自身一一对应的本地光口连接,所述第二转发端口与所述下级路由模块的第二接收端口连接,所述第二接收端口与所述上级路由模块的第二转发端口连接;
所述外部路由模块,具体用于通过所述第一接收端口和/或所述第二接收端口接收待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧通过所述第一转发端口输出,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组,当所述待处理数据帧满足向内转发条件,将所述待处理数据帧通过所述第二转发端口输出。
在一示例性实施例中,所述外部路由模块还用于对所述待处理数据帧进行解析,得到路由信息,基于所述路由信息判断所述待处理数据帧是否满足所述向外转发条件,和/或基于所述路由信息判断所述待处理数据帧是否满足所述向内转发条件,和/或基于所述路由信息判断所述待处理数据帧是否满足所述向内写入条件。
在一示例性实施例中,基于所述路由信息判断所述待处理数据帧是否满足所述向外转发条件的过程包括:
将所述路由信息与预设路由表中的规则进行匹配;
若存在匹配的有效规则,判定所述待处理数据帧满足所述向外转发条件;
所述预设路由表包括转发动作、转发状态以及目标加速设备的编号的对应关系,每一所述转发动作、所述转发状态以及所述目标加速设备的编号构成一条所述规则,所述有效规则为所述转发状态为有效状态的规则。
在一示例性实施例中,基于所述路由信息判断所述待处理数据帧是否满足所述向内转发条件的过程包括:
将所述路由信息与预设路由表中的规则进行匹配;
若不存在匹配的有效规则,判定所述待处理数据帧满足所述向内转发条件;
所述预设路由表包括转发动作、转发状态以及目标加速设备的编号的对应关系,每一所述转发动作、所述转发状态以及所述目标加速设备的编号构成一条所述规则,所述有效规则为所述转发状态为有效状态的规则。
在一示例性实施例中,基于所述路由信息判断所述待处理数据帧是否满足所述向内写入条件的过程包括:
判断所述路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为所述内部路由模组;
若判定与自身连接的下级路由模块为所述内部路由模组,判定所述待处理数据帧满足所述向内写入条件;
基于所述路由信息判断所述待处理数据帧是否满足所述向内转发条件的过程包括:
判断所述路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为所述内部路由模组;
若与自身连接的下级路由模块不为所述内部路由模组,判定所述待处理数据帧满足所述向内转发条件。
在一示例性实施例中,所述外部路由模块包括:
多个外部转发端口;
第一仲裁单元,用于当单独接收到所述本地光口输出的待处理数据帧时,将所述本地光口输出的待处理数据帧输出至第一解析单元,当单独接收到所述上级路由模块输出的待处理数据帧时,将所述上级路由模块输出的待处理数据帧输出至所述第一解析单元,当同时接收到所述本地光口输出的待处理数据帧和所述上级路由模块传输的待处理数据帧时,对两个所述待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出至所述第一解析单元;第一解析单元,用于从所述待处理数据帧中提取路由信息和数据包;
第一查表单元,用于将所述路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息;
第一缓存单元,用于缓存所述数据包;
第一重组单元,用于从所述第一缓存单元中取出所述数据包,将所述转发信息与所述数据包进行重组得到待转发数据帧;
第二仲裁单元,用于将所述待转发数据帧输出至与所述转发信息对应的外部转发端口进行转发,当所述转发信息对应的所述外部转发端口为与所述本地光口连接的外部转发端口,所述待转发数据帧为所述待输出数据帧。
在一示例性实施例中,基于匹配结果确定转发信息的过程包括:
当所述匹配结果为所述预设路由表中存在与所述路由信息对应的有效规则,确定所述转发信息为第一转发信息,所述第一转发信息对应的转发端口为与所述本地光口连接的转发端口;
当所述匹配结果为所述预设路由表中不存在与所述路由信息对应的有效规则,确定所述转发信息为第二转发信息,所述第二转发信息对应的转发端口为与下一级路由模块连接的转发端口。
在一示例性实施例中,将所述待处理数据帧中的待计算数据写入所述存储模组并生成第一触发指令的过程包括:
将所述待处理数据帧中的待计算数据写入所述存储模组;
判断是否将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组;
若是,生成第一触发指令;
若否,重复将所述待处理数据帧中的待计算数据写入所述存储模组的操作,直至将下一轮计算所需的所有所述待计算数据均写入所述存储模组。
在一示例性实施例中,所述内部路由模组还用于记录接收到的所述待处理数据帧的实际数量;
判断是否将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组的过程包括:
判断所述实际数量是否达到预设数量;
若是,判定将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组;
若否,判定未将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组。
在一示例性实施例中,所述计算模组还用于当完成预设轮数的所述计算任务,生成中断指令,以便所述主机在接收到所述中断指令后从所述存储模组中获取最后一轮计算任务的结果数据。
在一示例性实施例中,所述内部路由模组包括:
拆帧单元,用于当接收到所述转发指令,获取所述转发指令中的第一帧头信息并输出至指令生成单元,当接收到外部路由模组传输的待处理数据帧,获取所述待处理数据帧中的第二帧头信息和待计算数据,将所述第二帧头信息输出至所述指令生成单元;
所述指令生成单元,用于根据所述第一帧头信息生成第一访问指令,根据所述第二帧头信息生成第二访问指令;
接口转换单元,用于当接收到所述第一访问指令,从所述存储模组中读取与所述第一访问指令对应的初始结果数据,对所述初始结果数据进行第一协议转换,当接收到所述第二访问指令,对所述待计算数据进行第二协议转换,按所述第二访问指令将所述第二协议转换后的待计算数据写入所述存储模组;
组帧单元,用于将所述第一协议转换后的结果数据封装为待处理数据帧输出至所述外部路由模组。
在一示例性实施例中,所述内部路由模组还包括内部路由模块,所述内部路由模块包括:多个内部转发端口;多个所述内部转发端口包括与所述拆帧单元连接的第一内部转发端口,还包括与外部路由模组连接的第二内部转发端口;
第三仲裁单元,用于当单独接收到外部路由模组输出的待处理数据帧,将所述外部路由模组输出的待处理数据帧输出至第二解析单元,当单独接收到所述组帧单元输出的待处理数据帧,将所述组帧单元输出的待处理数据帧输出至所述第二解析单元,当同时接收到所述外部路由模组输出的待处理数据帧和所述组帧单元输出的待处理数据帧,对两个所述待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出至所述第二解析单元;
所述第二解析单元,用于从所述待处理数据帧中提取路由信息和数据包;
第二查表单元,用于将所述路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息;
第二缓存单元,用于缓存所述数据包;
第二重组单元,用于从所述第二缓存单元中取出所述数据包,将所述转发信息与所述数据包进行重组得到待转发数据帧;
第四仲裁单元,用于将所述待转发数据帧发送至与所述转发信息对应的转发端口进行转发;
所述拆帧单元,具体用于当接收到所述转发指令,获取所述转发指令中的第一帧头信息并输出至指令生成单元,当接收到所述待转发数据帧,获取所述待转发数据帧中的第二帧头信息和待计算数据,将所述第二帧头信息输出至所述指令生成单元。
在一示例性实施例中,所述第一协议转换为将先进可扩展接口的存储器映射转换为先进可扩展接口的流协议,所述第二协议转换为将先进可扩展接口的流协议转换为先进可扩展接口的存储器映射。
在一示例性实施例中,所述拆帧单元还用于记录接收到的所述外部路由模组传输的待处理数据帧的实际数量,当所述实际数量达到预设数量生成第一触发指令,并将所述第一触发指令输出至所述计算模组。
在一示例性实施例中,所述待输出数据帧及待处理数据帧的帧头信息均包括帧头标识字段、路由信息字段、地址信息字段、数据长度字段、事务类型字段以及帧序号字段;
所述外部路由模组,还用于基于所述待处理数据帧中的所述路由信息判断所述待处理数据帧是否满足所述向外转发条件,基于所述待处理数据帧中的所述路由信息判断所述待处理数据帧是否满足所述向内写入条件;
将所述待处理数据帧中的待计算数据写入所述存储模组的过程包括:
基于所述待处理数据帧中的所述帧头标识字段、所述地址信息字段、所述数据长度字段、所述事务类型字段以及所述帧序号字段将所述待处理数据帧中的待计算数据写入所述存储模组。
在一示例性实施例中,所述加速设备还包括:
直接访问引擎模块,用于将所述主机输出的第二触发指令输出至所述计算模组,将所述主机输出的待计算数据写入所述存储模组。
为解决上述技术问题,本发明还提供了一种异构计算架构,包括:
至少一个如上文任意一项所述的加速设备;
设于主机端的中央处理器,用于向所述加速设备的计算模组发送基于计算任务生成的第二触发指令,向所述加速设备中的存储模组写入初始待计算数据,从所述存储模组中获取所述计算任务对应的结果数据。
为解决上述技术问题,本发明还提供了一种数据处理方法,应用于如上文任意一项所述的加速设备,所述数据处理方法包括:
通过外部路由模组接收本地光口和/或内部路由模组传输的待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧输出至对应的本地光口,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组;
通过所述内部路由模组将所述待处理数据帧中的待计算数据写入存储模组并生成第一触发指令,当接收到转发指令,从所述存储模组中读取与所述转发指令对应的结果数据,将基于所述结果数据得到的待处理数据帧传输至所述外部路由模组;
通过计算模组基于目标触发指令对所述存储模组中的待计算数据进行计算,得到结果数据后写入所述存储模组,并生成所述转发指令,所述目标触发指令为所述第一触发指令或主机基于当前计算任务生成的第二触发指令。
本发明提供了一种加速设备,各个加速设备上设有光口,通过光口进行与其他加速设备之间的数据传输,光口的数据传输带宽较高,在加速设备中通过内部路由模组和外部路由模组实现路由逻辑,实现对应数据帧的写入处理以及转发处理,能够同时进行多个加速设备之间的数据传输,提高计算任务的协同完成效率。本发明还提供了一种异构计算架构,具有和上述加速设备相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种加速设备的结构示意图;
图2为本发明所提供的一种多加速设备间的路由示意图;
图3为本发明所提供的一种外部路由模组和内部路由模组的数据流向示意图;
图4为本发明所提供的一种外部路由模块的示意图;
图5为本发明所提供的一种内部路由模组的示意图;
图6为本发明所提供的一种内部路由模块的示意图;
图7为本发明所提供的一种数据帧结构的示意图;
图8为本发明所提供的另一种加速设备的结构示意图;
图9为本发明所提供的一种一维数据传输架构示意图;
图10为本发明所提供的一种异构计算架构的结构示意图;
图11为本发明所提供的一种二维数据传输架构示意图;
图12为本发明所提供的一种三维数据传输架构示意图;
图13为本发明所提供的一种数据处理方法的步骤流程图。
具体实施方式
本发明的核心是提供一种加速设备、异构计算架构及数据处理方法,能够同时进行多个加速设备之间的数据传输,光口的数据传输带宽较高,利用光口进行数据传输可以提高计算任务的协同完成效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,请参照图1,图1为本发明所提供的一种加速设备的结构示意图,该加速设备包括:
存储模组1;
至少一个本地光口2,各个本地光口2与各个远端光口连接,远端光口为其他加速设备上的光口;
与各个本地光口2连接的外部路由模组3,用于接收本地光口2和/或内部路由模组4传输的待处理数据帧,当待处理数据帧满足向外转发条件,将基于待处理数据帧得到的待输出数据帧输出至对应的本地光口2,当待处理数据帧满足向内写入条件,将待处理数据帧输出至内部路由模组4;
内部路由模组4,用于将待处理数据帧中的待计算数据写入存储模组1并生成第一触发指令,当接收到转发指令,从存储模组1中读取与转发指令对应的结果数据,将基于结果数据得到的待处理数据帧传输至外部路由模组3;
计算模组5,用于基于目标触发指令对存储模组1中的待计算数据进行计算,得到结果数据后写入存储模组1,并生成转发指令,目标触发指令为第一触发指令或主机基于当前计算任务生成的第二触发指令。
本实施例中,加速设备包括存储模组1,存储模组1用于存储计算任务所需的待计算数据和计算完成后的结果数据,作为一种可选的实施例,在存储模组1中可以划分出一部分区域,记为区域A,用于存储待计算数据,再划分出一部分区域,记为区域B,用于存储结果数据。其中,存储模组1具体可以为高带宽存储器。
加速设备上设有至少一个本地光口2,每个加速设备通过本地光口2与其他加速设备的光口通信,为便于区分,本实施例将其他加速设备上设置的光口记为远端光口,单个光口的数据传输带宽可达100Gb/s及以上,从而提高数据传输效率。进一步的,当加速设备上设有多个本地光口2时,可以根据加速设备当前所处的系统架构来设置各个本地光口2的使能状态,假设当前系统架构为一维架构,可以设置一个本地光口2使能,当前系统架构为二维架构,可以设置两个本地光口2使能,当前系统架构为三维架构可以设置三个本地光口2使能,以此类推。
加速设备中包括内部路由模组4和外部路由模组3,外部路由模组3与各个本地光口2连接,对经由本地光口2传输的待处理数据帧进行处理,如将经由本地光口2接收到的其他加速设备输出的满足向内写入条件的待处理数据帧转发到内部路由模组4,以便内部路由模组4将该待处理数据帧中的待计算数据写入存储模组,还可将经由某一本地光口2接收到的其他加速设备输出的满足向外转发条件的待处理数据帧转发到其他本地光口2,以便通过其他本地光口2传输给其他加速设备,还可将内部路由模组4输出的满足向外转发条件的待处理数据帧通过与自身连接的对应的本地光口2转发出去。
内部路由模组4在接收到外部路由模组3输出的待处理数据帧后,提取待处理数据帧中待计算数据,将其写入存储模组1中的对应位置,并生成第一触发指令,以触发计算模组5对存储模组1中的待计算数据进行计算,得到结果数据后,计算模组5将结果数据写入存储模组1,并生成转发指令,以触发内部路由模组4从存储模组1中获取对应的结果数据,封装成待处理数据帧后输出至外部路由模组3,以便外部路由模组3进行转发。
本实施例中,各个加速设备在进行路由选择时,需要尽量做到流量均衡,即所有路径有相近的流量,因此所有数据帧按照相同的方向传输。在本实施例中,按照右手定则进行数据路由的选择,参照图2所示,在一机八卡,即包括八个加速设备的系统中,第一加速设备00的路由表如表1所示。当第一加速设备00的数据需要发往第二加速设备01、第三加速设备02、第五加速设备04时,分别通过对应方向外部路由模组3的直连路径进行数据传输即可。当需要跨越加速设备进行数据传输时,如数据要传输到第四加速设备03、第六加速设备05、第七加速设备06时,则按照物理学中右手定则的方向选择数据传输路径。当需要跨越多个加速设备节点进行数据传输时,将源加速设备放到坐标轴的原点,需要跨越多个加速设备的目标加速设备在其斜对角线方向。数据帧首先传输到目标加速设备正下方的加速设备,然后再传输到目标加速设备。对第一加速设备00,其斜对角线的加速设备为第八加速设备07,将第一加速设备00放到坐标原点,第八加速设备07正下方的加速设备为第四加速设备03,所以第一加速设备00的数据传输到第八加速设备07的数据路径为0→1→3→7。
表1 一机八卡中第一加速设备00的路由表
本实施例中,加速设备与主机之间通过PCIe总线连接。当主机中的应用开始计算任务后,主机中的中央处理器将计算指令传递给加速设备中的计算模组5,并将计算任务所需的原始待计算数据存储到加速设备的存储模组1中,加速设备中的存储模组1具体可以包括高带宽存储器。计算模组5在接收到计算指令后,从高带宽存储器中取出原始数据开始计算,在处理完指定步骤后,将处理后的结果数据存入高带宽存储器中,并通知内部路由模组4从高带宽存储器中取出数据,添加路由信息等帧头形成待处理数据帧。内部路由模组4将待处理数据帧传输给外部路由模组3,外部路由模组3根据待处理数据帧的帧头中的路由信息将待处理数据帧从相应的本地光口传输给指定的加速设备,即目标加速设备。同理,当有其他加速设备传输数据过来后,外部路由模组3将待处理数据帧传输给内部路由模组4,内部路由模组4在对待处理数据帧进行处理后将其中的待计算数据存入高带宽存储器,计算模组5再次从高带宽存储器中取出待计算数据进行后续的计算。在计算模组5完成整个计算任务后,将最终的计算结果存入高带宽存储器中,并通过中断通知主机任务完成,主机从高带宽存储器中取出最后的计算结果,完成计算任务,本实施例中,仅以一个加速设备为例进行说明,其他所有加速设备的数据处理过程,同理。
可见,本实施例中,各个加速设备上设有光口,通过光口进行与其他加速设备之间的数据传输,光口的数据传输带宽较高,在加速设备中通过内部路由模组4和外部路由模组3实现路由逻辑,实现对应数据帧的写入处理以及转发处理,能够同时进行多个加速设备之间的数据传输,提高计算任务的协同完成效率。
在上述实施例的基础上:
在一示例性实施例中,本地光口2的数量为多个,外部路由模组3包括与多个本地光口2一一对应的外部路由模块31,多个外部路由模块31依次连接;
每个外部路由模块31,用于接收与自身连接的本地光口2和/或上级路由模块传输的待处理数据帧,当待处理数据帧满足向外转发条件,将基于待处理数据帧得到的待输出数据帧输出至对应的本地光口2,当待处理数据帧满足向内写入条件,将待处理数据帧输出至内部路由模组4,当待处理数据帧满足向内转发条件,将待处理数据帧输出至下级路由模块;当上级路由模块为内部路由模组4时,下级路由模块为其他外部路由模块31,当下级路由模块为内部路由模组4时,上级路由模块为其他外部路由模块31。
本实施例中,外部路由模组3包括多个外部路由模块31,多个外部路由模块31与该加速设备的多个本地光口2一一对应连接,参照图3所示,以三维计算框架为例,外部路由模组3包括X方向外部路由模块31x,Y方向外部路由模块31y,Z方向外部路由模块31z,其中,X方向外部路由模块31x、Y方向外部路由模块31y、Z方向外部路由模块31z依次连接,X方向外部路由模块31x的另一端连接内部路由模组4,Z方向外部路由模块31z的另一端连接内部路由模组4。
每一外部路由模块31均用于根据帧头中的路由信息将数据帧从相应的本地光口2传输给其他加速设备,或者传递给下一级路由模块处理,参照图3所示,对于X方向外部路由模块31x,其上级路由模块为内部路由模组4,其下级路由模块为Y方向外部路由模块31y,对于Y方向外部路由模块31y,其上级路由模块为X方向外部路由模块31x,其下级路由模块为Z方向外部路由模块31z,对于Z方向外部路由模块31z,其上级路由模块为Y方向外部路由模块31y,其下级路由模块为内部路由模组4,可以理解,数据在内部路由模组4、X方向外部路由模块31x、Y方向外部路由模块31y、Z方向外部路由模块31z中单向传输。
以X方向外部路由模块31x为例进行说明,当X方向外部路由模块31x通过与其连接的本地光口2接收到待处理数据帧,判断该待处理数据帧是否满足向外转发条件,若满足向外转发条件,则将该待处理数据帧传输给与自身连接的本地光口2,若不满足,判断该待处理数据帧是否满足向内写入条件,如果满足向内写入条件,且自身的下级路由模块不为内部路由模组4,则判定满足向内转发条件,此时将该待处理数据帧传输给Y方向外部路由模块31y,相应的,若Z方向外部路由模块31z接收到满足向内写入条件的数据帧,由于Z方向外部路由模块31z的下级路由模块为内部路由模组4,则Z方向外部路由模块31z将数据帧转发给内部路由模组4。
在一示例性实施例中,每个外部路由模块31均包括第一接收端口、第二接收端口、第一转发端口和第二转发端口,第一转发端口及第一接收端口与自身一一对应的本地光口2连接,第二转发端口与下级路由模块的第二接收端口连接,第二接收端口与上级路由模块的第二转发端口连接;
外部路由模块31,具体用于通过第一接收端口和/或第二接收端口接收待处理数据帧,当待处理数据帧满足向外转发条件,将基于待处理数据帧得到的待输出数据帧通过第一转发端口输出,当待处理数据帧满足向内写入条件,将待处理数据帧输出至内部路由模组4,当待处理数据帧满足向内转发条件,将待处理数据帧通过第二转发端口输出。
本实施例中,每个外部路由模块31包括多个转发端口,多个转发端口中包括与本地光口2连接的第一转发端口,还包括与下级路由模块连接的第二转发端口,基于待处理数据帧满足的条件,将待处理数据帧通过对应的转发端口输出,从而实现向外转发或者向内转发。
在一示例性实施例中,外部路由模块31还用于对待处理数据帧进行解析,得到路由信息,基于路由信息判断待处理数据帧是否满足向外转发条件,和/或基于路由信息判断待处理数据帧是否满足向内转发条件,和/或基于路由信息判断待处理数据帧是否满足向内写入条件。
在一示例性实施例中,基于路由信息判断待处理数据帧是否满足向外转发条件的过程包括:
将路由信息与预设路由表中的规则进行匹配;
若存在匹配的有效规则,判定待处理数据帧满足向外转发条件;
预设路由表包括转发动作、转发状态以及目标加速设备的编号的对应关系,每一转发动作、转发状态以及目标加速设备的编号构成一条规则,有效规则为转发状态为有效状态的规则。
在一示例性实施例中,基于路由信息判断待处理数据帧是否满足向内转发条件的过程包括:
将路由信息与预设路由表中的规则进行匹配;
若不存在匹配的有效规则,判定待处理数据帧满足向内转发条件;
预设路由表包括转发动作、转发状态以及目标加速设备的编号的对应关系,每一转发动作、转发状态以及目标加速设备的编号构成一条规则,有效规则为转发状态为有效状态的规则。
在一示例性实施例中,基于路由信息判断待处理数据帧是否满足向内写入条件的过程包括:
判断路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为内部路由模组4;
若是,判定待处理数据帧满足向内写入条件;
基于路由信息判断待处理数据帧是否满足向内转发条件的过程包括:
判断路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为内部路由模组4;
若否,判定待处理数据帧满足向内转发条件。
在一示例性实施例中,参照图4所示,外部路由模块31包括:
多个外部转发端口;
第一仲裁单元311,用于当单独接收到本地光口2输出的待处理数据帧时,将本地光口2输出的待处理数据帧输出至第一解析单元312,当单独接收到上级路由模块输出的待处理数据帧时,将上级路由模块输出的待处理数据帧输出至第一解析单元312,当同时接收到本地光口2输出的待处理数据帧和上级路由模块传输的待处理数据帧时,对两个待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出至第一解析单元312;第一解析单元312,用于从待处理数据帧中提取路由信息和数据包;
第一查表单元313,用于将路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息;
第一缓存单元314,用于缓存数据包;
第一重组单元315,用于从第一缓存单元314中取出数据包,将转发信息与数据包进行重组得到待转发数据帧;
第二仲裁单元316,用于将待转发数据帧输出至与转发信息对应的外部转发端口进行转发,当转发信息对应的外部转发端口为与本地光口2连接的外部转发端口,待转发数据帧为待输出数据帧。
在一示例性实施例中,基于路由信息判断待处理数据帧是否满足向内写入条件的过程包括:
判断路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为内部路由模组4;
若是,判定待处理数据帧满足向内写入条件;
基于路由信息判断待处理数据帧是否满足向内转发条件的过程包括:
判断路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为内部路由模组4;
若否,判定待处理数据帧满足向内转发条件。
在一示例性实施例中,基于匹配结果确定转发信息的过程包括:
当匹配结果为预设路由表中存在与路由信息对应的有效规则,确定转发信息为第一转发信息,第一转发信息对应的转发端口为与本地光口2连接的转发端口;
当匹配结果为预设路由表中不存在与路由信息对应的有效规则,确定转发信息为第二转发信息,第二转发信息对应的转发端口为与下一级路由模块连接的转发端口。
其中,第一仲裁单元311与第一接收端口和第二接收端口连接,获取经本地光口2传输的待处理数据帧,以及上级路由模块输出的待处理数据帧,当单独接收到经本地光口2传输的待处理数据帧或上级路由模块输出的待处理数据帧,将接收到的待处理数据帧直接输出至第一解析单元312,当第一仲裁单元311同时接收到经本地光口2输出的待处理数据帧以及上级路由模块输出的待处理数据帧,则对接收到的两个待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出给第一解析单元312,第一解析单元312从待处理数据帧的帧头中解析出路由信息,将其作为关键字以便后续查表使用,第一查表单元313是外部路由模块31的关键单元,它根据第一解析单元312获取的关键字从预设路由表中查询匹配的规则,从而获取相应的动作,即转发端口。预设路由表如表2所示,表项由匹配项、动作和状态构成。其中,匹配项即为关键字匹配的对象,是待处理数据帧去往的目标加速设备的编号,动作为待处理数据帧进行转发的端口,上文所述本地路由信息具体为本加速设备的编号。
在本实施例中,转发端口有两个,第一转发端口用于转发给物理层以发送给其他加速设备(动作为0x0),第二转发端口用于转发给下一个路由模块进行处理,预设路由表存储的规则为通过物理层发送给其他加速设备的情况,状态表征预设路由表中对应的规则是否有效。在数据帧到达外部路由模块31时,第一解析单元312从帧头提取路由信息,即目标加速设备的编号。第一查表单元313将提取的目标加速设备的编号与预设路由表中的所有规则进行匹配,如果存在匹配的有效规则,即数据帧需要通过物理层发送给其他加速设备,第一重组单元315从第一缓存单元314取出数据帧,第二仲裁单元316将数据帧发往物理层,如果不存在匹配的规则,则第二仲裁单元316默认将待处理数据帧发往下级路由模块进行处理。
表2 预设路由表
在一示例性实施例中,将待处理数据帧中的待计算数据写入存储模组1并生成第一触发指令的过程包括:
将待处理数据帧中的待计算数据写入存储模组1;
判断是否将下一轮计算任务所需的所有待计算数据均写入存储模组1;
若是,生成第一触发指令;
若否,重复将待处理数据帧中的待计算数据写入存储模组1的操作,直至将下一轮计算所需的所有待计算数据均写入存储模组1。
本实施例中,考虑到某一计算任务可能需要多个加速设备的数据协同完成,因此,本实施例中内部路由模组4还对每轮加速任务所需的数据是否接收完毕进行判断,如果获取到下一轮计算任务所需的所有待计算数据后,再生成第一触发指令,以触发计算模组5执行下一轮计算任务,可以理解,下一轮计算任务的待计算数据包括本轮计算任务的结果数据。
在一示例性实施例中,内部路由模组4还用于记录接收到的待处理数据帧的实际数量;
判断是否将下一轮计算任务所需的所有待计算数据均写入存储模组1的过程包括:
判断实际数量是否达到预设数量;
若是,判定将下一轮计算任务所需的所有待计算数据均写入存储模组1;
若否,判定未将下一轮计算任务所需的所有待计算数据均写入存储模组1。
本实施例中,内部路由模组4对接收到的待处理数据帧的实际数量进行判断,当实际数量达到下一轮计算任务所对应的预设数量时,判定下一轮计算任务所需的所有待计算数据均写入存储模组1,否则,继续等待,直至下一轮计算任务所需的所有待计算数据均写入存储模组1。
在一示例性实施例中,请参照图5,内部路由模组4包括:
拆帧单元41,用于当接收到转发指令,获取转发指令中的第一帧头信息并输出至指令生成单元42,当接收到外部路由模组3传输的待处理数据帧,获取待处理数据帧中的第二帧头信息和待计算数据,将第二帧头信息输出至指令生成单元42;
指令生成单元42,用于根据第一帧头信息生成第一访问指令,根据第二帧头信息生成第二访问指令;
接口转换单元43,用于当接收到第一访问指令,从存储模组1中读取与第一访问指令对应的初始结果数据,对初始结果数据进行第一协议转换,当接收到第二访问指令,对待计算数据进行第二协议转换,按第二访问指令将第二协议转换后的待计算数据写入存储模组1;
组帧单元44,用于将第一协议转换后的结果数据封装为待处理数据帧输出至外部路由模组3。
在一示例性实施例中,内部路由模组4还包括内部路由模块45,参照图6所示,内部路由模块45包括:多个内部转发端口;多个内部转发端口包括与拆帧单元41连接的第一内部转发端口,还包括与外部路由模组3连接的第二内部转发端口;
第三仲裁单元451,用于当单独接收到外部路由模组3输出的待处理数据帧,将外部路由模组3输出的待处理数据帧输出至第二解析单元452,当单独接收到组帧单元44输出的待处理数据帧,将组帧单元44输出的待处理数据帧输出至第二解析单元452,当同时接收到外部路由模组3输出的待处理数据帧和组帧单元44输出的待处理数据帧,对两个待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出至第二解析单元452;
第二解析单元452,用于从待处理数据帧中提取路由信息和数据包;
第二查表单元453,用于将路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息;
第二缓存单元454,用于缓存数据包;
第二重组单元455,用于从第二缓存单元454中取出数据包,将转发信息与数据包进行重组得到待转发数据帧;
第四仲裁单元456,用于将待转发数据帧发送至与转发信息对应的转发端口进行转发;
拆帧单元41,具体用于当接收到转发指令,获取转发指令中的第一帧头信息并输出至指令生成单元42,当接收到待转发数据帧,获取待转发数据帧中的第二帧头信息和待计算数据,将第二帧头信息输出至指令生成单元42。
在一示例性实施例中,拆帧单元41还用于记录接收到的外部路由模组3传输的待处理数据帧的实际数量,当实际数量达到预设数量生成第一触发指令,并将第一触发指令输出至计算模组5。
本实施例中,内部路由模组4、计算模组5和主机均与高带宽存储器上对应的通信接口连接,以实现与高带宽存储器之间的数据交互,具体的,高带宽存储器上设有多个AXIMM(Advanced eXtensible Interface Memory Map,先进可扩展接口内存映射)接口,计算模组5和主机均可直接与AXI MM接口连接,从而实现与高带宽存储器的数据交互。在开始处理计算任务时,主机首先将当前计算任务对应的初始待计算数据存入高带宽存储器,同时通知计算模组5计算任务开始,计算模组5从高带宽存储器取出初始待计算数据进行第一轮处理,处理完成后再将处理后的结果数据写入高带宽存储器,同时发送转发指令给内部路由模组4,内部路由模组4中的拆帧单元41从转发指令中提取帧头的信息,并传递给指令生成单元42,由指令生成单元42根据帧头中的信息生成第一访问指令传递给接口转换单元43,接口转换单元43与高带宽存储器的一个AXI MM接口连接,按照第一访问指令从高带宽存储器中取出对应的结果数据,考虑到传输至外部路由模组3的待处理数据帧需要满足AXIStream(Advanced eXtensible Interface Stream,先进可扩展接口内存映射数据流)接口协议,因此,接口转换单元43需要将满足AXI MM接口协议的结果数据转换为满足AXIStream接口协议的结果数据后,通过组帧单元44将路由信息和满足AXI Stream接口协议的结果数据封装为待处理数据,将待处理数据传输至内部路由模块45中的第三仲裁单元451,经过内部路由模块45中的各个单元处理后,将待处理数据传输至外部路由模组3。
当加速设备接收到其他加速设备发往本加速设备的数据后,外部路由模组3将待处理数据帧传递给内部路由模组4,内部路由模块45中的第三仲裁单元451将外部路由模组3输出的待处理数据帧输出至第二解析单元452,第二解析单元452从待处理数据帧中提取路由信息和数据包,第二查表单元453将路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息,第二重组单元455从第二缓存单元454中取出数据包,将转发信息与数据包进行重组得到待转发数据帧,第四仲裁单元456将待转发数据帧通过对应的端口转发给拆帧单元41,拆帧单元41从数据帧中取出帧头和数据,帧头传递给指令生成单元42,由指令生成单元42根据帧头中的信息生成第二访问指令,接口转换单元43根据第二访问指令将数据由AXI Stream接口协议转换为AXI MM接口协议后,存入高带宽存储器。拆帧单元41记录接收到的所有数据帧,在接收到下一轮计算所需的所有数据后,发送消息通知计算模组5可以开始下一轮的计算。计算模组5再从高带宽存储器中取出下一轮计算所需的数据,开始下一轮的计算任务。按照上述的方式进行算法需求的多轮计算任务后,计算模组5将最终的计算的结果存入高带宽存储器,然后发送中断消息告知主机计算任务完成。主机再从高带宽存储器中取出最终的计算结果,完成整个计算任务。
在一示例性实施例中,待输出数据帧及待处理数据帧的帧头信息均包括帧头标识字段、路由信息字段、地址信息字段、数据长度字段、事务类型字段以及帧序号字段;
外部路由模组3,还用于基于待处理数据帧中的路由信息判断待处理数据帧是否满足向外转发条件,基于待处理数据帧中的路由信息判断待处理数据帧是否满足向内写入条件;
将待处理数据帧中的待计算数据写入存储模组1的过程包括:
基于待处理数据帧中的帧头标识字段、地址信息字段、数据长度字段、事务类型字段以及帧序号字段将待处理数据帧中的待计算数据写入存储模组1。
数据帧格式如图7所示,帧头由帧头标识、路由信息、地址信息、数据长度、事务类型和帧序号构成。帧头标识表征这是一帧新的数据。路由信息为目的加速设备编号,即此帧数据需要发往哪一块加速设备。地址信息给出此帧数据需要存入或读出高带宽存储器的起始地址。数据长度给出本帧数据的长度。事务类型表明是将数据写入高带宽存储器还是从高带宽存储器读出数据。帧序号给出数据帧的序号。路由信息由外部路由模块31使用,根据路由信息将数据帧转发给对应的加速设备。帧头中的其它信息由内部路由模组4使用,用于根据帧头中的信息将数据写入或读出高带宽存储器。
在一示例性实施例中,参照图8所示,加速设备还包括:
直接访问引擎模组6,用于将主机输出的第二触发指令输出至计算模组5,将主机输出的待计算数据写入存储模组1。
综上,本发明中的加速设备之间的数据传输通过光口实现,物理层的协议选择以太网协议或者Aurora等点对点通信协议实现。一加速设备可通过多个光口与多个加速设备连接进行数据传输,单个光口的数据传输带宽可达100Gb/s及以上。主机通过直接访问引擎模组将数据传输到加速卡的高带宽存储器中,计算模组5再从高带宽存储器中取出数据完成主机下发的计算任务,加速设备中具备路由逻辑,可根据数据帧头所携带的路由信息将数据包通过不同光口传输给指定的加速设备。本发明提出的基于该加速设备建立的数据传输架构具备良好的扩展能力,可根据实际应用场景的需求灵活的扩展加速卡的数量,满足不同算力场景的需求。
第二方面,参照图9所示,本发明还提供了一种异构计算架构,包括
至少一个如上文任意一个实施例所描述的加速设备91;
设于主机端的中央处理器92,用于向所述加速设备91的计算模组发送基于计算任务生成的第二触发指令,向所述加速设备91中的存储模组写入初始待计算数据,从所述存储模组中获取所述计算任务对应的结果数据。
在一示例性实施例中,加速设备为现场可编程逻辑门阵列设备、图形处理器设备或专用集成电路设备中的任意一个。
在异构计算架构中,一台服务器包括但不限于支持8个PCIe设备,本实施例以一台服务器配备8张FPGA加速设备为例对本发明的技术实现进行详细的说明,更多加速设备的情况可以按类似的方式进行扩展。8张加速设备通过PCIe总线与主机CPU连接,每张加速设备分别通过本地光口与其它的加速设备连接。根据不同应用场景的需求,加速设备之间的连接方式可以是多种多样的,如连接为图10所示的一维架构,适用于多核串行计算的任务场景,外部路由模块通过光口与相邻的加速设备相连,内部路由模组则根据路由信息将数据传输给计算模组进行处理或者存入高带宽存储器中,图10中仅示出了第一加速设备00、第二加速设备01、第三加速设备02和第四加速设备03的连接示意图,其他数量的加速设备的连接方式,同理。计算模组完成处理任务后,内部路由模组再从高带宽存储器中取出处理后的数据发送给其他加速设备。也可以连接为图11所示的二维架构,每张加速设备具备X和Y方向两个外部路由模块,通过光口与对应方向的加速设备相连,构成一个环路,适用于循环计算任务的场景,图11中仅示出了第一加速设备00~第六加速设备05的连接示意图,其他数量的加速设备的连接方式,同理。在数据交互更加频率的应用场景下,可以搭建如图12所示的三维架构,在每张加速设备内部具备三个外部路由模块,X、Y、Z方向的外部路由模块通过光口与对应方向的加速设备相连,根据数据帧头携带的路由信息将数据包从相应的光口转发给目的加速设备,图12中仅示出了第一加速设备00~第八加速设备07的连接示意图,其他数量的加速设备的连接方式,同理。
第三方面,请参照图13,图13为本发明所提供的一种数据处理方法的步骤流程图,应用于如上文任意一项的加速设备,该数据处理方法包括:
S101:通过外部路由模组接收本地光口和/或内部路由模组传输的待处理数据帧,当待处理数据帧满足向外转发条件,将基于待处理数据帧得到的待输出数据帧输出至对应的本地光口,当待处理数据帧满足向内写入条件,将待处理数据帧输出至内部路由模组;
S102:通过内部路由模组将待处理数据帧中的待计算数据写入存储模组并生成第一触发指令,当接收到转发指令,从存储模组中读取与转发指令对应的结果数据,将基于结果数据得到的待处理数据帧传输至外部路由模组;
S103:通过计算模组基于目标触发指令对存储模组中的待计算数据进行计算,得到结果数据后写入存储模组,并生成转发指令,目标触发指令为第一触发指令或主机基于当前计算任务生成的第二触发指令。
对于本发明所提供的一种数据处理方法的介绍请参照上述实施例,本发明在此不再赘述。
本发明所提供的一种数据处理方法具有和上述数据处理系统相同的有益效果。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种加速设备,其特征在于,包括:
存储模组;
至少一个本地光口,各个所述本地光口与各个远端光口连接,所述远端光口为其他加速设备上的光口;
与各个所述本地光口连接的外部路由模组,用于接收所述本地光口和/或内部路由模组传输的待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧输出至对应的本地光口,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组;
所述内部路由模组,用于将所述待处理数据帧中的待计算数据写入所述存储模组并生成第一触发指令,当接收到转发指令,从所述存储模组中读取与所述转发指令对应的结果数据,将基于所述结果数据得到的待处理数据帧传输至所述外部路由模组;
计算模组,用于基于目标触发指令对所述存储模组中的待计算数据进行计算,得到结果数据后写入所述存储模组,并生成所述转发指令,所述目标触发指令为所述第一触发指令或主机基于当前计算任务生成的第二触发指令。
2.根据权利要求1所述的加速设备,其特征在于,所述本地光口的数量为多个,所述外部路由模组包括与多个所述本地光口一一对应的外部路由模块,多个所述外部路由模块依次连接;
每个所述外部路由模块,用于接收与自身连接的所述本地光口和/或上级路由模块传输的待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧输出至对应的本地光口,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组,当所述待处理数据帧满足向内转发条件,将所述待处理数据帧输出至下级路由模块;当所述上级路由模块为所述内部路由模组时,所述下级路由模块为其他外部路由模块,当所述下级路由模块为所述内部路由模组时,所述上级路由模块为其他外部路由模块。
3.根据权利要求2所述的加速设备,其特征在于,每个所述外部路由模块均包括第一接收端口、第二接收端口、第一转发端口和第二转发端口,所述第一转发端口及所述第一接收端口与自身一一对应的本地光口连接,所述第二转发端口与所述下级路由模块的第二接收端口连接,所述第二接收端口与所述上级路由模块的第二转发端口连接;
所述外部路由模块,具体用于通过所述第一接收端口和/或所述第二接收端口接收待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧通过所述第一转发端口输出,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组,当所述待处理数据帧满足向内转发条件,将所述待处理数据帧通过所述第二转发端口输出。
4.根据权利要求2所述的加速设备,其特征在于,所述外部路由模块还用于对所述待处理数据帧进行解析,得到路由信息,基于所述路由信息判断所述待处理数据帧是否满足所述向外转发条件,和/或基于所述路由信息判断所述待处理数据帧是否满足所述向内转发条件,和/或基于所述路由信息判断所述待处理数据帧是否满足所述向内写入条件。
5.根据权利要求4所述的加速设备,其特征在于,基于所述路由信息判断所述待处理数据帧是否满足所述向外转发条件的过程包括:
将所述路由信息与预设路由表中的规则进行匹配;
若存在匹配的有效规则,判定所述待处理数据帧满足所述向外转发条件;
所述预设路由表包括转发动作、转发状态以及目标加速设备的编号的对应关系,每一所述转发动作、所述转发状态以及所述目标加速设备的编号构成一条所述规则,所述有效规则为所述转发状态为有效状态的规则。
6.根据权利要求4所述的加速设备,其特征在于,基于所述路由信息判断所述待处理数据帧是否满足所述向内转发条件的过程包括:
将所述路由信息与预设路由表中的规则进行匹配;
若不存在匹配的有效规则,判定所述待处理数据帧满足所述向内转发条件;
所述预设路由表包括转发动作、转发状态以及目标加速设备的编号的对应关系,每一所述转发动作、所述转发状态以及所述目标加速设备的编号构成一条所述规则,所述有效规则为所述转发状态为有效状态的规则。
7.根据权利要求4所述的加速设备,其特征在于,基于所述路由信息判断所述待处理数据帧是否满足所述向内写入条件的过程包括:
判断所述路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为所述内部路由模组;
若判定与自身连接的下级路由模块为所述内部路由模组,判定所述待处理数据帧满足所述向内写入条件;
基于所述路由信息判断所述待处理数据帧是否满足所述向内转发条件的过程包括:
判断所述路由信息是否为本地路由信息;
若是,判断与自身连接的下级路由模块是否为所述内部路由模组;
若与自身连接的下级路由模块不为所述内部路由模组,判定所述待处理数据帧满足所述向内转发条件。
8.根据权利要求2-7任意一项所述的加速设备,其特征在于,所述外部路由模块包括:
多个外部转发端口;
第一仲裁单元,用于当单独接收到所述本地光口输出的待处理数据帧时,将所述本地光口输出的待处理数据帧输出至第一解析单元,当单独接收到所述上级路由模块输出的待处理数据帧时,将所述上级路由模块输出的待处理数据帧输出至所述第一解析单元,当同时接收到所述本地光口输出的待处理数据帧和所述上级路由模块传输的待处理数据帧时,对两个所述待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出至所述第一解析单元;
第一解析单元,用于从所述待处理数据帧中提取路由信息和数据包;
第一查表单元,用于将所述路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息;
第一缓存单元,用于缓存所述数据包;
第一重组单元,用于从所述第一缓存单元中取出所述数据包,将所述转发信息与所述数据包进行重组得到待转发数据帧;
第二仲裁单元,用于将所述待转发数据帧输出至与所述转发信息对应的外部转发端口进行转发,当所述转发信息对应的所述外部转发端口为与所述本地光口连接的外部转发端口,所述待转发数据帧为所述待输出数据帧。
9.根据权利要求8所述的加速设备,其特征在于,基于匹配结果确定转发信息的过程包括:
当所述匹配结果为所述预设路由表中存在与所述路由信息对应的有效规则,确定所述转发信息为第一转发信息,所述第一转发信息对应的转发端口为与所述本地光口连接的转发端口;
当所述匹配结果为所述预设路由表中不存在与所述路由信息对应的有效规则,确定所述转发信息为第二转发信息,所述第二转发信息对应的转发端口为与下一级路由模块连接的转发端口。
10.根据权利要求1所述的加速设备,其特征在于,将所述待处理数据帧中的待计算数据写入所述存储模组并生成第一触发指令的过程包括:
将所述待处理数据帧中的待计算数据写入所述存储模组;
判断是否将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组;
若是,生成第一触发指令;
若否,重复将所述待处理数据帧中的待计算数据写入所述存储模组的操作,直至将下一轮计算所需的所有所述待计算数据均写入所述存储模组。
11.根据权利要求10所述的加速设备,其特征在于,所述内部路由模组还用于记录接收到的所述待处理数据帧的实际数量;
判断是否将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组的过程包括:
判断所述实际数量是否达到预设数量;
若是,判定将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组;
若否,判定未将下一轮计算任务所需的所有所述待计算数据均写入所述存储模组。
12.根据权利要求11所述的加速设备,其特征在于,所述计算模组还用于当完成预设轮数的所述计算任务,生成中断指令,以便所述主机在接收到所述中断指令后从所述存储模组中获取最后一轮计算任务的结果数据。
13.根据权利要求10-12任意一项所述的加速设备,其特征在于,所述内部路由模组包括:
拆帧单元,用于当接收到所述转发指令,获取所述转发指令中的第一帧头信息并输出至指令生成单元,当接收到外部路由模组传输的待处理数据帧,获取所述待处理数据帧中的第二帧头信息和待计算数据,将所述第二帧头信息输出至所述指令生成单元;
所述指令生成单元,用于根据所述第一帧头信息生成第一访问指令,根据所述第二帧头信息生成第二访问指令;
接口转换单元,用于当接收到所述第一访问指令,从所述存储模组中读取与所述第一访问指令对应的初始结果数据,对所述初始结果数据进行第一协议转换,当接收到所述第二访问指令,对所述待计算数据进行第二协议转换,按所述第二访问指令将所述第二协议转换后的待计算数据写入所述存储模组;
组帧单元,用于将所述第一协议转换后的结果数据封装为待处理数据帧输出至所述外部路由模组。
14.根据权利要求13所述的加速设备,其特征在于,所述内部路由模组还包括内部路由模块,所述内部路由模块包括:多个内部转发端口;多个所述内部转发端口包括与所述拆帧单元连接的第一内部转发端口,还包括与外部路由模组连接的第二内部转发端口;
第三仲裁单元,用于当单独接收到外部路由模组输出的待处理数据帧,将所述外部路由模组输出的待处理数据帧输出至第二解析单元,当单独接收到所述组帧单元输出的待处理数据帧,将所述组帧单元输出的待处理数据帧输出至所述第二解析单元,当同时接收到所述外部路由模组输出的待处理数据帧和所述组帧单元输出的待处理数据帧,对两个所述待处理数据帧进行仲裁,将仲裁成功的待处理数据帧输出至所述第二解析单元;
所述第二解析单元,用于从所述待处理数据帧中提取路由信息和数据包;
第二查表单元,用于将所述路由信息作为关键字在预设路由表中进行匹配,基于匹配结果确定转发信息;
第二缓存单元,用于缓存所述数据包;
第二重组单元,用于从所述第二缓存单元中取出所述数据包,将所述转发信息与所述数据包进行重组得到待转发数据帧;
第四仲裁单元,用于将所述待转发数据帧发送至与所述转发信息对应的转发端口进行转发;
所述拆帧单元,具体用于当接收到所述转发指令,获取所述转发指令中的第一帧头信息并输出至指令生成单元,当接收到所述待转发数据帧,获取所述待转发数据帧中的第二帧头信息和待计算数据,将所述第二帧头信息输出至所述指令生成单元。
15.根据权利要求13所述的加速设备,其特征在于,所述第一协议转换为将先进可扩展接口的存储器映射转换为先进可扩展接口的流协议,所述第二协议转换为将先进可扩展接口的流协议转换为先进可扩展接口的存储器映射。
16.根据权利要求13所述的加速设备,其特征在于,所述拆帧单元还用于记录接收到的所述外部路由模组传输的待处理数据帧的实际数量,当所述实际数量达到预设数量生成第一触发指令,并将所述第一触发指令输出至所述计算模组。
17.根据权利要求1所述的加速设备,其特征在于,所述待输出数据帧及待处理数据帧的帧头信息均包括帧头标识字段、路由信息字段、地址信息字段、数据长度字段、事务类型字段以及帧序号字段;
所述外部路由模组,还用于基于所述待处理数据帧中的所述路由信息判断所述待处理数据帧是否满足所述向外转发条件,基于所述待处理数据帧中的所述路由信息判断所述待处理数据帧是否满足所述向内写入条件;
将所述待处理数据帧中的待计算数据写入所述存储模组的过程包括:
基于所述待处理数据帧中的所述帧头标识字段、所述地址信息字段、所述数据长度字段、所述事务类型字段以及所述帧序号字段将所述待处理数据帧中的待计算数据写入所述存储模组。
18.根据权利要求1所述的加速设备,其特征在于,所述加速设备还包括:
直接访问引擎模块,用于将所述主机输出的第二触发指令输出至所述计算模组,将所述主机输出的待计算数据写入所述存储模组。
19.一种异构计算架构,其特征在于,包括:
至少一个如权利要求1-18任意一项所述的加速设备;
设于主机端的中央处理器,用于向所述加速设备的计算模组发送基于计算任务生成的第二触发指令,向所述加速设备中的存储模组写入初始待计算数据,从所述存储模组中获取所述计算任务对应的结果数据。
20.一种数据处理方法,其特征在于,应用于如权利要求1-18任意一项所述的加速设备,所述数据处理方法包括:
通过外部路由模组接收本地光口和/或内部路由模组传输的待处理数据帧,当所述待处理数据帧满足向外转发条件,将基于所述待处理数据帧得到的待输出数据帧输出至对应的本地光口,当所述待处理数据帧满足向内写入条件,将所述待处理数据帧输出至所述内部路由模组;
通过所述内部路由模组将所述待处理数据帧中的待计算数据写入存储模组并生成第一触发指令,当接收到转发指令,从所述存储模组中读取与所述转发指令对应的结果数据,将基于所述结果数据得到的待处理数据帧传输至所述外部路由模组;
通过计算模组基于目标触发指令对所述存储模组中的待计算数据进行计算,得到结果数据后写入所述存储模组,并生成所述转发指令,所述目标触发指令为所述第一触发指令或主机基于当前计算任务生成的第二触发指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410154212.9A CN117687943B (zh) | 2024-02-04 | 2024-02-04 | 一种加速设备、基于异构计算架构的系统及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410154212.9A CN117687943B (zh) | 2024-02-04 | 2024-02-04 | 一种加速设备、基于异构计算架构的系统及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117687943A true CN117687943A (zh) | 2024-03-12 |
CN117687943B CN117687943B (zh) | 2024-05-14 |
Family
ID=90128678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410154212.9A Active CN117687943B (zh) | 2024-02-04 | 2024-02-04 | 一种加速设备、基于异构计算架构的系统及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117687943B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243204A (zh) * | 2014-09-03 | 2014-12-24 | 中国电子科技集团公司第三十四研究所 | 光通信网中设备的状态收集和远端控制的方法及装置 |
CN109861908A (zh) * | 2017-11-30 | 2019-06-07 | 迈普通信技术股份有限公司 | 一种路由转发方法及设备 |
CN213585782U (zh) * | 2020-12-09 | 2021-06-29 | 北京意瑞联科技有限公司 | 一种光纤传输设备 |
CN114567592A (zh) * | 2022-02-17 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 基于fpga加速器的组播转发方法、装置及组播路由器 |
US20220321498A1 (en) * | 2019-03-18 | 2022-10-06 | Brightways Corporation | Hyperscale switch element (hss) for data center network switching |
CN115168141A (zh) * | 2022-06-28 | 2022-10-11 | 北京东土科技股份有限公司 | 光口管理系统、方法、装置、可编程逻辑器件及存储介质 |
CN116341443A (zh) * | 2023-03-10 | 2023-06-27 | 湖南泛联新安信息科技有限公司 | 一种基于多fpga原型验证云平台的外设分配方法和系统 |
WO2023123983A1 (zh) * | 2021-12-31 | 2023-07-06 | 京信网络系统股份有限公司 | 载波配置方法、装置、分布式天线系统及存储介质 |
CN117076140A (zh) * | 2023-10-17 | 2023-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种分布式计算方法、装置、设备、系统及可读存储介质 |
WO2023246597A1 (zh) * | 2022-06-21 | 2023-12-28 | 中兴通讯股份有限公司 | 带宽资源分配方法、装置、终端、光网络单元及存储介质 |
-
2024
- 2024-02-04 CN CN202410154212.9A patent/CN117687943B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243204A (zh) * | 2014-09-03 | 2014-12-24 | 中国电子科技集团公司第三十四研究所 | 光通信网中设备的状态收集和远端控制的方法及装置 |
CN109861908A (zh) * | 2017-11-30 | 2019-06-07 | 迈普通信技术股份有限公司 | 一种路由转发方法及设备 |
US20220321498A1 (en) * | 2019-03-18 | 2022-10-06 | Brightways Corporation | Hyperscale switch element (hss) for data center network switching |
CN213585782U (zh) * | 2020-12-09 | 2021-06-29 | 北京意瑞联科技有限公司 | 一种光纤传输设备 |
WO2023123983A1 (zh) * | 2021-12-31 | 2023-07-06 | 京信网络系统股份有限公司 | 载波配置方法、装置、分布式天线系统及存储介质 |
CN114567592A (zh) * | 2022-02-17 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 基于fpga加速器的组播转发方法、装置及组播路由器 |
WO2023246597A1 (zh) * | 2022-06-21 | 2023-12-28 | 中兴通讯股份有限公司 | 带宽资源分配方法、装置、终端、光网络单元及存储介质 |
CN115168141A (zh) * | 2022-06-28 | 2022-10-11 | 北京东土科技股份有限公司 | 光口管理系统、方法、装置、可编程逻辑器件及存储介质 |
CN116341443A (zh) * | 2023-03-10 | 2023-06-27 | 湖南泛联新安信息科技有限公司 | 一种基于多fpga原型验证云平台的外设分配方法和系统 |
CN117076140A (zh) * | 2023-10-17 | 2023-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种分布式计算方法、装置、设备、系统及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
覃勇 等: "基于FPGA的光通信系统远传控制技术", 信息通信, 31 May 2016 (2016-05-31) * |
Also Published As
Publication number | Publication date |
---|---|
CN117687943B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6553031B1 (en) | Communication node apparatus with routing tables in cache memories | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
US7606933B2 (en) | Shared memory and high performance communication using interconnect tunneling | |
CN109426574A (zh) | 分布式计算系统,分布式计算系统中数据传输方法和装置 | |
US8756270B2 (en) | Collective acceleration unit tree structure | |
CN103117929A (zh) | 一种基于PCIe数据交换的通信方法及系统 | |
US7277975B2 (en) | Methods and apparatuses for decoupling a request from one or more solicited responses | |
CN109101664A (zh) | 一种轻量级节点的数据传输方法、装置、设备和介质 | |
CN117687943B (zh) | 一种加速设备、基于异构计算架构的系统及数据处理方法 | |
CN110505168A (zh) | 一种ni接口控制器及数据传输方法 | |
Sur et al. | Efficient and scalable all-to-all personalized exchange for InfiniBand-based clusters | |
US6973093B1 (en) | Switching fabric for interfacing a host processor and a plurality of network modules | |
CN114445260A (zh) | 基于fpga的分布式gpu通信的方法及装置 | |
EP3631640B1 (en) | Communication between field programmable gate arrays | |
CN111782562B (zh) | 数据传输方法、dma控制器、npu芯片及计算机设备 | |
US7266614B1 (en) | Embedded channel adapter having link layer configured for concurrent retrieval of payload data during packet transmission | |
US20230315533A1 (en) | Ai computing platform, ai computing method, and ai cloud computing system | |
JPH07111507A (ja) | データ受信方式及び通信制御装置 | |
CN107273318A (zh) | 并行处理设备和通信控制方法 | |
JP3010571B2 (ja) | データ高速返信装置 | |
CN116614433B (zh) | 一种人工智能芯片、数据传输方法及数据传输系统 | |
CN115794434B (zh) | 一种基于共享存储的多裸芯集成微系统及多裸芯交互方法 | |
CN116781471A (zh) | 基于SRv6场景的DF选举方法、装置、电子设备及存储介质 | |
JP3112208B2 (ja) | マトリクス網回路 | |
CN117479055A (zh) | 一种基于FPGA和hash算法的网络分流装置和方法 |
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 |