雷達(dá)信號(hào)處理:FPGA還是GPU?
當(dāng)需要進(jìn)行歸一化和去歸一化時(shí),另一種可以避免低性能和過(guò)度布線的方法是使用乘法器。對(duì)于一個(gè)24位單精度尾數(shù)(包括符號(hào)位),24×24乘法器通過(guò)乘以2n對(duì)輸入移位。27×27和36×36硬核乘法器支持單精度擴(kuò)展尾數(shù),可以用于構(gòu)建雙精度乘法器。
本文引用地址:http://www.ex-cimer.com/article/276090.htm在很多線性代數(shù)算法中,矢量點(diǎn)乘是占用大量FLOP的底層運(yùn)算。單精度實(shí)現(xiàn)長(zhǎng)度是64的長(zhǎng)矢量點(diǎn)乘需要64個(gè)浮點(diǎn)乘法器,以及隨后由63個(gè)浮點(diǎn)加法器構(gòu)成的加法樹(shù)。這類實(shí)現(xiàn)需要很多桶形移位電路。
相反,可以對(duì)64個(gè)乘法器的輸出進(jìn)行去歸一化,成為公共指數(shù),最大是64位指數(shù)。可以使用定點(diǎn)加法器電路對(duì)這些64路輸出求和,在加法樹(shù)的最后進(jìn)行最終的歸一化。如圖4所示,這一本地模塊浮點(diǎn)處理過(guò)程省掉了每一加法器所需要的中間歸一化和去歸一化。即使是IEEE 754浮點(diǎn)處理,最大指數(shù)決定了最終的指數(shù),因此,這種改變只是在計(jì)算早期進(jìn)行指數(shù)調(diào)整。
圖4.矢量點(diǎn)乘優(yōu)化
但進(jìn)行信號(hào)處理時(shí),在計(jì)算最后盡可能以高精度來(lái)截?cái)嘟Y(jié)果才能獲得最佳結(jié)果。這種方法傳遞除單精度浮點(diǎn)處理所需要尾數(shù)位寬之外的額外的尾數(shù)位寬,一般從27位到36位補(bǔ)償了單精度浮點(diǎn)處理所需要的早期去歸一化這種次優(yōu)方法,。采用浮點(diǎn)乘法器進(jìn)行尾數(shù)擴(kuò)展,因此,在每一步消除了對(duì)乘積進(jìn)行歸一化的要求。
這一方法每個(gè)時(shí)鐘周期也會(huì)產(chǎn)生一個(gè)結(jié)果。GPU體系結(jié)構(gòu)可以并行產(chǎn)生所有浮點(diǎn)乘法,但不能高效并行進(jìn)行加法。原因是因?yàn)椴煌膬?nèi)核必須通過(guò)本地存儲(chǔ)器傳輸數(shù)據(jù)實(shí)現(xiàn)通信,因此缺乏FPGA架構(gòu)的連接的靈活特性。
融合數(shù)據(jù)通路方法產(chǎn)生的結(jié)果比傳統(tǒng)IEEE 754浮點(diǎn)結(jié)果更加精確,如表3所示。
表3.Cholesky分解準(zhǔn)確性(單精度)
使用Cholesky分解算法,實(shí)現(xiàn)大規(guī)模矩陣求逆,獲得了這些結(jié)果。相同的算法以三種不同的方法實(shí)現(xiàn):
n在MATLAB/Simulink中,采用IEEE 754單精度浮點(diǎn)處理。
n在RTL單精度浮點(diǎn)處理中,使用融合數(shù)據(jù)通路方法。
n在MATLAB中,采用雙精度浮點(diǎn)處理。
雙精度實(shí)現(xiàn)要比單精度實(shí)現(xiàn)精度高十億倍(109)。
MATLAB單精度誤差、RTL單精度誤差和MATLAB雙精度誤差對(duì)比確認(rèn)了融合數(shù)據(jù)通路方法的完整性。采用了這一方法來(lái)獲得輸出矩陣中所有復(fù)數(shù)元素的歸一化誤差以及矩陣元素的最大誤差。使用Frobenius范數(shù)計(jì)算了總誤差:
由于范數(shù)包括了所有元素的誤差,因此比單一誤差大很多。
此外,DSP Builder高級(jí)模塊庫(kù)和OpenCL工具流程都針對(duì)下一代FPGA體系結(jié)構(gòu),支持并優(yōu)化目前的設(shè)計(jì)。由于體系結(jié)構(gòu)創(chuàng)新和工藝技術(shù)創(chuàng)新,性能可以達(dá)到100峰值GFLOPs/W.
結(jié)論
高性能雷達(dá)系統(tǒng)現(xiàn)在有新的處理平臺(tái)選擇。除了更好的SWaP,與基于處理器的解決方案相比,FPGA能提供低延時(shí)和高GFLOP.隨著下一代高性能計(jì)算優(yōu)化FPGA的推出,這種優(yōu)勢(shì)會(huì)更明顯。
Altera的OpenCL編譯器為GPU編程人員提供了幾乎無(wú)縫的通路來(lái)評(píng)估這一新處理體系結(jié)構(gòu)的指標(biāo)。Altera OpenCL符合1.2規(guī)范,提供全面的數(shù)學(xué)庫(kù)支持。它解決了傳統(tǒng)FPGA遇到的時(shí)序收斂、DDR存儲(chǔ)器管理以及PCIe主處理器接口等難題。
對(duì)于非GPU開(kāi)發(fā)人員,Altera提供DSP Builder高級(jí)模塊庫(kù)工具流程,支持開(kāi)發(fā)人員開(kāi)發(fā)高fMAX定點(diǎn)或浮點(diǎn)DSP設(shè)計(jì),同時(shí)保持基于Mathworks的仿真和開(kāi)發(fā)環(huán)境的優(yōu)點(diǎn)。使用FPGA的雷達(dá)開(kāi)發(fā)人員多年以來(lái)一直使用該產(chǎn)品,實(shí)現(xiàn)更高效的工作流程和仿真,其fMAX性能與手動(dòng)編碼HDL相同。
fpga相關(guān)文章:fpga是什么
矢量控制相關(guān)文章:矢量控制原理
評(píng)論