一种基于FPGA的可配置浮点向量乘法IP核转让专利

申请号 : CN201910088644.3

文献号 : CN109828744B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄兆伟王连明

申请人 : 东北师范大学

摘要 :

本发明涉及一种基于FPGA的可配置浮点向量乘法IP核,包括:运算控制器、乘法阵列模块和加法阵列模块;运算控制器用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互;乘法阵列模块用于实现浮点向量元素乘法运算,加法阵列模块用于实现向量中各元素相乘后累加;该IP核的运算并行度与运算精度可配置,具有高度的灵活性与通用性,有效地提高了FPGA硬件资源利用率;集成运算控制器,解决了基于FPGA的计算加速系统设计周期长的问题;也充分发挥了FPGA并行运行与硬件可重构的优势,能有效地实现FPGA并行计算加速;尤其在时下热门的神经网络计算对精度要求不高但计算密度巨大的情况下,根据需求合理配置运算器能有效提高资源利用率与运算效率。

权利要求 :

1.一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,包括:运算控制器、乘法阵列模块和加法阵列模块;

所述运算控制器,用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互;

所述乘法阵列模块,用于从所述运算控制器获得乘法阵列时钟,及从输入数据总线获得待运算的向量数据,完成浮点乘法运算,并输出乘法阵列输出向量;

所述加法阵列模块,用于从所述运算控制器获得加法阵列时钟和运算调度信号;并将所述乘法阵列输出向量与自身缓存数据进行累加,输出计算结果;

所述乘法阵列模块,包括多个可配置运算精度的流水线浮点乘法器;

所述浮点乘法器,采用第一、第二和第三级流水线设计,适用于可配置浮点格式计算;

第一级流水线对两个输入浮点数的符号、指数与尾数进行异或、定点加法与定点乘法运算,定点加法计算得到的指数和同时包含两个指数的偏置;

第二级流水线中判断指数上溢或下溢并减去一个指数偏置,同时对尾数乘积舍入处理,保留高Mn+2位;

第三级流水线中判断尾数是否产生进位,并对指数与尾数进行相应的规格化调整;

所述浮点加法器,采用第一、第二和第三级流水线设计;

第一级流水线对去符号的F1与F2的值进行比较,取较大数的指数Ea作为下一级流水线运算的指数,并对较小数的尾数Mb右移Ea-Eb位,保证尾数在同一指数下运算;

第二级流水线中判断两数的符号,若符号相同,则取尾数为Ma+Mb;相反则取尾数为Ma-Mb;

第三级流水线通过优先编码器查找尾数前导零的个数,并对指数与尾数进行相应的规格化调整。

2.根据权利要求1所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述运算控制器,包括指令接口部件、时钟管理部件、RAM控制部件、状态反馈部件与运算调度部件;

所述指令接口部件,用于为上层控制器调用向量乘法IP核提供控制接口,简化并行运算资源的调度;

所述时钟管理部件,用于控制运算阵列时钟的启停,降低空闲时系统的功耗;

所述RAM控制部件,用于产生地址信号,主动获取外部RAM数据,简化并行数据调度;

所述状态反馈部件,用于输出状态字,将所述IP核的运行状态与错误信息反馈给所述上层控制器;

所述运算调度部件,用于输出运算调度信号,调整各时刻的并行数据流向,维持运算有序进行。

3.根据权利要求1所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述加法阵列模块,包括多个可配置运算精度的流水线浮点加法器、一个D触发器与两个个数据选择器;

所述D触发器与两个数据选择器分别由所述运算控制器通过所述运算调度信号DFF_EN、M_DVAL、A_MUX控制。

4.根据权利要求3所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述两个数据选择器分别为第一数据选择器和第二数据选择器;

所述第一数据选择器为所述加法阵列模块的输入端数据选择器,用于选择有效的乘法阵列输出向量;

当所述乘法阵列输出向量有效时,所述M_DVAL被所述运算控制器置高,所述加法器读取所述乘法阵列输出向量进行累加;反之被置低,所述加法器读入常数0;

