CN115687240A - 一种增强内核服务管理的fpga异构计算架构 - Google Patents
一种增强内核服务管理的fpga异构计算架构 Download PDFInfo
- Publication number
- CN115687240A CN115687240A CN202211306276.3A CN202211306276A CN115687240A CN 115687240 A CN115687240 A CN 115687240A CN 202211306276 A CN202211306276 A CN 202211306276A CN 115687240 A CN115687240 A CN 115687240A
- Authority
- CN
- China
- Prior art keywords
- kernel
- instruction
- fpga
- data
- group
- 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
- 230000002708 enhancing effect Effects 0.000 title claims abstract description 8
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims abstract description 5
- 238000003860 storage Methods 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000009365 direct transmission Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 9
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000013461 design Methods 0.000 abstract description 3
- 230000010354 integration Effects 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了一种增强内核服务管理的FPGA异构计算架构,针对雷达信号处理集成度高、抗干扰性强的特点,本发明设计了一种支持多通道并行计算的CPU+FPGA形式的异构计算框架,对传统异构框架的片上通信机制进行优化:添加指令控制器,用于接收指令信息并统一解析;添加多个内核组控制器,用于指令解析后的分组并行计算;添加内核私有存储,用于并行计算时内核间的数据直传。本发明设计了基于OpenCL标准的CPU和FPGA间的单次信息收发逻辑,其中从设备提供了多通道并行计算的控制,不仅减少了主从设备之间的通信开销,而且最大限度利用平台资源,有效提高内核组运算速率。
Description
技术领域
本发明涉及异构计算领域,具体涉及一种增强内核服务管理的FPGA异构计算架构。
背景技术
异构计算是一种特殊的并行式和分布计算。它能够协调使用性能、结构各异的计算单元以满足不同的计算需求,使得代码能以获取最大总体性能的形式来执行。CPU具有强大的调度、管理和协调能力,开发方式方便且灵活,但是在大数据处理过程中相对运算量低且功耗较高。FPGA可以通过硬件编程实现功能,在密集处理和高并发能力上占据优势且功耗较低,但基本单元的计算功能有限。CPU+FPGA的异构形式使得CPU和FPGA的优劣互补,成为当下主流的异构加速方案。
当下的CPU+FPGA异构处理方案中,作为主机端的CPU负责控制FPGA完成数据运算。由于算法链中前后kernel有数据关联性,按照一般OpenCL流程,CPU会确认前置kernel执行结束之后才会发送启动下一kernel的指令。也就是说FPGA与CPU之间需要进行多次通信,时延大且效率低。在雷达信号处理应用场景中,经常会出现多帧大数据流水处理的场景,所以需要一种更为有效的数据传输和控制机制来满足特定需求。
发明内容
发明目的:本发明主要针对当前CPU+FPGA异构计算平台数据交互过多,高时延低效率,浪费平台资源,难以满足雷达信号处理高效、强实时性要求的问题,提出一种增强内核服务管理的FPGA异构计算架构,在减少CPU和FPGA间的数据交互的同时,增强对从机设备上数据信息和指令信息的控制,有效提高平台的性能。
技术方案:本发明公开一种增强内核服务管理的FPGA异构计算架构,其特征在于:该异构系统包含一个内核组控制器,加强对主机端发送信息数据的管理控制,从而减少片间通信,满足雷达的多帧大数据量运算要求。具体架构如图1所示。
该硬件架构包含的主要模块包括:
SRIO接口模块:负责接收来自CPU端的指令信息,并将指令和数据进行解析拆分后发送给下级模块,同时还负责将主机需要读取的运算结果打包发送回CPU。根据SRIO传输协议,不同的事务类型需要不同的包头信息作为辨识。
指令解析与总控模块:负责管理指令FIFO的进出,依照约定的指令集对不同kernel工作组的指令解析拆分,根据kernel工作组反馈的工作状态对其发送相应的指令,并且支持循环迭代功能及前置事件和后置事件的管理。同时,还要负责接收分发接口模块传来的主机对全局内存的读写指令和获取硬件信息指令。
Kernel工作组控制模块:负责具体算法的硬件实现,具有统一的接口,采用流水线实现,在硬件资源充足的情况下可以复制多次,使多个内核同时工作,实现更高的并行化,提高整体的运算效率,根据不同的算法可以针对性地设计不同的运算内核。同时,为了满足算法不同层次的需求,设计了kernel工作组和kernel工作项二维结构,其中,同一个kernel工作组内的工作项的算法功能完全相同,而不同kernel工作组的功能则无约束要求。
运算模块:通过解析指令获取参数进行数据运算,直接受外部数据的控制,采取统一的配置方式和运行模式。标准化的kernel可以自动嵌入框架完成运算。
IP状态监测模块:负责反馈FPGA平台信息和kernel状态信息,当主机端调用特定API时,该模块将对应信息反馈给主机。
在硬件架构中,kernel工作组控制模块为本发明主要创新部分之一,该模块对接收到的指令加以解析处理,调配不同的kernel组成执行特定运算的算法链,所有运算任务完成后返回完成信号,实现了CPU和FPGA间的单次信息收发。在多帧大数据量的场景下,该控制模块也可进行指令复制,形成多个执行相同算法的工作组,各kernel通过仲裁机制轮询启动,并行执行,提高运算速度。该模块架构如图2所示。其中kernel工作组控制模块用于对一个工作组内的众多kernel进行控制,首先接收host端对kernel控制的指令,通过相应的数据位对指令信号分类缓存,然后在接受到host端对kernel启动的命令后统一配置对应的kernel进行运算。
下面将本发明对比现有技术的新增功能进行进一步阐述。
本发明实现的kernel工作组控制方法主要通过kernel存储控制模块和运算kernel模块完成。其中kernel存储控制包括以下几个方面:数据接收控制、kernel运算控制、数据发送控制、kernel编号及要求及运算计数。下面对各端控制做出说明。
(1)数据接收控制:接收指令信息,根据指令信息的对应字段判断指令类型,按类型取出配置参数以及运算数据,对组内kernel进行统一配置。
(2)Kernel运算控制:接收到kernel执行指令后开始进行kernel执行判定,kernel是否可以执行将由前置和后置kernel的执行次数决定。若可以执行则直接将指令发送至kernel内部,否则将指令存入指令FIFO,待执行条件满足后再取出。
(3)数据发送控制:kernel间的数据直传通过PIPE实现,在算法链的计算全部完成后,将计算数据写入DDR发回CPU。
(4)kernel编号要求及运算计数:根据算法链中各kernel的执行顺序对kernel进行编号,根据编号即可确定各个kernel的前置和后置kernel。对于中间位置的各个kernel:当前置kernel和后置kernel的执行次数符合要求时,通过轮询机制对相同kernel进行仲裁,然后启动当前的空闲kernel,计算完成后,当前kernel的执行次数加一。链首kernel的启动由后置kernel执行次数和链首kernel的启动指令决定,计算完成之后,链首kernel执行次数加一。链尾kernel的启动由前置kernel决定,计算完成之后,链尾kernel执行次数加一,同时向指令控制模块发送一次帧计算完成信号,帧执行次数加一。
具体的kernel组控制方法实现流程图如图3所示,具体包括以下步骤:
(1)接收kernel配置的指令并将其存入工作组对应的FIFO中。
(2)在接受到kernel启用的指令后(指令包含控制字段和数据信息等),首先配置kernel的参数。根据控制字段的数据判断kernel参数配置的指令,然后取出对应字段的参数。在单个时钟周期只取出一个配置参数,配置参数全部取出后,统一完成组内kernel的参数配置。
(3)完成参数的配置后,按照相应的控制字段获得不同kernel的配置指令,单条指令代表单个buffer的读取或写入,取出指令的过程中,先将读指令输入至kernel存储器控制模块。当kernel开始读取数据时,将根据指令取出buffer中的数据完成计算。当运算数据涉及多个buffer时,将按照指令到来的顺序挨个读取对应的buffer。读操作执行完毕后,再进行写操作,执行模式与读操作相同,最后将kernel的运算结果写入相应的buffer。
(4)在kernel的所有运算数据运算结束并且数据输出完毕后,才可进行下一轮工作组的参数配置。
有益效果:在雷达信号处理应用场景中,经常会出现多帧数据流水处理的需求,由于算法链中前后kernel具有关联性,按照一般OpenCL流程,主机会确认前置Kernel执行结束之后才会发送启动下一kernel的指令。也就是说FPGA与CPU之间也需要进行多次通信,效率很低,且内核长期处于等待状态,造成资源浪费。通过增强内核服务管理,可将数据信息的交互集中在FPGA端,此时主机端只需将数据信息一次性打包发送至FPGA,FPGA端执行完所有指令解析和数据运算任务后再将结果写回,将主从设备间的多次通信转化为开始和结束时候的两次通信,可以有效减少时延,提高计算效率。
同时,针对雷达处理大数据量的需求,一般情况下kernel要处理的数据量很大,kernel间相互通信如果都需要经过全局存储DDR的话效率会很低,因此本设计将工作粒度从单个kernel变成了kernel工作组的形式,通过kernel组控制器对组内kernel进行统一配置,再进行运算。同时kernel间的数据传输通过互联总线形式的PIPE,即通过FIFO做小的缓存,根据指令进行通道切换。FPGA上通信分组统一,将单独多次的kernel间通信,转化为循环的统一分组通信,最大程度发挥FPGA的效率。
附图说明:
图1为本发明提出的一种增强内核管理服务的FPGA异构计算架构。
图2为本发明提出的一种FPGA上kernel组的控制方法。
图3为本发明提出的一种kernel组控制方法的流程示意图。
具体实施方式
为了详细说明本发明公开的技术方案,下面结合具体实例做进一步的阐述。在本实例中,在保证硬件资源的前提下,将多组执行相同任务的内核部署至单片FPGA上,其中CPU端发送运算数据及配置参数,其中输入数据将被内核统一执行完毕再返回主机端。具体步骤如下所示:
步骤1:主机端根据运算要求确认各算法链的具体执行过程,然后调用现有API将运算所需的指令、数据信息通过SRIO总线打包发送至FPGA端。
步骤2:FPGA在收到相应信息之后开始进行初步解析并判断,若为数据信息则传入DDR,若为指令信息则传入指令解析模块。
步骤3:指令信息包含固定的字段来指示其指令类型,按照指令的类型将其分发至不同的指令解析子模块,各个子模块再统一查询特定类型的指令信息,将其下发至各个kernel工作组相应的指令FIFO中。针对多帧循环的要求,需要对指令信息的第一帧指令加以判断,当指令信息为多帧时,需先将指令统一存储至BRAM块中,之后可以循环读取解析,再存放至相应指令FIFO。若为单帧指令,则直接存入相应的指令FIFO。
步骤4:在指令FIFO的输出端对kernel启动指令进行判断,若前置kernel和后置kernel的执行次数满足条件,将指令输出。
步骤5:在kernel工作组接收到指令后,根据指令段中对应的控制字判断指令类型,再取出指令对应的参数,从而完成该工作组内多个kernel的统一配置。同时,不同的工作组通道通过轮询机制对相同kernel进行仲裁,利用PIPE实现kernel间数据直传,保证多个算法链的并行执行。
完成参数的配置后,按照相应的控制字段获得不同kernel的配置指令,单条指令代表单个buffer的读取或写入,取出指令的过程中,先将读指令输入至kernel存储器控制模块。当kernel开始读取数据时,将根据指令取出buffer中的数据完成计算。当运算数据涉及多个buffer时,将按照指令到来的顺序挨个读取对应的buffer。读操作执行完毕后,再进行写操作,执行模式与读操作相同,最后将kernel的运算结果写入相应的buffer。在kernel的所有运算数据运算结束并且数据输出完毕后,才可进行下一轮工作组的参数配置。
步骤6:任意算法链的全部kernel运算工作执行完毕,均可向指令控制模块发送一次帧完成信号,此时帧执行次数加一。当帧计数达到要求后,将运算数据通过DDR发回主机端,并发送门铃,标志全部计算结束。
Claims (4)
1.一种增强内核服务管理的FPGA异构计算架构,其特征在于:包括以下步骤:
CPU端将指令和数据按照标准格式打包,通过SRIO接口发送至FPGA端;
FPGA端的SRIO接口模块对指令和数据进行拆分,指令发送至指令解析与总控模块,数据发送至全局DDR;
指令解析与总控模块对指令进行初步解析和处理,根据算法链要求下发至各个kernel工作组控制模块;
kernel工作组控制模块进一步对指令进行解析,根据特定字段将指令分类并统一下发至各个运算模块,运算模块按照指令要求从DDR中取出相应数据进行运算,同时通过IP状态监测模块保证各模块正常工作;
全部运算结束后,FPGA端通过SRIO接口返回运算结果和结束标志。
2.根据权利要求1所述的一种增强内核服务管理的FPGA异构计算架构,其特征在于:将工作粒度从执行特定运算任务的单个kernel,变成了执行整条算法的kernel工作组,控制信息将不再单独发送至单个kernel,而是通过kernel组控制器统一接收配置信息并解析,统一下发指令和数据信息。
3.根据权利要求1所述的一种增强内核服务管理的FPGA异构计算架构,其特征在于:每个内核组分配一个kernel控制器,各个内核组根据控制器的启动指令依次执行,指令中包含kernel编号及要求计数值,用来判断组内kernel的启动条件,使组内各kernel无间断启动完成计算。
4.根据权利要求1所述的一种增强内核服务管理的FPGA异构计算架构,其特征在于:工作组中的kernel享有私有存储,FPGA上的数据传输不再完全依赖全局DDR,而是通过私有存储实现kernel间信息的直接传输,整个算法链任务执行完毕之后再将最终结果存入DDR并发回CPU端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211306276.3A CN115687240A (zh) | 2022-10-24 | 2022-10-24 | 一种增强内核服务管理的fpga异构计算架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211306276.3A CN115687240A (zh) | 2022-10-24 | 2022-10-24 | 一种增强内核服务管理的fpga异构计算架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687240A true CN115687240A (zh) | 2023-02-03 |
Family
ID=85099173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211306276.3A Pending CN115687240A (zh) | 2022-10-24 | 2022-10-24 | 一种增强内核服务管理的fpga异构计算架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687240A (zh) |
-
2022
- 2022-10-24 CN CN202211306276.3A patent/CN115687240A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782870B2 (en) | Configurable heterogeneous AI processor with distributed task queues allowing parallel task execution | |
US20210073169A1 (en) | On-chip heterogeneous ai processor | |
RU2597556C2 (ru) | Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера | |
WO2020078470A1 (zh) | 片上网络数据处理方法及装置 | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
US20210406437A1 (en) | Programmable chip, design method and device | |
US20110035722A1 (en) | Method for Specifying Stateful, Transaction-Oriented Systems for Flexible Mapping to Structurally Configurable In-Memory Processing Semiconductor Device | |
US11403104B2 (en) | Neural network processor, chip and electronic device | |
CN102135950A (zh) | 基于星型互联架构的片上异构多核系统及其通信方法 | |
CN111190735B (zh) | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 | |
US20220043770A1 (en) | Neural network processor, chip and electronic device | |
JP2023511467A (ja) | 機械学習ワークロードのためのタスクスケジューリング | |
He et al. | Accl: Fpga-accelerated collectives over 100 gbps tcp-ip | |
CN114399035A (zh) | 搬运数据的方法、直接存储器访问装置以及计算机系统 | |
CN105487992A (zh) | 多通道软硬件并行串口通讯处理方法 | |
CN103970714A (zh) | 用于共享功能逻辑的设备和方法及其可重配置处理器 | |
US8589584B2 (en) | Pipelining protocols in misaligned buffer cases | |
CN116841714A (zh) | 基于gpgpu芯片的多通道传输管理系统 | |
CN115687240A (zh) | 一种增强内核服务管理的fpga异构计算架构 | |
RU2643622C1 (ru) | Вычислительный модуль | |
CN113553279B (zh) | 一种rdma通信加速集合通信的方法及系统 | |
CN110413562B (zh) | 一种具有自适应功能的同步系统和方法 | |
CN111078286A (zh) | 数据通信方法、计算系统和存储介质 | |
CN103217681A (zh) | 一种树形拓扑机构多处理器声纳信号处理装置及方法 | |
Rettkowski et al. | Application-specific processing using high-level synthesis for networks-on-chip |
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 |