动态可重构硬件电路的设计、执行方法及系统技术方案

技术编号:15639864 阅读:51 留言:0更新日期:2017-06-16 02:16
本发明专利技术提供动态可重构硬件电路的设计方法及系统、执行方法及系统。设计过程包括:识别应用中含有常数的算数操作,所述常数的取值在一定范围内变化;根据精度需求调整所述常数的取值范围,所述取值范围由至少一个算数参数组成;根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,据以定制所述硬件电路。执行过程包括:建立应用性能模型,据以选择性能最高的硬件电路执行。本发明专利技术通过减少通用算数单元中的无用操作来减少硬件资源的使用,从而提升硬件电路性能。

【技术实现步骤摘要】
动态可重构硬件电路的设计、执行方法及系统
本专利技术涉及FPGA的硬件电路设计领域,特别是涉及动态可重构硬件电路的优化设计、执行方法及系统。
技术介绍
逻辑可编程阵列(FPGA)是一种在生产后可编程的集成电路芯片,芯片中电路提供可编程节点,可根据用户设定重新定义电路逻辑。相比于传统处理芯片CPU,FPGA可提供针对特定问题的高度优化电路,提升百倍级别计算性能;相比于传统集成电路芯片ASIC,FPGA可提供更灵活的计算方案。FPGA硬件电路性能主要受限于硬件资源:每个计算单元消耗的硬件资源越少,硬件芯片所能够提供的整体计算单元并行度越高,从而支持更高的处理性能。图1显示了一种通过减少计算精度来减少硬件资源使用的常规情况:CPU常用计算单元采用双精度64比特及单精度32比特,其中,双精度采用1比特存储符号信息,11比特存储指数信息,52比特存储小数信息,单精度采用1比特存储符号信息,8比特存储指数信息,23比特存储小数信息。然而,CPU定制计算单元采用1比特存储符号信息,4比特存储数指数信息,8比特存储小数信息,相比于传统双精度及单精度计算单元,13比特的计算精度大幅降低了硬件消耗。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供动态可重构硬件电路的设计、执行方法及系统,用于解决现有技术中优化FPGA的处理性能会导致计算精度降低的问题。本专利技术通过去除通用算数单元中的冗余计算来减少算数单元的资源消耗,无需牺牲计算精度,从而更加有效地优化硬件电路。为实现上述目的及其他相关目的,本专利技术提供一种动态可重构硬件电路的设计方法,包括:识别应用中含有常数的算数操作,所述常数的取值在一定范围内变化;根据精度需求调整所述常数的取值范围,所述取值范围由至少一个算数参数组成;根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,据以定制所述硬件电路。于本专利技术一实施例中,所述精度需求包括:应用精度需求和算法精度需求。于本专利技术一实施例中,所述算法精度需求的确定,包括:确定预设调整范围,并在所述预设调整范围内随机选取数值作为算法参数值,根据公式ε(t,s)=a(t,s)-f(t,s)计算收敛率g,其中,t、s分别代表调整参数在时间、空间域内的位置,ε(t,s)表示算法计算真实值a(t,s)与算法计算实际值f(t,s)之间的差值;若|g|>1,则将所述预设调整范围减半,重新选取数值所谓算法参数值进行计算,直至计算出的收敛率|g|≤1,从而得到最终的调整范围。于本专利技术一实施例中,所述根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,包括:将每个所述算数参数表示为二进制数;在满足所述精度需求的基础上,去除在所需精度之前二进制值为“0”的比特位。于本专利技术一实施例中,所述据以定制所述硬件电路还包括:令所述硬件电路支持应用运行时不同常数的计算,具体通过静态算数单元或动态算数单元的方式实现:所述静态算数单元,采用同一硬件单元的不同叠加方式支持不同的常数运算;所述动态算数单元,针对不同常数重构不同的硬件单元来支持不同的常数运算。于本专利技术一实施例中,在定制完成之后还包括:分别估算所述静态算数单元和所述动态算数单元的硬件资源消耗,并计算对应的并行度,选取并行度高的方式。为实现上述目的及其他相关目的,本专利技术提供一种动态可重构硬件电路的设计系统,包括:识别模块,用于识别应用中含有常数的算数操作,所述常数的取值在一定范围内变化;调整模块,用于根据精度需求调整所述常数的取值范围,所述取值范围由至少一个算数参数组成;剔除模块,用于根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,据以定制所述硬件电路。为实现上述目的及其他相关目的,本专利技术提供一种动态可重构硬件电路,由以上任一所述的动态可重构硬件电路的设计方法设计而成。为实现上述目的及其他相关目的,本专利技术提供一种执行如上所述的动态可重构硬件电路的方法,所述执行方法包括:建立应用性能模型T,并选择性能最高的硬件电路执行;其中,ds表示计算数据量的大小,fknl表示硬件时钟频率、P表示算数单元并行度、Or表示硬件重构成本,Nr*φ表示重构硬件文件大小,由单元重构文件大小φ与需重构硬件单元个数Nr的乘积构成,θ表示重构带宽。为实现上述目的及其他相关目的,本专利技术提供一种执行如上所述的动态可重构硬件电路的系统,所述执行系统包括:处理模块,用于建立应用性能模型T,并选择性能最高的硬件电路执行;其中,ds表示计算数据量的大小,fknl表示硬件时钟频率、P表示算数单元并行度、Or表示硬件重构成本,Nr*φ表示重构硬件文件大小,由单元重构文件大小φ与需重构硬件单元个数Nr的乘积构成,θ表示重构带宽。如上所述,本专利技术的动态可重构硬件电路的设计方法及系、执行方法及系统,通过减少通用算数单元中的无用操作来减少硬件资源的使用,高效地提升了硬件电路性能。附图说明图1显示为本专利技术现有技术中采用减少计算精度方式减少硬件资源使用的示意图。图2显示为本专利技术一实施例的动态可重构硬件电路的设计方法流程图。图3显示为本专利技术一实施例的不同常数值对应的不同的硬件架构设计示意图。图4显示为本专利技术一实施例的根据精度需求去除冗余计算的示意图。图5A~5B显示为本专利技术一实施例的深度定制硬件单元的设计过程示意图。图6显示为本专利技术一实施例的动态可重构硬件电路的设计系统模块图。图7显示为本专利技术一实施例的执行动态可重构硬件电路的方法流程图。图8显示为本专利技术一实施例的执行动态可重构硬件电路的系统模块图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。为了保证计算方案的灵活性,并提供最优的硬件精度,本专利技术提出了一种基于动态可重构(FPGA)的算数单元优化方法,算数单元指加减乘除指数运算等基本计算单元。硬件架构中采用可重构硬件逻辑支持定制化算数单元,硬件定制通过减少通用算数单元中的无用操作来减少硬件资源的使用,从而提升硬件电路性能。请参阅图2,本专利技术提供的动态可重构硬件电路的设计方法,主要包括如下步骤:步骤S201:识别目标单元,其中,目标单元为应用中含有常数的算数操作。如图3所示,其中一个目标单元为常数乘法操作ft,s+1*α,常数α的具体值是在一定范围内波动的,以下将每个具体值称为算法参数。不同的α对应的硬件架构不同:α=0.75使用二进制表示为0.11,α=0.76,使用二进制表示为0.110000101,对于同一32比特乘法单元,α=0.76需要32*9个全加器(f[0]~f[31]、α[0]~α[8]),α=0.75则只需要32*2个全加器(f[0]~f[31]、α[0]~α[1])本文档来自技高网...
动态可重构硬件电路的设计、执行方法及系统