所述D触发器用于缓存输出级加法器流水线运算结果,当所述DFF_EN被置高时,所述D触发器在时钟信号上升沿将输入数据缓存;

所述第二数据选择器为与所述输出级加法器相连的数据选择器,用于选择输入累加数据来源;

当所述A_MUX被置高时,选择输入为前一级加法器的输出,阵列中加法器的输入为乘法阵列输出向量与加法结果的并置,通过输出级加法器构建的流水线反馈回路实现任意数量乘积的累加运算;

当所述A_MUX被置低时,选择输入为所述D触发器缓存的数据,实现加法器内部流水线缓存数据累加。

说明书 :

一种基于FPGA的可配置浮点向量乘法IP核

技术领域

[0001] 本发明涉及边缘计算,并行计算加速技术领域,特别涉及一种基于FPGA的可配置浮点向量乘法IP核。

背景技术

[0002] FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA作为目前主要异构计算平台之一,具有硬件可重构、并行运行和低功耗的优点,适用于嵌入式平台计算加速。
[0003] 以向量乘法为例,两个n维列向量A=[a0,a1,…,an]T与B=[b0,b1,…,bn]T,其向量乘法运算可表示为 典型的向量乘法运算应用广泛,如人工神经网络中的净输入运算:
[0004] A=WTX;W=[b,w0,w1,…,wn]T,X=[1,x0,x1,…,xn]T#(1)[0005] 数字信号处理中的信号卷积运算:
[0006]
[0007] 图像处理中的图像卷积运算:
[0008]
[0009] 其中n与m为图像卷积核的长度与宽度。
[0010] 同时,更复杂矩阵乘法运算可由一定次数的向量乘法运算实现。
[0011] 目前针对FPGA设计的浮点向量乘法运算IP核存在调度复杂,运算精度固定,运算器数量不可配置等问题,导致基于FPGA的计算加速系统设计周期长,硬件资源浪费,能效比低,无法实现高计算复杂度算法对计算速度的要求。
[0012] 且传统基于FPGA设计的浮点向量乘法运算加速器多采用IEEE754标准单精度(FP32)或双精度(FP64)浮点格式运算,无法根据计算需求定制运算精度,没有发挥FPGA硬件可重构的优势。

发明内容

