基于FPGA的动态可重构硬件加速方法及系统技术方案

技术编号:15329274 阅读:75 留言:0更新日期:2017-05-16 12:59
本发明专利技术提供基于FPGA的动态可重构硬件加速方法及系统,包括:提取应用程序的可重构数据流图,对于函数层数据流图中的每个函数节点,从其中的起始运算节点起,计算其余各个运算节点的运算起始时间和运算结束时间,据以计算每个函数节点的运算起始时间和运算结束时间;根据每个函数节点的运算结束时间,在不改变各函数节点间原本的数据依赖的基础上,将所述函数层数据流图重新分层,令每层包括按照函数节点内运算时间分开排序时在同一等级的电路;将拥有相同函数功能的函数层合并为同一函数层,合并后的各函数层依照预设规则结合,每个结合后的函数层成为一个独立的配置层,同一配置层中的函数并行运行,由此提升FPGA的运算速度。

Dynamic reconfigurable hardware acceleration method and system based on FPGA

The present invention provides a FPGA dynamic reconfiguration can include hardware acceleration method and system based on Extraction Application of reconfigurable data flow graph for each function node function layer in the data flow graph, starting from the compute nodes, each node of the calculation of the remaining operation operation start time and end time of operation, according to the the calculation of each function node operation start time and end time of operation; according to each function node processing end time, without changing the original data of each function node dependent on the function layer data flow diagram to make layers, each layer includes a function node in the computation time in accordance with the circuit in the same class separate sorting; function layer will have the same function with the same function of each layer, function layer merged according to predetermined rules with each combination The function layer becomes an independent configuration layer, and the functions in the same configuration layer run in parallel, thus increasing the computing speed of FPGA.

【技术实现步骤摘要】
基于FPGA的动态可重构硬件加速方法及系统
本专利技术涉及FPGA重构领域,特别涉及基于FPGA的动态可重构硬件加速方法及系统。
技术介绍
逻辑可编程阵列(Field-ProgrammableGateArray,简称FPGA)是一种生产后可编程的集成电路芯片。在芯片中,电路提供可编程节点,可根据用户设定重新定义电路逻辑。相比于传统处理芯片CPU,FPGA可提供针对特定问题的高度优化电路,提升百倍级别计算性能;相比于传统集成电路芯片ASIC,FPGA可提供更加灵活的计算方案。然而,传统CPU计算架构中不同计算程序可复用相同的计算硬件资源,从而提高资源使用率以及灵活性,逻辑可编程阵列却不能。FPGA提供的高度优化电路由于其定制特性,无法支持不同计算程序间的复用,从而限制了硬件电路的灵活性等性能。例如,为支持同一应用中的不同函数功能,硬件电路需要支持两个优化电路模块,然而由于数据依赖,两个电路模块并不能同时运行,造成效率降低。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供基于FPGA的动态可重构硬件加速方法及系统,用于解决现有技术中FPGA不能复用相同的计算硬件资源从而导致灵活性较低的问题。为实现上述目的及其他相关目的,本专利技术提供一种基于FPGA的动态可重构硬件加速方法,包括:提取应用程序的可重构数据流图,所述可重构数据流图包括:含有多个函数节点的函数层数据流图、及每个所述函数节点的含有多个运算节点的电路层数据流图;对于每个函数节点,从其中的起始运算节点起,计算其余各个运算节点的运算起始时间和运算结束时间,据以计算每个函数节点的运算起始时间和运算结束时间;在不改变各函数节点间原本的数据依赖的基础上,将所述函数层数据流图重新分层,每层包括按照函数节点内运算时间分开排序时在同一等级的电路;将拥有相同函数功能的函数层合并为同一函数层,合并后的各函数层依照预设规则结合,每个结合后的函数层成为一个独立的配置层,同一配置层中的函数并行运行。于本专利技术一实施例中,所述依照预设规则结合,包括:依照排序顺序从低层到高层逐一结合。于本专利技术一实施例中,所述计算每个函数节点的运算起始时间和运算结束时间,包括:取各起始运算节点的运算起始时间作为各函数节点的运算起始时间;取各运算节点中最大的运算结束时间作为各函数节点的运算结束时间。于本专利技术一实施例中,所述方法还包括方案层生成步骤,从而使同一应用能采用不同配置层的组合来完成整个函数的执行,包括:每个配置层根据配置中排序最高的函数层级寻找包含下一函数层级的配置层;包含相同函数的配置层不能结合;每个结合形成的方案包含所述应用的所有函数。于本专利技术一实施例中,所述方法还包括运行时管理步骤,包括:提取分层优化后的各函数层的函数性能模型;根据生成的各配置层和各所述函数性能模型提取每个配置层的性能模型;根据各所述配置层的性能模型提取各方案的性能模型;根据各所述方案的性能模型及数据处理量计算每个所述方案的运行时间;根据所述数据处理量及每个所述方案的重构次数估算重构成本。于本专利技术一实施例中,所述性能模型包括:表示并行计算能力的并行度。于本专利技术一实施例中,所述还包括应用步骤,包括:提取各阶段需要处理的数据量;读取每个应用的所有方案;预测每个方案的运行时间以及重构成本;根据重构成本,选取运行时间最少的方案予以执行,其中,执行方案在每个配置层运行时进行重构操作。为实现上述目的及其他相关目的,本专利技术提供一种基于FPGA的动态可重构硬件加速系统,包括:提取模块,用于提取应用程序的可重构数据流图,所述可重构数据流图包括:含有多个函数节点的函数层数据流图、及每个所述函数节点的含有多个运算节点的电路层数据流图;计算模块,用于对于每个函数节点,从其中的起始运算节点起,计算其余各个运算节点的运算起始时间和运算结束时间,据以计算每个函数节点的运算起始时间和运算结束时间;分层模块,用于在不改变各函数节点间原本的数据依赖的基础上,将所述函数层数据流图重新分层,每层包括按照函数节点内运算时间分开排序时在同一等级的电路;合并模块,用于将拥有相同函数功能的函数层合并为同一函数层,合并后的各函数层依照预设规则结合,每个结合后的函数层成为一个独立的配置层,同一配置层中的函数并行运行。如上所述,本专利技术的基于FPGA的动态可重构硬件加速方法及系统,避免了传统的FPGA不能复用相同的计算硬件资源的问题,大大提高了FPGA的灵活性以及运算速度。附图说明图1a显示为本专利技术一实施例的应用程序所需函数及其数据依赖图。图1b显示了传统硬件电路对图1a的解决方案图。图1c显示了动态可重构硬件对图1a的解决方案图。图2显示为本专利技术一实施例的基于FPGA的动态可重构硬件加速方法流程图。图3显示为本专利技术一实施例的某一应用的可重构数据流图。图4a~4e显示为优化函数层生成配置层、方案层的过程分解图。图5显示为本专利技术一实施例的对不同电路配置进行运行时管理的方法流程图。图6a~6c显示为本专利技术三种应用的可重构数据流图。图7显示为本专利技术一实施例的对不同电路配置进行应用的方法流程图。图8显示为本专利技术一实施例的基于FPGA的动态可重构硬件加速系统模块图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。图1a~1b显示了逻辑可编程阵列在通常应用中的效率及理论解决方案,具体的:图1a显示了应用程序所需函数A、B、C、D及其数据依赖。逻辑可编程阵列器件能够支持4个优化电路模块,每个模块能够支持A、B、C、D中的一个函数。假设:每个函数需要处理n个数据,每个硬件模块可在一个时钟处理一个数据,并且,多个并行硬件模块可支持数据并行处理,例如:2个A的硬件优化模块可在n/2个时钟周期内处理完n个数据。图1b显示了传统硬件电路的解决方案:逻辑可编程阵列器件支持对应于A、B、C、D的四个硬件优化模块。图1a所包含的函数按照数据依赖顺序执行:第一列的A、C函数首先运行,第二列的A、B函数在第一列函数执行完毕后运行,第三列的A、D函数在此之后运行,最后是第四列的C函数。在每一列函数运行时,逻辑可编程阵列器件上的四个硬件模块只有部分得到执行(执行的硬件模块标黑)。对于每一列数据的处理都需要n个时钟周期,所有的函数在4n个时钟周期内处理完成。图1c示例了动态可重构硬件的解决方案,对应每一列硬件函数硬件重构为不同的硬件结构:对第一列函数,逻辑可编程阵列器件里可以支持两个A模块和两个C模块,由于每个模块每个时钟周期可以完成一个数据处理,n个数据在n/2个时钟周期内完成,对第二列函数,两个C模块重构为两个B模块,同样在n/2个周期内完成数据处理,对第三列函数,本文档来自技高网...
基于FPGA的动态可重构硬件加速方法及系统

