雷達信號處理:FPGA還是GPU?
為降低桶形移位頻率,綜合過程盡可能使用較大的尾數寬度,從而不需要頻率歸一化和去歸一化。27 × 27和36 × 36硬核乘法器支持比單精度實現所要求的23位更大的乘法計算,54 × 54和72 × 72結構的乘法器支持比52位更大的雙精度計算,這通常是雙精度實現所要求的。FPGA邏輯已經針對大規模定點加法器電路進行了優化,包括了內置進位超前電路。
本文引用地址:http://www.104case.com/article/221498.htm當需要進行歸一化和去歸一化時,另一種可以避免低性能和過度布線的方法是使用乘法器。對于一個24位單精度尾數(包括符號位),24 × 24乘法器通過乘以2n對輸入移位。27 × 27和36 × 36硬核乘法器支持單精度擴展尾數,可以用于構建雙精度乘法器。
在很多線性代數算法中,矢量點乘是占用大量FLOP的底層運算。單精度實現長度是64的長矢量點乘需要64個浮點乘法器,以及隨后由63個浮點加法器構成的加法樹。這類實現需要很多桶形移位電路。
相反,可以對64個乘法器的輸出進行去歸一化,成為公共指數,最大是64位指數。可以使用定點加法器電路對這些64路輸出求和,在加法樹的最后進行最終的歸一化。如圖4所示,這一本地模塊浮點處理過程省掉了每一加法器所需要的中間歸一化和去歸一化。即使是IEEE 754浮點處理,最大指數決定了最終的指數,因此,這種改變只是在計算早期進行指數調整。

圖4.矢量點乘優化
但進行信號處理時,在計算最后盡可能以高精度來截斷結果才能獲得最佳結果。這種方法傳遞除單精度浮點處理所需要尾數位寬之外的額外的尾數位寬,一般從27位到36位補償了單精度浮點處理所需要的早期去歸一化這種次優方法,。采用浮點乘法器進行尾數擴展,因此,在每一步消除了對乘積進行歸一化的要求。
這一方法每個時鐘周期也會產生一個結果。GPU體系結構可以并行產生所有浮點乘法,但不能高效并行進行加法。原因是因為不同的內核必須通過本地存儲器傳輸數據實現通信,因此缺乏FPGA架構的連接的靈活特性。
融合數據通路方法產生的結果比傳統IEEE 754浮點結果更加精確,如表3所示。
表3.Cholesky分解準確性(單精度)

使用Cholesky分解算法,實現大規模矩陣求逆,獲得了這些結果。相同的算法以三種不同的方法實現:
♦ 在MATLAB/Simulink中,采用IEEE 754單精度浮點處理。
♦ 在RTL單精度浮點處理中,使用融合數據通路方法。
♦ 在MATLAB中,采用雙精度浮點處理。
雙精度實現要比單精度實現精度高十億倍(109)。
MATLAB單精度誤差、RTL單精度誤差和MATLAB雙精度誤差對比確認了融合數據通路方法的完整性。采用了這一方法來獲得輸出矩陣中所有復數元素的歸一化誤差以及矩陣元素的最大誤差。使用Frobenius范數計算了總誤差:

由于范數包括了所有元素的誤差,因此比單一誤差大很多。
此外,DSP Builder高級模塊庫和OpenCL工具流程都針對下一代FPGA體系結構,支持并優化目前的設計。由于體系結構創新和工藝技術創新,性能可以達到100峰值GFLOPs/W。
結論
高性能雷達系統現在有新的處理平臺選擇。除了更好的SWaP,與基于處理器的解決方案相比,FPGA能提供低延時和高GFLOP。隨著下一代高性能計算優化FPGA的推出,這種優勢會更明顯。
Altera的OpenCL編譯器為GPU編程人員提供了幾乎無縫的通路來評估這一新處理體系結構的指標。Altera OpenCL符合1.2規范,提供全面的數學庫支持。它解決了傳統FPGA遇到的時序收斂、DDR存儲器管理以及PCIe主處理器接口等難題。
對于非GPU開發人員,Altera提供DSP Builder高級模塊庫工具流程,支持開發人員開發高fMAX定點或浮點DSP設計,同時保持基于Mathworks的仿真和開發環境的優點。使用FPGA的雷達開發人員多年以來一直使用該產品,實現更高效的工作流程和仿真,其fMAX性能與手動編碼HDL相同。
fpga相關文章:fpga是什么
鎖相環相關文章:鎖相環原理
評論