[0013] 本发明的目的在于提供了一种基于FPGA的可配置浮点向量乘法IP核,用于加速FPGA异构计算中的浮点向量乘法运算,通过可配置的方式有效地提高FPGA资源利用率与能效比。
[0014] 本发明实施例提供一种基于FPGA的可配置浮点向量乘法IP核,包括:运算控制器、乘法阵列模块和加法阵列模块;
[0015] 所述运算控制器,用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互;
[0016] 所述乘法阵列模块,用于从所述运算控制器获得乘法阵列时钟,及从输入数据总线获得待运算的向量数据,完成浮点乘法运算,并输出乘法阵列输出向量;
[0017] 所述加法阵列模块,用于从所述运算控制器获得加法阵列时钟和运算调度信号;并将所述乘法阵列输出向量与自身缓存数据进行累加,输出计算结果。
[0018] 进一步地,所述运算控制器,包括指令接口部件、时钟管理部件、RAM控制部件、状态反馈部件与运算调度部件;
[0019] 所述指令接口部件,用于为上层控制器调用向量乘法IP核提供控制接口,简化并行运算资源的调度;
[0020] 所述时钟管理部件,用于控制运算阵列时钟的启停,降低空闲时系统的功耗;
[0021] 所述RAM控制部件,用于产生地址信号,主动获取外部RAM数据,简化并行数据调度;
[0022] 所述状态反馈部件,用于输出状态字,将所述IP核的运行状态与错误信息反馈给所述上层控制器;
[0023] 所述运算调度部件,用于输出运算调度信号,调整各时刻的并行数据流向,维持运算有序进行。
[0024] 进一步地,所述乘法阵列模块,包括多个可配置运算精度的流水线浮点乘法器;
[0025] 所述浮点乘法器,采用第一、第二和第三级流水线设计,适用于可配置浮点格式计算;
[0026] 第一级流水线对两个输入浮点数的符号、指数与尾数进行异或、定点加法与定点乘法运算,定点加法计算得到的指数和同时包含两个指数的偏置;
[0027] 第二级流水线中判断指数上溢或下溢并减去一个指数偏置,同时对尾数乘积舍入处理,保留高Mn+2位;
[0028] 第三级流水线中判断尾数是否产生进位,并对指数与尾数进行相应的规格化调整。
[0029] 进一步地,所述加法阵列模块,包括多个可配置运算精度的流水线浮点加法器、一个D触发器与两个个数据选择器;
[0030] 所述D触发器与两个数据选择器分别由所述运算控制器通过所述运算调度信号DFF_EN、M_DVAL、A_MUX控制。
[0031] 进一步地,所述浮点加法器,采用第一、第二和第三级流水线设计;
[0032] 第一级流水线对去符号的F1与F2的值进行比较,取较大数的指数Ea作为下一级流水线运算的指数,并对较小数的尾数Mb右移Ea-Eb位,保证尾数在同一指数下运算;
[0033] 第二级流水线中判断两数的符号,若符号相同,则取尾数为Ma+Mb;相反则取尾数为Ma-Mb;
[0034] 第三级流水线通过优先编码器查找尾数前导零的个数,并对指数与尾数进行相应的规格化调整。
[0035] 进一步地,所述两个数据选择器分别为第一数据选择器和第二数据选择器;
[0036] 所述第一数据选择器为所述加法阵列模块的输入端数据选择器,用于选择有效的乘法阵列输出向量;
[0037] 当所述乘法阵列输出向量有效时,所述M_DVAL被所述运算控制器置高,所述加法器读取所述乘法阵列输出向量进行累加;反之被置低,所述加法器读入常数0;
[0038] 所述D触发器用于缓存输出级加法器流水线运算结果,当所述DFF_EN被置高时,所述D触发器在时钟信号上升沿将输入数据缓存;
[0039] 所述第二数据选择器为与所述输出级加法器相连的数据选择器,用于选择输入累加数据来源;
[0040] 当所述A_MUX被置高时,选择输入为前一级加法器的输出,阵列中加法器的输入为乘法阵列输出向量与加法结果的并置,通过输出级加法器构建的流水线反馈回路实现任意数量乘积的累加运算;
[0041] 当所述A_MUX被置低时,选择输入为所述D触发器缓存的数据,实现加法器内部流水线缓存数据累加。
[0042] 本发明的优点在于,与现有技术相比,本发明提出的一种基于FPGA的可配置浮点向量乘法IP核,包括:用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互的运算控制器;用于实现浮点向量元素乘法运算的乘法阵列模块,用于实现向量中各元素相乘后累加的加法阵列模块;该IP核的运算并行度与运算精度可配置,具有高度的灵活性与通用性,有效地提高了FPGA硬件资源利用率;集成运算控制器,解决了基于FPGA的计算加速系统设计周期长的问题;也充分发挥了FPGA并行运行与硬件可重构的优势,能有效地实现FPGA并行计算加速;尤其在时下热门的神经网络计算对精度要求不高但计算密度巨大的情况下,根据需求合理配置运算器能有效提高资源利用率与运算效率。
[0043] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0044] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0045] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0046] 图1为本发明中提供的一种基于FPGA的可配置浮点向量乘法IP核的框图。
[0047] 图2为本发明中提供的配置浮点运算器数量N=6时的运算阵列信号传输框图。
[0048] 图3为本发明中提供的可配置浮点乘法器流水线信号传输框图。
[0049] 图4为本发明中提供的可配置浮点加法器流水线信号传输框图。
[0050] 图5为本发明中提供的状态控制时序图。
[0051] 图6为本发明中提供的乘加状态数据流时序图。
[0052] 图7为本发明中提供的累加状态数据流时序图。
[0053] 附图中,1-运算控制器、2-为乘法阵列、3-为加法阵列、4-指令接口部件、5-时钟管理部件、6-RAM控制部件、7-状态反馈部件、8-运算调度部件、9-乘法阵列时钟、10-加法阵列时钟、11-运算调度信号、12-输入向量A、13-输入向量B、14-乘法阵列输出向量、15-指令信号、16-输入时钟、17-输入数据总线、18-输出RAM控制信号、19-状态字、20-输出计算结果。

