基于FPGA的任务处理加速方法、装置、设备、介质及产品与流程

摘要: 本申请涉及计算机,尤其涉及一种基于fpga的任务处理加速方法、装置、设备、介质及产品。背景技术:1、在硬件加速领域,待处理任务通常被划分为多个串联的处理步骤,各...
基于FPGA的任务处理加速方法、装置、设备、介质及产品与流程

本申请涉及计算机,尤其涉及一种基于fpga的任务处理加速方法、装置、设备、介质及产品。

背景技术:

1、在硬件加速领域,待处理任务通常被划分为多个串联的处理步骤,各处理步骤对共享存储单元执行读写操作以完成数据处理。

2、现有的硬件加速方案通常采用流水线设计或多核并行处理机制,但在处理步骤耗时非均匀的场景下,各处理单元之间缺乏有效的协同调度机制,导致大量时钟周期处于空闲等待状态,严重制约了系统整体吞吐率的提升。同时,乒乓操作作为硬件设计中常用的数据缓存与处理技术,已被广泛应用于数据缓存和图像传输等场景,但待处理任务涉及多个处理阶段且各阶段耗时差异显著时,单级乒乓操作无法有效协调多级存储区之间的数据流转。此外,现有技术在处理此类非均匀步骤时,通常采用顺序执行或简单流水线方式,各处理步骤中非均匀分布的不对共享存储单元进行读写操作的空闲时钟周期无法得到有效利用,导致共享存储单元的读写效率降低,进一步限制了系统整体吞吐率的提升。

技术实现思路

1、本申请提供一种基于fpga的任务处理加速方法、装置、设备、介质及产品,用以解决现有技术因各处理步骤耗时非均匀分布且存在不对共享存储单元进行读写操作的空闲时钟周期,导致整体处理效率受限的问题。

2、第一方面,本申请提供一种基于fpga的任务处理加速方法,包括:

3、将待处理任务划分为多个串联的处理步骤,其中,各所述处理步骤对共享存储单元执行读写操作;

4、对各所述处理步骤进行时钟级分析,识别各所述处理步骤在执行过程中不对所述共享存储单元进行读写操作的空闲时钟周期;

5、将所述共享存储单元配置为多个存储子区域,以使各所述处理步骤以流水线方式在不同的存储子区域上执行;

6、在至少一个具有空闲时钟周期的处理步骤执行时,利用所述处理步骤中的空闲时钟周期,执行存储区初始化操作或跨步骤数据搬移操作,其中,所述空闲时钟周期不小于所述存储区初始化操作或所述跨步骤数据搬移操作的时钟消耗。

7、在一个实施例中,所述共享存储单元为‌现场可编程门阵列fpga内部的块随机存取存储器bram,所述bram具有第一端口和第二端口,所述多个串联的处理步骤通过所述第一端口和所述第二端口并行执行读写操作。

8、在一个实施例中,所述将所述共享存储单元配置为多个存储子区域,以使各所述处理步骤以流水线方式在不同的存储子区域上执行,包括:

9、根据各所述处理步骤的时钟消耗,对所述多个串联的处理步骤进行组合,得到至少一个步骤组合;

10、将所述共享存储单元按地址区间划分为多个存储子区域,以使属于同一步骤组合的各所述处理步骤通过所述第一端口或所述第二端口在不同的存储子区域上执行读写操作,并在不同轮次切换所操作的存储子区域。

11、在一个实施例中,所述根据各所述处理步骤的时钟消耗,对所述多个串联的处理步骤进行组合,得到至少一个步骤组合,包括:

12、确定各所述处理步骤的时钟消耗;

13、根据各所述时钟消耗,从各所述处理步骤中选择时钟消耗最小的处理步骤,并将其时钟周期数确定为基准时钟数;

14、将具有空闲时钟周期的处理步骤与所述基准时钟数对应的处理步骤组合至同一步骤组合中,并使各步骤组合的时钟消耗差值在预设范围内。

