雷達信號處理:FPGA還是GPU?
FPGA和CPU一直是雷達信號處理不可分割的組成部分。傳統(tǒng)上FPGA用于前端處理,CPU用于后端處理。隨著雷達系統(tǒng)的處理能力越來越強,越來越復雜,對信息處理的需求也急劇增長。為此,FPGA不斷在提高處理能力和吞吐量,CPU也在發(fā)展以滿足下一代雷達的信號處理性能需求。這種努力發(fā)展的趨勢導致越來越多的使用CPU加速器,如圖形處理單元(GPU)等,以支持較重的處理負載。
本文引用地址:http://2s4d.com/article/276090.htm本文對比了FPGA和GPU浮點性能和設計流程。最近幾年,GPU已經不僅能完成圖形處理功能,而且成為強大的浮點處理平臺,被稱之為GP-GPU,具有很高的峰值FLOP指標。FPGA傳統(tǒng)上用于定點數字信號處理器(DSP),而現在足以競爭完成浮點處理功能,也成為后端雷達處理加速功能的有力競爭者。
在FPGA前端,40 nm和28 nm均報道了很多可驗證的浮點基準測試結果。Altera的下一代高性能FPGA將采用Intel的14 nm三柵極技術,性能至少達到5 TFLOP.使用這種先進的半導體工藝,性能可實現100 GFLOPs/W.而且,Altera FPGA現在支持OpenCL,這是GPU使用的一款優(yōu)秀的編程語言。
峰值GFLOPS指標
目前的FPGA性能可達到1TFLOP以上峰值,AMD和Nvidia最新的GPU甚至更高,接近4 TFLOP.但在某些應用中,峰值GFLOP,即TFLOP,提供的器件性能信息有限。它只表示了每秒能完成的理論浮點加法或乘法總數。這一分析表示,在雷達應用中,很多情況下,FPGA在算法和數據規(guī)模上超過了GPU吞吐量。
一種中等復雜且常用的算法是快速傅里葉變換(FFT)。大部分雷達系統(tǒng)由于在頻域完成大量處理工作,因此會經常用到FFT算法。例如,使用單精度浮點處理實現一個4,096點FFT.它能在每個時鐘周期輸入輸出四個復數采樣。每個FFT內核運行速度超過80 GFLOP,大容量28 nm FPGA的資源支持實現7個此類內核。
但如圖1所示,該FPGA的FFT算法接近400 GFLOP.這一結果基于“按鍵式”OpenCL編譯,無需FPGA專業(yè)知識。使用邏輯鎖定和設計空間管理器(DSE)進行優(yōu)化,7內核設計接近單內核設計的fMAX,使用28 nm FPGA,將其提升至500 GFLOP,超過了10 GFLOPs/W.

圖1.Stratix V 5SGSD8 FPGA浮點FFT性能
這一GFLOPs/W結果要比CPU或者GPU功效高很多。對比GPU,GPU在這些FFT長度上效率并不高,因此沒有進行基準測試。當FFT長度達到幾十萬個點時,GPU效率才比較高,能夠為CPU提供有效的加速功能。但是,雷達處理應用一般是長度較短的FFT,FFT長度通常在512至8,192之間。
總之,實際的GFLOP一般只達到峰值或者理論GFLOP的一小部分。出于這一原因,更好的方法是采用算法來對比性能,這種算法能夠合理的表示典型應用的特性。隨著基準測試算法復雜度的提高,其更能代表實際雷達系統(tǒng)性能。
算法基準測試
相比依靠供應商的峰值GFLOP指標來驅動處理技術決策,另一方法是使用比較復雜的第三方評估??諘r自適應處理(STAP)雷達常用的算法是Cholesky分解。這一算法經常用于線性代數,高效的解出多個方程,可以用在相關矩陣上。
Cholesky算法在數值上非常復雜,要獲得合理的結果總是要求浮點數值表示。計算需求與N3成正比,N是矩陣維度,因此,一般對處理要求很高。雷達系統(tǒng)一般是實時工作,因此,要求有較高的吞吐量。結果取決于矩陣大小以及所要求的矩陣處理吞吐量,通常會超過100 GFLOP.
表1顯示了基于Nvidia GPU指標1.35 TFLOP的基準測試結果,使用了各種庫,以及Xilinx Virtex6 XC6VSX475T,其密度達到475K LC,這種FPGA針對DSP處理進行了優(yōu)化。用于Cholesky基準測試時,這些器件在密度上與Altera FPGA相似。LAPACK和MAGMA是商用庫,而GPU GFLOP則是采用田納西州大學開發(fā)的OpenCL實現的(2)。對于小規(guī)模矩陣,后者更優(yōu)化一些。
表1.GPU和Xilinx FPGA Cholesky基準測試(2)

Altera測試了容量中等的Altera Stratix? V FPGA(460K邏輯單元(LE)),使用了單精度浮點處理的Cholesky算法。如表2所示,在Stratix V FPGA上進行Cholesky算法的性能要比Xilinx結果高很多。Altera基準測試還包括QR分解,這是不太復雜的另一矩陣處理算法。Altera以可參數賦值內核的形式提供Cholesky和QRD算法。
表2.Altera FPGA Cholesky和QR基準測試

應指出,基準測試的矩陣大小并不相同。田納西州大學的結果來自[512×512]的矩陣,而Altera基準測試的Cholesky是[360x360],QRD則高達[450x450]。原因是,矩陣規(guī)模較小時,GPU效率非常低,因此,在這些應用中,不應該使用它們來加速CPU.作為對比,在規(guī)模較小的矩陣時,FPGA的工作效率非常高。雷達系統(tǒng)對吞吐量的要求很高,每秒數千個矩陣,因此,效率非常關鍵。采用了小矩陣,甚至要求把大矩陣分解成小矩陣以便進行處理。
而且,Altera基準測試是基于每個Cholesky內核的。每個可參數賦值的Cholesky內核支持選擇矩陣大小,矢量大小和通道數量。矢量大小大致決定了FPGA資源。較大的[360×360]矩陣使用了較長的矢量,支持FPGA中實現一個內核,達到91 GFLOP.較小的[60×60]矩陣使用的資源更少,因此,可以實現兩個內核,總共是2×42 = 84 GFLOP.最小的[30×30]矩陣支持實現三個內核,總共是3×25 = 75 GFLOP.
FPGA看起來更適合解決數據規(guī)模較小的問題,很多雷達系統(tǒng)都是這種情況。GPU之所以效率低,是因為計算負載隨N3而增大,數據I/O隨N2增大,最終,隨著數據的增加,GPU的I/O瓶頸不再是問題。此外,隨著矩陣規(guī)模的增大,由于每個矩陣的處理量增大,矩陣每秒吞吐量會大幅度下降。在某些點,吞吐量變得非常低,以至于無法滿足雷達系統(tǒng)的實時要求。
對于FFT,計算負載增加至N log2 N,而數據I/O隨N增大而增大。對于規(guī)模較大的數據,GPU是高效的計算引擎。作為對比,對于所有規(guī)模的數據,FPGA都是高效的計算引擎,更適合大部分雷達應用,這些應用中,FFT長度適中,但是吞吐量很大。
fpga相關文章:fpga是什么
矢量控制相關文章:矢量控制原理
評論