OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3944|回复: 0

[XILINX] 【阿东手把手教你学FPGA】FPGA的浮点运算性能研究

[复制链接]

8

主题

13

帖子

3

精华

超级版主

Rank: 8Rank: 8

积分
339
金钱
339
注册时间
2019-11-11
在线时间
31 小时
发表于 2023-3-14 20:22:34 | 显示全部楼层 |阅读模式
本帖最后由 dongguo100 于 2023-3-17 10:31 编辑

DSP、GPU和FPGA都具有性能和功效优势,一般用作CPU的加速器。考虑到计算体系结构的多样性,设计人员需要一种统一的方法来对比性能和功效。通用的方法是测量每秒浮点运算次数 (FLOP),拨照IEEE 754标准,FLOP被定义为单精度(32位)或者双精度(54位)加法或者乘法。所有常用函数和运算功能如快速傅里叶变换(FFT)和矩阵运算等都需要加法器和乘法器,所有这些体系结构中加法器和乘法器之比一般都是1:1。
FPGA浮点运算性能表现强劲
业内一般采用峰值FLOPS来对比DSP、GPU和FPGA的性能。在最大工作频率下,可通过加法器和乘法器求和积来确定峰值FLOPS比。这代表了计算的理论极限,虽然在实际中很难获得,但这确是实用性的对比指标。
在DSP方面,德州仪器的TMS320C667x DSP包括了8个DSP内核,每一内核含有两个处理子系统,每一子系统包括4个单精度浮点加法器和4个单精度浮点乘法器,总共有64个加法器和64个乘法器。处理器最快能够以1.25GHz频率运行,测算峰值性能达到160GFLOP。

市场上功能最强大的一种GPU是Nvidia公司的Tesla K20。 这一GPU基于CUDA(计算统一设备架构)内核每一内核都有一个浮点乘法器和加法器。在单精度浮点配置时,每个时钟周期能够执行一次。每个流处理器(SMX)引擎中有192个CUDA内核。K20实际上含有15个SMX,正常情况下能够使用其中的13个,这就总共有2496个CUDA内核。每一时钟周期执行2FLOP,最大运行频率是706MHz,这样其峰值单精度浮点性能达到了3520 GFLOP。
而从FPGA的表现来看,Altera在其FPGA中提供硬核浮点引擎。在整个可编程逻辑结构中,嵌入的硬核DSP模块含有一个单精度浮点乘法器和加法器。Altera的中端Arria10系列AX066 FPGA器件有1678个DSP慔块,每个模块能够在每一时钟周期中执行2FLOP,因此每一时钟周期达到3376 FLOP。在额定速率为450MHz(这是对于浮点模式而言,定点模式会更高)时,则达到了1520GFLOP。以相似的方式进行计算,Altera的高端Stratix10 FPGA由于提高了时钟速率,而且器件规模更大,有更多的DSP资源,因而性能高达10000 GFLOP, 即10TeraFLOP。
从以上可以看出,具有不同体系结构的器件的峰值浮点计算的能力是不同的。
确定FPGA浮点运算性能面临挑战
采用FPGA逻辑资源来实现浮点功能,可实现任意精度,不会受到业界标准单精度和双精度的限制,Altera可提供几种不同级别的浮点精度。但是,并不太容易确定使用了FPGA可编程逻辑的峰值浮点性能。Altera FPGA的峰值浮点速率只是基于硬核浮点引擎的性能,假设浮点功能并没有使用可编程逻银资源,而是其他的设计功能使用了可编程逻辑资源,例如I/O接口、存储器接口以及其他功能等。
某些因素导致很难精确计算出FPGA的浮点性能。里然通过查询FPGA供应商浮点知识产权 (IP)用户指南能够确定构建一个单精度浮点乘法器和加法器所需的逻辑量,但用户指南并没有提供关键信息,而这是布线资源所需要的。实现浮点运算时需要大规模循环移位奇存器,它会占用非常多的可编程逻辑互联资源。而所有FPGA支持逻辑的互联数是一定的,与典型定点FPGA设计应用有关。然而,与大部分定点运算相比,浮点运算并不需要这么多的互联。当建立一个浮点函数的实例化时,会占用逻辑单元中公共区域的布线资源。但是,大品的密集浮点运算会导致布线拥塞,导致设计时钟速率和逻辑利用率大幅度下降。Altera对此开发了一种专用综合技术,即“融合数据通路”,在一定程度上减轻了这种彩响,能支持在逻姆架构中实现大规模的浮点设计,单精度采用定点27x27乘法器,双精度采用54x 54乘法器。
此外,FPGA的逻资源并不能被完全使用到浮点运算中。在某一设计占用了大部分逻辑资源的情形下,时钟速率即Fmax能够实现的时序收敛范围就缩小了,最终有可能根本实现不了时序收敛。通常来说,70%~90%的逻辑资源可以被使用,在浮点运算密集型应用情况下应只占用最低比例的逻辑资源。