【技术保护点】
一种动态可重构硬件电路的设计方法,其特征在于,包括:识别应用中含有常数的算数操作,所述常数的取值在一定范围内变化;根据精度需求调整所述常数的取值范围,所述取值范围由至少一个算数参数组成;根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,据以定制所述硬件电路。

【技术特征摘要】
1.一种动态可重构硬件电路的设计方法,其特征在于,包括:识别应用中含有常数的算数操作,所述常数的取值在一定范围内变化;根据精度需求调整所述常数的取值范围,所述取值范围由至少一个算数参数组成;根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,据以定制所述硬件电路。2.根据权利要求1所述的动态可重构硬件电路的设计方法,其特征在于,所述精度需求包括:应用精度需求和算法精度需求。3.根据权利要求2所述的动态可重构硬件电路的设计方法,其特征在于,所述算法精度需求的确定,包括:确定预设调整范围,并在所述预设调整范围内随机选取数值作为算法参数值,根据公式ε(t,s)=a(t,s)-f(t,s)计算收敛率g,其中,t、s分别代表调整参数在时间、空间域内的位置,ε(t,s)表示算法计算真实值a(t,s)与算法计算实际值f(t,s)之间的差值;若|g|>1,则将所述预设调整范围减半,重新选取数值所谓算法参数值进行计算,直至计算出的收敛率|g|≤1,从而得到最终的调整范围。4.根据权利要求1所述的动态可重构硬件电路的设计方法,其特征在于,所述根据所述精度需求去除每个所述算数参数所对应的算数操作中的冗余部分,包括:将每个所述算数参数表示为二进制数;在满足所述精度需求的基础上,去除所需精度点前二进制值为“0”的比特位。5.根据权利要求1所述的动态可重构硬件电路的设计方法,其特征在于,所述据以定制所述硬件电路还包括:令所述硬件电路支持应用运行时不同常数的计算,具体通过静态算数单元或动态算数单元的方式实现:所述静态算数单元,采用同一硬件单元的不同叠加方式支持不同的常数运算;所述动态算数单元,针对不同常数重构不同的硬件单元来支持...

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

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

1