每秒浮点运算次数(Floating Point Operations Per Second,FLOPS),按照IEEE 754-2019 浮点运算标准,FLOPS被定义为单精度(32位)或者双精度(64位)数加法或者乘法。
让我们看一下怎样基于其峰值FLOPS来对比DSP、GPU和FPGA体系结构的性能。在最大工作频率下,通过加法器和乘法器求和积来确定峰值FLOPS比。这代表了计算的理论极限,实际中很难获得,因为一般不可能实现所有时间、所有计算单元上都保持运行的算法。但确实有实用的对比指标。
首先,我们考虑DSP GFLOPS性能。对此,我们选择
德州仪器公司的TMS320C667xDSP作为实例器件。这一DSP包括了8个DSP内核,每一内核含有两个处理子系统。每一子系统包括4个单精度浮点加法器和4个单精度浮点乘法器。总共有64个加法器和64个乘法器。最快的能够运行在1.25GHz,峰值性能达到160Giga FLOPS(GFLOPS)。
GPU是非常流行的器件,特别是图像处理应用。功能最强大的一种GPU是NVIDATeslaK20。这一GPU基于CUDA内核,每一个都有一个浮点乘法加法单元,在单精度浮点配置时,每个时钟周期能够执行一次。每个流多处理器(SMX)处理引擎中有192个CUDA内核。K20实际上含有15个SMX,能够使用其中的13个(例如,由于工艺产出问题)。这样,总共有2496个CUDA内核,每一时钟周期2GFLOP,最大运行频率是706MHz。这样,峰值单精度浮点性能达到了3520GFLOP。
Altera等FPGA供应商在其FPGA中提供硬核浮点引擎。在整个可编程逻辑结构中,嵌入的硬核DSP模块含有一个单精度浮点乘法器和加法器。Altera中端Arria10FPGA系列的中等规模FPGA有一款10AX066。这一器件有1678个dsp模块,每个都能够在每一时钟周期中执行并没有使用可编程逻辑,而是设计的其他部分使用了可编程逻辑,例如,数据控制和调度电路、
I/O接口、内部和
外部存储器接口,以及其他面的功能。