面向高性能计算,与GPGPU展开竞争
与传统使用定点乘法器和FPGA逻辑来实现浮点功能的做法不同,Altera的硬核浮点DSP几乎不使用现有FPGA浮点计算所需要的逻辑资源,释放了上千个乘法器和加法器,从而一举在Arria 10器件中实现了1.5 TeraFLOP (每秒浮点运算次数)和Stratix 10器件中10 TeraFLOP的DSP性能。
“这要归功于我们创新的精度可调DSP体系结构。”Altera公司软件和DSP产品市场经理Albert Chang说,在DSP模块现有模式(标准精度定点模式和高精度定点模式)基础上添加浮点模式,Altera FPGA和SoC的性能和功耗效率将在很多领域高于目前正在使用的微处理器和GPU,尤其是那些需要高性能计算的行业(大数据分析、石油和天然气行业的地震建模、金融仿真、雷达和医疗成像等)。但其对定点模式并没有影响(性能、大小和功耗),且对管芯总体改变<1%。
Altera方面称,其开发的硬核浮点FPGA产品的竞争对手并非来自同行,而是通用图形处理单元(GPGPUs)。“其他FPGA厂商提供的‘软核’浮点使用了逻辑来实现复数浮点电路,是缺乏功效和竞争力的。”Michael Parker打比方说,这就好像数年前没有硬核乘法器的FPGA,却总在试图和现代具备DSP模块的FPGA进行竞争一样可笑。
尽管类似OpenCL这样的公共设计流程可以用在FPGA和GPGPU上,但两者在算法实现上有很大的不同。GPGPU使用了并行处理器体系结构,并行运行数千个浮点乘加小单元。算法被分成数万个线程,然后再将数据映射到计算单元中;而Altera FPGA使用了流水线逻辑体系结构,是将几千个计算单元排列成流数据流电路,在矢量上运行(FFT内核或者Cholesky分解内核就是类似的例子)。每一个内核在每一时钟周期产生矢量输出数据,矢量宽度由设计人员决定。
Michael Parker 认为,FPGA在高性能计算方面相对较新,但是具有竞争优势。首先,由于采用流水线逻辑体系结构,数据流的处理延时要比GPU低得多,在金融交易算法等某些应用中,这是关键优势;其次,FPGA的GFLOPS/W性能要优于GPGPU,这在航空电子等环境不受控的应用中非常关键;第三,FPGA具有很好的通用性和广泛的连通性。例如,FPGA可以直接与天线阵输入连接,完成定点和浮点处理,同时通过光纤或者背板链路与其他系统组件通信。
硬核浮点DSP模块缩短6-12个月的开发时间
由于设计人员可以将其DSP设计直接转译成浮点硬件,而不是转换为定点,从而大幅度缩短了时序收敛和验证时间。相比此前系列,硬核浮点DSP模块能够缩短近12个月的开发时间。
Albert Chang认为,自然支持浮点功能对于设计人员在FPGA中实现复杂的高性能算法非常重要—在构建系统之前,在浮点中完成所有算法开发和仿真;完成算法后,通常还需要6-12个月的投入,在定点实现中分析、转换并验证浮点算法。需要克服的三个主要问题包括:
1. 必须手动将浮点设计转换为定点,这需要非常有经验的工程师。尽管这样,其实现的数字精度也没有仿真高。
2. 如果以后对算法进行任何修改,也需要再次进行手动转换。而且,优化系统中定点算法的任何步骤都不会反映在仿真中。
3. 如果系统集成和测试过程中出现了问题,其原因可能如下:手动转换过程有错误,数字精度问题,或者算法本身就有问题。隔离问题会非常困难。使用Altera浮点FPGA能够避免所有这些问题。
为了帮助硬件设计人员、基于模型的设计人员以及软件编程人员在器件中轻松实现高性能浮点DSP模块,Altera还同时提供多种工具流程,包括:
DSP Builder高级模块库提供了基于模型的设计流程,设计人员使用业界标准MathWorks Simulink工具在几分钟内就可以完成系统定义和仿真,直至系统实现。
对于软件编程人员,Altera在FPGA编程中率先使用了OpenCL,并面向FPGA提供基于C语言的通用高级设计流程。Arria 10 FPGA浮点DSP模块结合使用方便的开发流程,为软件编程人员提供了硬件直接转译方法,帮助他们缩短了开发和验证时间。
2014年下半年,Altera将提供面向Arria 10器件中硬核浮点DSP模块的浮点设计流程,包括演示和基准测试。在此之前,用户可以采用Arria 10 FPGA开始设计,使用软件浮点技术来实现浮点功能,在得到设计流程支持后,软件工具会自动(一次重新编译)将浮点算法无缝映射到硬核浮点运算中,而不必使用软核逻辑。