Stratix 10:信号处理功能最强大、效率最高的FPGA
扫描二维码
随时随地手机看文章
FPGA在高度并行、大吞吐量数字信号处理(DSP)应用方面享有很好的声誉。过去几代FPGA器件一直稳定的增强这方面的特性。但是,很少有一种革命性的而不是渐进式的新产品出现。Altera新的Stratix® 10 FPGA和SoC系列便是这类产品。Stratix 10器件的定点性能高达23 TMAC,单精度浮点性能达到每秒10万亿次浮点运算(TFLOPS),使得这些器件成为性能最好的DSP器件,而功耗只是其他可选方案的一小部分,例如图形处理单元(GPU)和专用DSP。与竞争GPU解决方案相比,Stratix 10客户实际设计的每秒十亿次浮点运算(GFLOPS)/瓦提高了一个数量级。
这一新器件结合了多种创新技术,在性能上实现了突破。除了大量的DSP资源之外,Stratix 10器件的密度范围是500 kLE至5.5 MLE,还包括了大量的片内存储器,所有这些都在一个单片内核架构设计中,采用了Intel 14 nm三栅极工艺制造——业界最先进的半导体工艺技术。Stratix 10器件包括突破性的HyperFlexTM内核体系结构,与前一代高性能FPGA产品相比,多种应用的FPGA设计内核时钟频率(fMAX)提高了2倍。存储器和DSP模块等Stratix 10内核硬核模块,发挥HyperFlex新体系结构的优势,设计支持1 GHz运算。DSP模块本身继续支持18位和27位定点,提供64位累加器,这是所有FPGA中最大的。为进一步提高动态范围,Arria® 10器件系列第一次引入的固有浮点体系结构扩展到了Stratix® 10器件系列中,支持使用专用硬核电路的IEEE 754单精度浮点。这一新功能支持设计人员以相同的定点性能和功效在浮点中实现其算法。其实现不会对功耗、面积或者密度有任何影响,也没有损失定点特性或者功能。
浮点性能和特性
关键技术在于Altera第10代FPGA的内核。获得大奖的Altera精度可调DSP模块在每一DSP模块中包含了一个单精度加法器和单精度乘法器。在20 nm系列中,现有的中端Arria 10 FPGA性能从140 GFLOPS提升至1.5 TFLOPS。Altera新的14 nm Stratix 10 FPGA系列在这些硬核DSP模块中内置了1万多个浮点运算器,该系列将使用相同的体系结构,这是一个器件中有史以来最强的浮点计算并行能力。
另一创新是DSP模块性能。采用Stratix 10器件,所有定点模式工作保持在1 GHz频率,所有浮点模式保持在800 MHz频率。如此高的时钟速率结合14 nm三栅极工艺技术实现的高密度DSP模块,2.8 MLE Stratix 10 FPGA系列型号的峰值性能达到了11.5 TMAC (使用预加器时,为23 TMAC)和9.3 TFLOPS。功效也是前所未有的——每瓦大约80 GFLOPS,远远好于竞争GPU解决方案。
这一浮点计算单元包括了乘法器和加法器,与现有精度可调定点模式实现了无缝集成。这提供了1:1的浮点乘法器和加法器,可以独立用作乘加器或者乘法累加器。设计人员仍然可以在其当前设计中使用所有定点DSP处理特性,基于优异的数字保真和动态范围,根据需要很容易将全部设计或者部分设计更新到单精度浮点。IEEE 754浮点所有复杂性都位于DSP模块的硬核逻辑中,因此,不会占用可编程逻辑,即使是100%的使用了DSP模块,浮点也支持定点设计中相似的时钟速率。
浮点DSP模块列协同工作时也支持特殊矢量模式。这些矢量模式能够用于支持高性能计算应用中典型的线性代数函数,以及更传统的FPGA功能,例如高度并行的快速傅里叶变换(FFT)或者有限冲击响应(FIR)滤波器等。设计的结构增强了每一模块中浮点乘法器和加法器的使用,支持设计人员尽可能将所用Altera® FPGA的性能发挥到峰值GFLOPS。
Altera提供全面的浮点数学函数集。符合开放计算语言(OpenCL™) 1.2规范的70多个math.h库函数针对新的硬核浮点体系结构进行了优化。这些函数利用了FPGA中的硬核存储器和DSP模块,几乎没有使用FPGA逻辑。即使在占用了很多资源的FPGA设计中,这也确保了连续、低延时、高fMAX实现。
效能优点
天然支持浮点功能对于设计人员在FPGA中实现复杂的高性能算法非常重要。在构建系统之前,在浮点中完成所有算法开发和仿真。如果不能天然支持浮点,完成算法仿真后,通常还需要6到12个月的投入,在定点实现中分析、转换并验证浮点算法。设计必须首先转换成定点,这就需要在数值分析和稳定性方面有丰富经验的工程师。尽管这样,其实现的数字精度也没有仿真高。算法中任何的后期更改都必须再次手动导出,优化系统中定点算法的任何步骤都不会反映在仿真中。如果系统集成和测试过程中出现了问题,其原因可能如下:手动转换过程有错误,数字精度问题,或者算法本身就有问题。隔离问题会非常困难。使用Altera浮点FPGA能够避免所有这些问题,或者在很大程度上减轻这些问题的影响。
对比GP-GPU
与Altera浮点FPGA自然产生竞争的并不是其他竞争FPGA,而是通用图形处理单元(GP-GPU)。竞争FPGA供应商的软核浮点实现使用了逻辑来实现复数浮点电路,在面积上效率不高,还不具竞争力。同样相似的是数年前没有硬核乘法器的FPGA,采用DSP模块与现代FPGA体系结构相竞争。
但是,几年前,GPU供应商在计算单元中应用了浮点功能,极大的提高了浮点处理能力,浮点性能超过了1 TFLOP。这些器件就是GP-GPU,它们不仅仅是图形引擎,而且还是通用计算加速器。
被称为OpenCL的通用设计流程可以用在FPGA和GPU上,在算法实现上有很大的不同。GP-GPU使用了“精细粒度”体系结构,并行运行数千个浮点乘加小单元。算法被分成数万个线程,数据准备好后,映射到计算单元中。
Altera FPGA使用了“粗粒度”体系结构,通常将几千个计算单元排列成几十个高度并行的结构,在矢量上运行。FFT内核或者Cholesky分解内核就是类似的例子。每一个内核在每一时钟周期产生矢量输出数据,矢量宽度是由设计人员决定的。
当计算I/O比非常高时,GP-GPU算法效率较高。而主GPU必须通过PCI Express® (PCIe®)至GPU链路提供数据,因此,除非能够很好的计算每一数据,否则会没有足够的数据提供给GPU。GP-GPU一般有很多库,以插件服务卡的形式提供。
FPGA在高性能计算方面相对较新,但是具有竞争优势。首先,由于粗粒度体系结构,数据流的处理延时要比GPU低得多。对于数据中心加速等某些应用,或者雷达处理等嵌入式应用,这是很大的优势。
其次,FPGA的GFLOPS/W性能要优于GP-GPU,这在航空电子等环境恶劣的应用中非常关键。这也意味着,对于所要求的功率预算,FPGA完成的计算量一般要多于GP-GPU。
第三,FPGA具有很好的通用性和广泛的连通性。FPGA能够直接放在数据通路中,处理通过的数据。例如,FPGA可以直接与天线阵输入连接,完成定点和浮点处理,同时通过光纤或者背板链路与其他系统组件通信。实际上,Altera在其OpenCL工具中专门增加了数据流选项,符合OpenCL供应商扩展要求。
浮点设计流程
设计人员可以在各种设计流程中使用浮点FPGA特性。例如,硬件设计人员可能只需要一些浮点算术函数或者FFT内核,这可以使用目前就有的Altera宏功能和MegaCore®知识产权(IP)内核。
对于硬件或者系统工程师,Altera还提供基于模型的流程,使用了其DSP Builder高级模块库工具。这一工具流程支持工程师完全在MathWorks环境中进行设计、仿真并实现,自然支持线性代数应用的矢量需求。对于GPU设计人员,可以使用OpenCL,这不需要非常熟悉FPGA体系结构。
目前可以提供所有这些工具流程,支持大部分Altera FPGA系列。使用Quartus® II软件,面向Stratix 10或者Arria 10 FPGA进行重新编译,无缝映射到硬核浮点DSP模块中,充分发挥了天然浮点FPGA的巨大优势。
致谢
Michael Parker,首席DSP规划经理,Altera公司。