【技术保护点】
一种基于FPGA的动态可重构硬件加速方法,其特征在于,包括:提取应用程序的可重构数据流图,所述可重构数据流图包括:含有多个函数节点的函数层数据流图、及由每个所述函数节点所含有的多个运算节点所构成的电路层数据流图;对于每个函数节点,从其中的起始运算节点起,计算其余各个运算节点的运算起始时间和运算结束时间,据以计算每个函数节点的运算起始时间和运算结束时间;在不改变各函数节点间原本的数据依赖的基础上,将所述函数层数据流图重新分层,每层包括按照函数节点内运算时间分开排序时在同一等级的电路;将拥有相同函数功能的函数层合并为同一函数层,合并后的各函数层依照预设规则结合,每个结合后的函数层成为一个独立的配置层,同一配置层中的函数并行运行。

【技术特征摘要】
1.一种基于FPGA的动态可重构硬件加速方法,其特征在于,包括:提取应用程序的可重构数据流图,所述可重构数据流图包括:含有多个函数节点的函数层数据流图、及由每个所述函数节点所含有的多个运算节点所构成的电路层数据流图;对于每个函数节点,从其中的起始运算节点起,计算其余各个运算节点的运算起始时间和运算结束时间,据以计算每个函数节点的运算起始时间和运算结束时间;在不改变各函数节点间原本的数据依赖的基础上,将所述函数层数据流图重新分层,每层包括按照函数节点内运算时间分开排序时在同一等级的电路;将拥有相同函数功能的函数层合并为同一函数层,合并后的各函数层依照预设规则结合,每个结合后的函数层成为一个独立的配置层,同一配置层中的函数并行运行。2.根据权利要求1所述的基于FPGA的动态可重构硬件加速方法,其特征在于,所述依照预设规则结合,包括:依照排序顺序从低层到高层逐一结合。3.根据权利要求1所述的基于FPGA的动态可重构硬件加速方法,其特征在于,所述计算每个函数节点的运算起始时间和运算结束时间,包括:取各起始运算节点的运算起始时间作为各函数节点的运算起始时间;取各运算节点中最大的运算结束时间作为各函数节点的运算结束时间。4.根据权利要求1所述的基于FPGA的动态可重构硬件加速方法,其特征在于,还包括方案层生成步骤,从而使同一应用能采用不同配置层的组合来完成整个函数的执行,包括:每个配置层根据配置中排序最高的函数层级寻找包含下一函数层级的配置层;包含相同函数的配置层不能结合;每个结合形成的方案包含所述应用的所有函数。5.根据权利要求4所述的基于FPGA的动态可重构硬件加速方法,...

【专利技术属性】
技术研发人员:牛昕宇
申请(专利权)人:上海鲲云信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1