具体实施方式

[0054] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0055] 参照图1所示,本发明实施例提供一种基于FPGA的可配置浮点向量乘法IP核,包括:运算控制器1、乘法阵列模块2和加法阵列模块3;
[0056] 其中,运算控制器1,用于接收指令信号15和获得输入时钟16,并输出RAM控制信号18和状态字19,实现运算调度与指令交互;
[0057] 乘法阵列模块2,用于从运算控制器1获得乘法阵列时钟9,及从输入数据总线17获得待运算的向量数据,比如输入向量A12和输入向量B13,完成浮点乘法运算,并输出乘法阵列输出向量14;
[0058] 加法阵列模块3,用于从运算控制器1获得加法阵列时钟10和运算调度信号11;并将乘法阵列输出向量14与自身缓存数据进行累加,输出计算结果20。
[0059] 本实施例提供的基于FPGA的可配置浮点向量乘法IP核,包括:用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互的运算控制器;用于实现浮点向量元素乘法运算的乘法阵列模块,用于实现向量中各元素相乘后累加的加法阵列模块;该IP核的运算并行度与运算精度可配置,具有高度的灵活性与通用性,有效地提高了FPGA硬件资源利用率;集成运算控制器,解决了基于FPGA的计算加速系统设计周期长的问题;也充分发挥了FPGA并行运行与硬件可重构的优势,能有效地实现FPGA并行计算加速;尤其在时下热门的神经网络计算对精度要求不高但计算密度巨大的情况下,根据需求合理配置运算器能有效提高资源利用率与运算效率。
[0060] 下面对基于FPGA的可配置浮点向量乘法IP核的构成模块进行详细说明。
[0061] (1)运算控制器1,实现运算调度与指令交互,包括:指令接口部件4、时钟管理部件5、RAM控制部件6、状态反馈部件7与运算调度部件8。
[0062] 指令接口部件4为上层控制器调用向量乘法IP核提供控制接口,简化并行运算资源的调度;时钟管理部件5控制运算阵列时钟的启停,可以有效降低空闲时系统的功耗;RAM控制部件6可以产生地址信号,主动获取外部RAM数据,简化并行数据调度;状态反馈部件7可以输出状态字,将IP核的运行状态与错误信息反馈给上层控制器;运算调度部件8输出运算调度信号,调整各时刻的并行数据流向,维持运算有序进行。
[0063] (2)乘法阵列模块2,参照图2所示,包括多个可配置运算精度的流水线浮点乘法器,各乘法器间不构成反馈回路,阵列每个时钟可完成多次浮点乘法运算。
[0064] (3)加法阵列模块3,参照图2所示,包括多个可配置运算精度的流水线浮点加法器、一个D触发器(DFF)与两个数据选择器(MUX)。
[0065] D触发器与两个数据选择器分别由运算控制器1通过运算调度信号DFF_EN、M_DVAL、A_MUX控制。
[0066] 其中,第一数据选择器为加法阵列输入端数据选择器,用于选择有效的乘法结果,当乘法结果有效时,M_DVAL被运算控制器置高,加法器读入乘法结果进行累加,反之被置低,加法器读入常数0。
[0067] D触发器用于缓存输出级(图2中右侧)加法器流水线运算结果,当DFF_EN被置高时,D触发器在时钟信号上升沿缓存输入数据。
[0068] 其中,第二数据选择器为与输出级加法器相连的数据选择器,用于选择输入累加数据来源,当A_MUX被置高时,选择输入为前一级加法器的输出,此时阵列中加法器的输入为乘法结果与加法结果的并置,通过输出级加法器构建的流水线反馈回路可实现任意数量乘积的累加运算;置低时,选择输入为D触发器缓存的数据,可实现加法器内部流水线缓存数据累加。
[0069] 设计在IEEE754标准浮点基础上,为实现运算精度可配置,扩展了适用于FPGA运算的可配置浮点格式,其指数E的位数与尾数M的位数可根据需求任意更改,扩展后浮点数格式如表1所示。
[0070] 表1扩展浮点数格式
[0071]
[0072] 根据扩展的浮点格式设计的乘法器与加法器各级流水线运算流程参照图3-4所示。
[0073] (4)浮点乘法器,采用三级流水线设计,各级流水线分工明确,适用于可配置浮点格式计算设计,图3-4中比如下标以x=(1,2)表示,那么Sx,Ex与Mx分别为输入浮点数F1、F2的符号、指数与高位添1的尾数。
[0074] 第一级流水线对两个输入浮点数的符号、指数与尾数进行异或、定点加法与定点乘法运算,定点加法计算得到的指数和同时包含两个指数的偏置,该两个指数的偏置相同,因此在第二级流水线中判断指数上溢或下溢并减去一个指数偏置(因为每个浮点数的指数部分都带有一个偏置,所以在浮点乘的过程中,在两个指数求和后需要减去一个指数偏置),同时对尾数乘积舍入处理,保留高Mn+2位;在第三级流水线中判断尾数是否产生进位,并对指数与尾数进行相应的规格化调整。
[0075] (5)浮点加法器,采用三级流水线设计,第一级流水线对去符号的F1与F2的值进行比较,取较大数的指数Ea作为下一级流水线运算的指数,并对较小数的尾数Mb右移Ea-Eb位,保证尾数在同一指数下运算;第二级流水线中判断两数的符号,若符号相同,则取尾数为Ma+Mb,相反则取尾数为Ma-Mb;第三级流水线通过优先编码器查找尾数前导零的个数,并对指数与尾数进行相应的规格化调整。
[0076] 浮点向量乘法IP核的运算时序由运算控制器控制,其运算时序图参照图5、6、7所示。根据图5时序,系统运行可分为空闲(S0)、乘加(S1)与累加(S2)三个状态。
[0077] 图5-7中信号指令分别表示如下:
[0078] CLK:输入时钟信号;
[0079] MAC_START:由上层控制器发起的运算起始信号;
[0080] MAC_RDY:IP核空闲状态位,高电平表示空闲;
[0081] M_EN:乘法阵列时钟使能位,高电平使能时钟;
[0082] M_DVAL:乘法阵列数据有效标志位,高电平表示数据有效;
[0083] A_EN:加法阵列时钟使能信号,高电平使能时钟;
[0084] A_CLR:加法阵列流水线缓存清除信号;
[0085] ADDR:运算控制器请求外部RAM的地址总线;
[0086] A:外部RAM输出向量A数据总线,由向量A中各元素的可配置浮点格式数据并置而成;
[0087] B:外部RAM输出向量B数据总线,由向量B中各元素的可配置浮点格式数据并置而成;
[0088] MO:乘法阵列输出向量数据总线,由乘法阵列中各运算器输出数据并置而成;
[0089] A_MUX:加法阵列数据选择器选择信号,高电平选择输入为前一级加法器的输出,低电平选择输入为D触发器缓存的数据;
[0090] AO:加法阵列输出向量数据,由加法阵列中各运算器输出数据并置而成;
[0091] DFF_EN:D触发器使能信号,高电平时,D触发器在时钟信号上升沿缓存输入端数据;
[0092] MAC:浮点向量乘法运算结果输出数据总线。
[0093] 空闲状态下,运算阵列时钟停止,系统处于低功耗模式。当运算控制器检测到MAC_START指令位上升沿后启动运算,乘法阵列与加法阵列时钟控制信号M_EN、A_EN置高,运算阵列时钟使能;加法阵列缓存清除信号A_CLR置高一个时钟,加法阵列复位;状态位MAC_RDY置低,系统进入乘加状态。
[0094] 乘加状态下,乘法阵列与加法阵列并行工作,期间乘法阵列完成所有向量元素的读取、运算与输出,加法阵列完成所有乘法结果的读入与部分累加运算。图6中,ADDR为运算控制器输出的RAM地址信号,A与B为输入向量,MO与AO分别为乘法阵列与加法阵列输出向量。乘法阵列读入向量元素后延迟三个时钟输出乘法结果,加法阵列在M_DVAL为高电平时读入乘法结果进行累加运算。
[0095] 设配置运算器数量为N,运算的浮点向量长度为D,则系统每个时钟可读取并计算N对元素,共需要读取 ( 表示向上取整,下同)次数据,若N无法被D整除时,计算时在超出向量长度部分填充数值0。k+5个时钟后,乘法运算结束,乘法阵列时钟停止,系统进入累加状态。
[0096] 累加状态下,加法阵列将各加法器流水线中缓存的数据累加并通过MAC输出结果,时序如图7所示。根据图2中加法阵列的结构与加法器三级流水线延迟时间可知, 个时钟后,所有累加数据将流入加法阵列输出级加法器的三级流水线中,再在运算控制器调度下,通过加法阵列D触发器与数据选择器在11个时钟内完成2次串行加运算并输出累加结果。运算完成后,MAC_RDY信号置高,系统进入空闲状态。
[0097] 综上,当配置运算器组数量为N时,完成长度为D的浮点向量乘法运算共需时钟数[0098] 比如:使用ALTERA公司发布的Cyclone IV系列EP4CE115F29C7型号FPGA作为测试平台。EP4CE115F29C7型号FPGA拥有114KLEs(Logic Elements,下同),约4Mb的嵌入式RAM,532个EMEs(Embedded Multiplier 9-bit Elements,下同)。设计采用Verilog HDL语言编写,经过QUARTUS 17.1软件编译、仿真、综合实现。
[0099] 以配置运算浮点格式为FP32(Mn=23,En=8)、FP16(Mn=10,En=5)和FP14(Mn=8,En=5)为例进行对比,设计中浮点运算器的资源占用与运行频率对比如表2所示。
[0100] 表2浮点运算器资源占用与运行频率对比
[0101]
[0102] 随着运算精度的改变,乘法器与加法器的资源占用与运行时钟相应改变,当运算精度降低时,运算器资源占用减少,运行时钟频率得到一定的提高。
[0103] 设计对不同配置浮点格式的长度为1000的向量
[0104] A=[0.999,0.998,…,0]T
[0105] B=[0.001,0.002,…,1]T
[0106]
[0107] 进行向量乘法运算误差对比,结果如表3所示。
[0108] 表3浮点运算器运算精度对比
[0109]
[0110] 设计的向量乘法单元在配置不同数量运算器时不同向量长度乘法运算时间仿真对比如表4所示。
[0111] 表4向量乘法运算时间
[0112]
[0113] 当运算向量长度D较小时,由于运算控制器控制时钟与并行累加延迟,提出的向量乘法单元运算速度较串行流水线乘累加器运算速度略慢;随着运算向量长度D增大,提出的向量乘法单元运算消耗的时钟数比串行流水线乘累加逐渐减少,运算时间T接近于 即一个时钟完成N次乘累加运算。其运算速度相当于串行流水线计算的N倍,通过运算器并行化有效地减少了运算时间,提高了运算速度。
[0114] 设计在配置不同格式与并行运算器数量下的资源占用、运行频率与吞吐率实测数据如表5所示。
[0115] 表5并行运算性能与吞吐率测试
[0116]
[0117] 当运算器数量相同时,配置运算精度较低时,其运行频率会有一定的提高,吞吐率相应增加;当配置运算精度相同时,吞吐率与配置并行运算器数量成比例关系。在测试使用的FPGA平台上,当配置为FP32N=10时,IP核资源占用约为12%,吞吐率可达到3GFLOPS,相当于运行在1.5GHz频率下的串行全流水乘累加器;当配置为FP14N=10时,其资源占用约为5%,吞吐率可达到4.5GFLOPS,其数据吞吐率相当于运行在2.25GHz频率下的串行全流水乘累加器。
[0118] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。