15、在一个实施例中,所述根据各所述处理步骤的时钟消耗,对所述多个串联的处理步骤进行组合,还包括:

16、若最后一个处理步骤的时钟消耗大于或等于所述基准时钟数的m倍,且m≥2,则将所述最后一个处理步骤单独作为一个步骤组合,并使前级处理步骤以m路并行方式执行。

17、在一个实施例中,所述待处理任务为穷举计算任务。

18、第二方面,本申请还提供一种基于fpga的任务处理加速装置,包括:

19、处理步骤划分模块,用于将待处理任务划分为多个串联的处理步骤,其中,各所述处理步骤对共享存储单元执行读写操作;

20、时钟级分析模块,用于对各所述处理步骤进行时钟级分析,识别各所述处理步骤在执行过程中不对所述共享存储单元进行读写操作的空闲时钟周期;

21、存储配置模块,用于将所述共享存储单元配置为多个存储子区域,以使各所述处理步骤以流水线方式在不同的存储子区域上执行;

22、空闲时钟周期利用模块,用于在至少一个具有空闲时钟周期的处理步骤执行时,利用所述处理步骤中的空闲时钟周期,执行存储区初始化操作或跨步骤数据搬移操作,其中,所述空闲时钟周期不小于所述存储区初始化操作或所述跨步骤数据搬移操作的时钟消耗。

23、第三方面,本申请提供一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述基于fpga的任务处理加速方法的步骤。

24、第四方面,本申请还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述基于fpga的任务处理加速方法的步骤。

25、第五方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被所述处理器执行时实现如上述基于fpga的任务处理加速方法的步骤。

26、本申请提供的基于fpga的任务处理加速方法、装置、设备、介质及产品,通过对待处理任务的各处理步骤进行时钟级分析,识别出各处理步骤执行过程中不对共享存储单元进行读写操作的空闲时钟周期,并将共享存储单元配置为多个存储子区域以使各处理步骤以流水线方式在不同的存储子区域上执行,从而在处理步骤执行时利用其空闲时钟周期执行存储区初始化操作或跨步骤数据搬移操作,将原本被浪费的空闲时钟周期转化为有效操作时间,在实现多处理步骤流水线并行执行的同时,充分利用了各处理步骤中的空闲时钟资源,显著缩短了整体处理耗时,提升了任务处理的吞吐率。

1.一种基于fpga的任务处理加速方法,其特征在于,所述基于fpga的任务处理加速方法包括:

2.根据权利要求1所述的基于fpga的任务处理加速方法,其特征在于,所述共享存储单元为‌现场可编程门阵列fpga内部的块随机存取存储器bram,所述bram具有第一端口和第二端口,所述多个串联的处理步骤通过所述第一端口和所述第二端口并行执行读写操作。

3.根据权利要求2所述的基于fpga的任务处理加速方法,其特征在于,所述将所述共享存储单元配置为多个存储子区域,以使各所述处理步骤以流水线方式在不同的存储子区域上执行,包括:

4.根据权利要求3所述的基于fpga的任务处理加速方法,其特征在于,所述根据各所述处理步骤的时钟消耗,对所述多个串联的处理步骤进行组合,得到至少一个步骤组合,包括:

5.根据权利要求4所述的基于fpga的任务处理加速方法,其特征在于,所述根据各所述处理步骤的时钟消耗,对所述多个串联的处理步骤进行组合,还包括:

6.根据权利要求1至5任一项所述的基于fpga的任务处理加速方法,其特征在于,所述待处理任务为穷举计算任务。

7.一种基于fpga的任务处理加速装置,其特征在于,所述基于fpga的任务处理加速装置包括:

8.一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述基于fpga的任务处理加速方法的步骤。

9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于fpga的任务处理加速方法的步骤。

10.一种计算机程序产品,所述计算机程序产品包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于fpga的任务处理加速方法的步骤。