Stratix 10:信號處理功能最強大、效率最高的FPGA
FPGA在高度并行、大吞吐量數(shù)字信號處理(DSP)應用方面享有很好的聲譽。過去幾代FPGA器件一直穩(wěn)定的增強這方面的特性。但是,很少有一種革命性的而不是漸進式的新產品出現(xiàn)。Altera新的Stratix® 10 FPGA和SoC系列便是這類產品。Stratix 10器件的定點性能高達23 TMAC,單精度浮點性能達到每秒10萬億次浮點運算(TFLOPS),使得這些器件成為性能最好的DSP器件,而功耗只是其他可選方案的一小部分,例如圖形處理單元(GPU)和專用DSP。與競爭GPU解決方案相比,Stratix 10客戶實際設計的每秒十億次浮點運算(GFLOPS)/瓦提高了一個數(shù)量級。
這一新器件結合了多種創(chuàng)新技術,在性能上實現(xiàn)了突破。除了大量的DSP資源之外,Stratix 10器件的密度范圍是500 kLE至5.5 MLE,還包括了大量的片內存儲器,所有這些都在一個單片內核架構設計中,采用了Intel 14 nm三柵極工藝制造——業(yè)界最先進的半導體工藝技術。Stratix 10器件包括突破性的HyperFlexTM內核體系結構,與前一代高性能FPGA產品相比,多種應用的FPGA設計內核時鐘頻率(fMAX)提高了2倍。存儲器和DSP模塊等Stratix 10內核硬核模塊,發(fā)揮HyperFlex新體系結構的優(yōu)勢,設計支持1 GHz運算。DSP模塊本身繼續(xù)支持18位和27位定點,提供64位累加器,這是所有FPGA中最大的。為進一步提高動態(tài)范圍,Arria® 10器件系列第一次引入的固有浮點體系結構擴展到了Stratix® 10器件系列中,支持使用專用硬核電路的IEEE 754單精度浮點。這一新功能支持設計人員以相同的定點性能和功效在浮點中實現(xiàn)其算法。其實現(xiàn)不會對功耗、面積或者密度有任何影響,也沒有損失定點特性或者功能。
浮點性能和特性
關鍵技術在于Altera第10代FPGA的內核。獲得大獎的Altera精度可調DSP模塊在每一DSP模塊中包含了一個單精度加法器和單精度乘法器。在20 nm系列中,現(xiàn)有的中端Arria 10 FPGA性能從140 GFLOPS提升至1.5 TFLOPS。Altera新的14 nm Stratix 10 FPGA系列在這些硬核DSP模塊中內置了1萬多個浮點運算器,該系列將使用相同的體系結構,這是一個器件中有史以來最強的浮點計算并行能力。
另一創(chuàng)新是DSP模塊性能。采用Stratix 10器件,所有定點模式工作保持在1 GHz頻率,所有浮點模式保持在800 MHz頻率。如此高的時鐘速率結合14 nm三柵極工藝技術實現(xiàn)的高密度DSP模塊,2.8 MLE Stratix 10 FPGA系列型號的峰值性能達到了11.5 TMAC (使用預加器時,為23 TMAC)和9.3 TFLOPS。功效也是前所未有的——每瓦大約80 GFLOPS,遠遠好于競爭GPU解決方案。
這一浮點計算單元包括了乘法器和加法器,與現(xiàn)有精度可調定點模式實現(xiàn)了無縫集成。這提供了1:1的浮點乘法器和加法器,可以獨立用作乘加器或者乘法累加器。設計人員仍然可以在其當前設計中使用所有定點DSP處理特性,基于優(yōu)異的數(shù)字保真和動態(tài)范圍,根據(jù)需要很容易將全部設計或者部分設計更新到單精度浮點。IEEE 754浮點所有復雜性都位于DSP模塊的硬核邏輯中,因此,不會占用可編程邏輯,即使是100%的使用了DSP模塊,浮點也支持定點設計中相似的時鐘速率。
浮點DSP模塊列協(xié)同工作時也支持特殊矢量模式。這些矢量模式能夠用于支持高性能計算應用中典型的線性代數(shù)函數(shù),以及更傳統(tǒng)的FPGA功能,例如高度并行的快速傅里葉變換(FFT)或者有限沖擊響應(FIR)濾波器等。設計的結構增強了每一模塊中浮點乘法器和加法器的使用,支持設計人員盡可能將所用Altera® FPGA的性能發(fā)揮到峰值GFLOPS。
Altera提供全面的浮點數(shù)學函數(shù)集。符合開放計算語言(OpenCL™) 1.2規(guī)范的70多個math.h庫函數(shù)針對新的硬核浮點體系結構進行了優(yōu)化。這些函數(shù)利用了FPGA中的硬核存儲器和DSP模塊,幾乎沒有使用FPGA邏輯。即使在占用了很多資源的FPGA設計中,這也確保了連續(xù)、低延時、高fMAX實現(xiàn)。
效能優(yōu)點
天然支持浮點功能對于設計人員在FPGA中實現(xiàn)復雜的高性能算法非常重要。在構建系統(tǒng)之前,在浮點中完成所有算法開發(fā)和仿真。如果不能天然支持浮點,完成算法仿真后,通常還需要6到12個月的投入,在定點實現(xiàn)中分析、轉換并驗證浮點算法。設計必須首先轉換成定點,這就需要在數(shù)值分析和穩(wěn)定性方面有豐富經(jīng)驗的工程師。盡管這樣,其實現(xiàn)的數(shù)字精度也沒有仿真高。算法中任何的后期更改都必須再次手動導出,優(yōu)化系統(tǒng)中定點算法的任何步驟都不會反映在仿真中。如果系統(tǒng)集成和測試過程中出現(xiàn)了問題,其原因可能如下:手動轉換過程有錯誤,數(shù)字精度問題,或者算法本身就有問題。隔離問題會非常困難。使用Altera浮點FPGA能夠避免所有這些問題,或者在很大程度上減輕這些問題的影響。
對比GP-GPU
與Altera浮點FPGA自然產生競爭的并不是其他競爭FPGA,而是通用圖形處理單元(GP-GPU)。競爭FPGA供應商的軟核浮點實現(xiàn)使用了邏輯來實現(xiàn)復數(shù)浮點電路,在面積上效率不高,還不具競爭力。同樣相似的是數(shù)年前沒有硬核乘法器的FPGA,采用DSP模塊與現(xiàn)代FPGA體系結構相競爭。
但是,幾年前,GPU供應商在計算單元中應用了浮點功能,極大的提高了浮點處理能力,浮點性能超過了1 TFLOP。這些器件就是GP-GPU,它們不僅僅是圖形引擎,而且還是通用計算加速器。
被稱為OpenCL的通用設計流程可以用在FPGA和GPU上,在算法實現(xiàn)上有很大的不同。GP-GPU使用了“精細粒度”體系結構,并行運行數(shù)千個浮點乘加小單元。算法被分成數(shù)萬個線程,數(shù)據(jù)準備好后,映射到計算單元中。
Altera FPGA使用了“粗粒度”體系結構,通常將幾千個計算單元排列成幾十個高度并行的結構,在矢量上運行。FFT內核或者Cholesky分解內核就是類似的例子。每一個內核在每一時鐘周期產生矢量輸出數(shù)據(jù),矢量寬度是由設計人員決定的。
當計算I/O比非常高時,GP-GPU算法效率較高。而主GPU必須通過PCI Express® (PCIe®)至GPU鏈路提供數(shù)據(jù),因此,除非能夠很好的計算每一數(shù)據(jù),否則會沒有足夠的數(shù)據(jù)提供給GPU。GP-GPU一般有很多庫,以插件服務卡的形式提供。
FPGA在高性能計算方面相對較新,但是具有競爭優(yōu)勢。首先,由于粗粒度體系結構,數(shù)據(jù)流的處理延時要比GPU低得多。對于數(shù)據(jù)中心加速等某些應用,或者雷達處理等嵌入式應用,這是很大的優(yōu)勢。
其次,F(xiàn)PGA的GFLOPS/W性能要優(yōu)于GP-GPU,這在航空電子等環(huán)境惡劣的應用中非常關鍵。這也意味著,對于所要求的功率預算,F(xiàn)PGA完成的計算量一般要多于GP-GPU。
第三,F(xiàn)PGA具有很好的通用性和廣泛的連通性。FPGA能夠直接放在數(shù)據(jù)通路中,處理通過的數(shù)據(jù)。例如,F(xiàn)PGA可以直接與天線陣輸入連接,完成定點和浮點處理,同時通過光纖或者背板鏈路與其他系統(tǒng)組件通信。實際上,Altera在其OpenCL工具中專門增加了數(shù)據(jù)流選項,符合OpenCL供應商擴展要求。
浮點設計流程
設計人員可以在各種設計流程中使用浮點FPGA特性。例如,硬件設計人員可能只需要一些浮點算術函數(shù)或者FFT內核,這可以使用目前就有的Altera宏功能和MegaCore®知識產權(IP)內核。
對于硬件或者系統(tǒng)工程師,Altera還提供基于模型的流程,使用了其DSP Builder高級模塊庫工具。這一工具流程支持工程師完全在MathWorks環(huán)境中進行設計、仿真并實現(xiàn),自然支持線性代數(shù)應用的矢量需求。對于GPU設計人員,可以使用OpenCL,這不需要非常熟悉FPGA體系結構。
目前可以提供所有這些工具流程,支持大部分Altera FPGA系列。使用Quartus® II軟件,面向Stratix 10或者Arria 10 FPGA進行重新編譯,無縫映射到硬核浮點DSP模塊中,充分發(fā)揮了天然浮點FPGA的巨大優(yōu)勢。
致謝
Michael Parker,首席DSP規(guī)劃經(jīng)理,Altera公司。