应构建基准测试浮点运算
出于以上原因,几乎不可能计算出FPGA实际的浮点运算性能。绝佳方法是构建基准测试浮点运算,抑或FPGA供应商提供这类设计,以评估FPGA的浮点性能。
Altera提供28nm FPGA基准测试设计,覆盖了基本以及复杂浮点设计。公开的结果显示,采用28nm FPGA,FFT等简单算法能够实现数百GFLOP,QR和Cholesky分解等复杂算法则达到100 GFLOP以上。
第三方技术分析公司Berkeley设计技术有限公司 在Altera的28nm FPGA上进行了复杂高性能浮点DSP设计独立分析。使用OpenCL在Altera 28nm Stratix V FPGA可实现很多浮点基准测武设计,通过申请即可获得这些设计。这些设计目前正在移植到Arria 10FPGA上,由于采用了硬核浮点DSP模块体系结构,因此能够极大地提高性能。
对于缺少硬核浮点DSP的FPGA,使用供应商计算的理论GFLOP数据是不太可靠的。基于逻辑实现的FPGA浮点性能如果宣称高于500 GFLOP,都应该对其保持高度怀疑。供应商应提供具有逻辑、存储器以及其他资源和时钟速率的FPGA编译报告。更进一步,任何公司宣称实现了某种性能,都应提供编译后的设计文件,以支持结果重现。不怡当的GFLOP值不应被认可。
强调一下,虽然可采用FPGA的可编程逻资源实现浮点功能,但实际性能和吞吐量的不确定性导致了一些不实的市场宣传,在选择FPGA时,不能只看厂商自己给出的GFLOP值。
在大部分计算机体系结构中,浮点乘法器和加法器采用1:1是有原因的。使用乘法器的应用包括矩阵乘法、FFT、高阶数学函数,份如平方根、三角函数等,以及所有需要进行大虽线性代数运算的设计。任何实用的浮点应用都需要大量的浮点乘法器,这也是为何计算机体系结构提供同样数量的乘法器和加法器的实际原因。虽然只使用浮点加法器(没有乘法器)也能宣称实现较高的比率,但这类设计井没有实际意义。
有经验的FPGA设计人员都知道,随着所使用的逻辑资源百分比的增加,设计Fmax(设计跑的最高频率)会下降。一股而言,使用80%以上的逻辑会导致时序收敛的时钟频率大幅降低。而且,其他功能还需要很多逻辑,这进一步減少了浮点计算能够使用的逻辑资源。
此外,对FPGA系列的不同选择也会产生很大彩响。如果所选择的FPGA器件成本高昂,
一般会用于ASIC原型开发应用。其时钟速率和触发器翻转率都较低,因较高的时钟速率和触发器翻转率会极大地增加功耗,超出了器件的VCC电流和功耗能力。而使用针对DSP应用进行优化的FPGA系列则能够极大地减少GFLOP值。
简而言之,含有诸多假设条件的浮点运算测试并不是业界认可的基准测试方法,因此不应使用这一方法获得的数据来对比其他半导体供应商产品所宣称的峰值浮点性能,峰值GFLOP指标应代表某一器件能够实现的性能。当然,还是要有一些降额考虑,因为不可能让所有浮点运算以100%的占空比来进行。

更详细的FPGA的性能如何评估,大家可以参考另外一个文章《FPGA+CPU平台的性能估计方法》:http://www.openedv.com/forum.php?mod=viewthread&tid=342480&extra=page%3D1

注:转载自《探究FPGA的峰值浮点运算性能》,作者不详,阿东做了一些补充和修改,如有侵权请联系我,谢谢!

正点原子FPGA开发板推荐:
入门XILINX学习可以选择达芬奇开发板:https://detail.tmall.com/item.htm?abbucket=2&id=624335496505
入门ZYNQ学习可以选择领航者开发板      :https://detail.tmall.com/item.htm?abbucket=2&id=609032204975
进阶MPSOC学习可以选择MSPOC开发板 :https://detail.tmall.com/item.htm?abbucket=2&id=692450874670
进阶XILINX可以选择达芬奇Pro开发板      :https://detail.tmall.com/item.htm?abbucket=2&id=640278473312
国产FPGA学习可以选择紫光开发板          :https://detail.tmall.com/item.htm?abbucket=2&id=692712955836
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表