充分發(fā)揮FPGA浮點(diǎn)IP內(nèi)核的優(yōu)勢(shì)
最近出現(xiàn)的 FPGA設(shè)計(jì)工具和 IP有效減少了計(jì)算占用的資源,大大簡(jiǎn)化了浮點(diǎn)數(shù)據(jù)通路的實(shí)現(xiàn)。而且,與數(shù)字信號(hào)處理器不同, FPGA能夠支持浮點(diǎn)和定點(diǎn)混合工作的 DSP數(shù)據(jù)通路,實(shí)現(xiàn)的性能超過(guò)了 100 GFLOPS。在所有信號(hào)處理算法中,對(duì)于只需要?jiǎng)討B(tài)范圍浮點(diǎn)算法的很多高性能 DSP應(yīng)用,這是非常重要的優(yōu)點(diǎn)。選擇 FPGA并結(jié)合浮點(diǎn)工具和 IP,設(shè)計(jì)人員能夠靈活的處理定點(diǎn)數(shù)據(jù)寬度、浮點(diǎn)數(shù)據(jù)精度和達(dá)到的性能等級(jí),而這是處理器體系結(jié)構(gòu)所無(wú)法實(shí)現(xiàn)的。
引言
對(duì)于通信、軍事、醫(yī)療等應(yīng)用中的很多復(fù)雜系統(tǒng),首先要使用浮點(diǎn)數(shù)據(jù)處理算法,利用 C或者 MATLAB軟件進(jìn)行仿真和建模。而最終實(shí)現(xiàn)幾乎都采用定點(diǎn)或者整數(shù)算法。算法被仔細(xì)映射到有限動(dòng)態(tài)范圍內(nèi),調(diào)整數(shù)據(jù)通路中的每一功能。這就需要很多取整和飽和步驟,如果處理的不合適,就會(huì)對(duì)算法性能有不利的影響。在集成過(guò)程中一般還需要進(jìn)行大量的驗(yàn)證工作,以確保系統(tǒng)工作符合仿真結(jié)果。
以前,由于缺乏 FPGA工具包的支持, FPGA設(shè)計(jì)人員一般不選擇浮點(diǎn)算法。使用很多浮點(diǎn) FPGA運(yùn)算符時(shí),由于需要大量邏輯和布線資源,因此,它的另一個(gè)缺點(diǎn)是性能太差。 FPGA高效實(shí)現(xiàn)復(fù)數(shù)浮點(diǎn)函數(shù)的關(guān)鍵是使用基于乘法器的算法,利用大量集成在 FPGA器件中的硬件乘法器資源。用于實(shí)現(xiàn)這些非線性函數(shù)的乘法器必須有很高的精度,以保證乘法迭代過(guò)程中的精度要求。而且,高精度乘法器不需要在每一次乘法迭代中進(jìn)行歸一化和逆歸一化處理,大大降低了對(duì)邏輯和布線的要求。
FPGA采用硬件數(shù)字信號(hào)處理 (DSP)模塊,能夠?qū)崿F(xiàn)高效的 36位x36位乘法器,對(duì)于單精度浮點(diǎn)算法,提供足夠的位數(shù),滿足一般的單精度 24位尾數(shù)要求。這些乘法器還能夠用于構(gòu)建更大的乘法器,實(shí)現(xiàn)高達(dá) 72位 x72位的雙精度浮點(diǎn)算法。
由于浮點(diǎn)算法動(dòng)態(tài)范圍較大,相對(duì)于浮點(diǎn)仿真,大大簡(jiǎn)化了系統(tǒng)性能驗(yàn)證任務(wù),因此,對(duì)于設(shè)計(jì)人員而言,這種算法通常能夠提高性能。在某些應(yīng)用中,定點(diǎn)算法是不可行的。動(dòng)態(tài)范圍要求使用浮點(diǎn)算法的一個(gè)常見的例子是矩陣求逆運(yùn)算。
浮點(diǎn) IP內(nèi)核
Altera現(xiàn)在提供業(yè)界最全面的單精度和雙精度浮點(diǎn) IP內(nèi)核,其性能非常高。目前提供的浮點(diǎn) IP內(nèi)核包括:
■加法 /減法
■乘法
■除法
■倒數(shù)
■指數(shù)
■對(duì)數(shù)
■平方根
■逆平方根
■矩陣乘法
■矩陣求逆
■快速傅立葉變換 (FFT)
■對(duì)比
■整數(shù)和分?jǐn)?shù)轉(zhuǎn)換
f本白皮書只提供單精度指標(biāo)。對(duì)于雙精度指標(biāo),請(qǐng)參考浮點(diǎn)宏功能用戶指南。
WP-01116-1.0
2009年 10月, 1.0版
充分發(fā)揮 FPGA浮點(diǎn) IP內(nèi)核的優(yōu)勢(shì) Altera公司
基本功能
圖1詳細(xì)列出了基本浮點(diǎn)功能及其性能。對(duì)比浮點(diǎn)除法與加減法所需要的資源及其性能,表明系統(tǒng)設(shè)計(jì)人
員不需要在算法中避開除法運(yùn)算以簡(jiǎn)化硬件實(shí)現(xiàn)。
圖1. 邏輯和寄存器使用對(duì)比(左側(cè)),以及乘法器和 fMAX對(duì)比(右側(cè))
矩陣乘法
Altera在提供基于 FPGA的參數(shù)賦值浮點(diǎn)矩陣IP內(nèi)核方面有其獨(dú)到之處。這些運(yùn)算符集成了數(shù)十甚至上百個(gè)
浮點(diǎn)運(yùn)算符,保持了較高的性能。矩陣乘法內(nèi)核還可以用于完成標(biāo)準(zhǔn)測(cè)試或者 GFLOP/S和 GFLOP/W。
SGEMM矩陣乘法內(nèi)核的性能結(jié)果如表1所示,它實(shí)際是后編譯時(shí)序逼近結(jié)果,與確定 GFLOP/S通常使用的 Altera公司充分發(fā)揮 FPGA浮點(diǎn) IP內(nèi)核的優(yōu)勢(shì) 紙筆浮點(diǎn)計(jì)算方法不同。任何其他 FPGA供應(yīng)商都不支持這類基準(zhǔn)測(cè)試,用戶使用 Altera Quartus. II軟件中提供的參數(shù)賦值矩陣乘法 IP內(nèi)核,很容易自己進(jìn)行測(cè)試。[!--empirenews.page--]
表 1. 單精度矩陣乘法性能結(jié)果
MatrixAA大小
MatrixBB大小
Vectorsize
使用的邏輯
GFLOPSf MAX (MHz)
功耗 (mW)
ALM (1)
DSP使用 (2)
M9KM144K
存儲(chǔ)器 (bits)
靜態(tài)
動(dòng)態(tài)
I/O
總計(jì)
36x112 112x36 8 4,604 32 43 2 576,200 4 291 2,008 1,063 300 3,334
36x224 224x36 16 7,882 64 77 4 1,101,920 9 291 2,045 1,821 300 4,165
36x448 448x36 32 14,257 128 137 8 2,153,040 18 291 2,110 3,448 300 5,858
64x64 64x64 32 13,154 128 41 8 1,333,233 18 292 2,112 2,604 306 5,023
128x128 128x128 64 25,636 256 141 16 3,173,189 37 293 2,244 5,384 306 7,934
注釋:
(1) 自適應(yīng)邏輯模塊
(2) 18x18 DSP模塊
使用 Quartus II功耗估算器,很容易計(jì)算得到實(shí)際的每瓦每秒 giga浮點(diǎn)結(jié)果 (GFLOPS/W)。使用 Altera.
Stratix. IV EP4SE230 FPGA部分資源時(shí),結(jié)果達(dá)到了 5 GFLOPS/W。使用 Stratix IV EP4SE530器件中更大的
矩陣乘法內(nèi)核,結(jié)果大約為 7 GFLOPS/W,計(jì)算密度為 200 GFLOPS。利用整個(gè)器件實(shí)現(xiàn)大規(guī)模浮點(diǎn)算法
時(shí),分散了 FPGA靜態(tài)功耗,效率非常高。
Altera開發(fā)的浮點(diǎn)技術(shù)大大降低了實(shí)現(xiàn)大規(guī)模浮點(diǎn)數(shù)據(jù)通路的邏輯和布線資源要求。使用浮點(diǎn)數(shù)據(jù)通路優(yōu)化
工具非常關(guān)鍵,對(duì)資源要求的降低使得單位浮點(diǎn)邏輯/布線運(yùn)算比達(dá)到了高端 FPGA的水平。這反映在工
具能夠?qū)崿F(xiàn)接近 300 MHz的 fMAX,與例化的矩陣乘法規(guī)模無(wú)關(guān)。通過(guò)這種方式,在大規(guī)模浮點(diǎn)設(shè)計(jì)中,用
戶能夠可靠的使用 FPGA 80%以上的資源,實(shí)現(xiàn)大于 200-MHz的 fMAX性能。
矩陣求逆
FPGA中浮點(diǎn)算法最常見的應(yīng)用是矩陣求逆。大部分無(wú)線多輸入多輸出 (MIMO)算法、雷達(dá) STAP系統(tǒng)、醫(yī)療
成像聚束和很多高性能計(jì)算應(yīng)用都需要進(jìn)行矩陣求逆。參數(shù)賦值矩陣求逆浮點(diǎn) IP內(nèi)核的實(shí)例性能 (表2)
顯示了非常高的矩陣吞吐量。 4x4矩陣求逆內(nèi)核能夠進(jìn)行每秒 2千萬(wàn)次矩陣求逆運(yùn)算,速度足以支持 LTE
無(wú)線 MIMO應(yīng)用。
表 2. 單精度浮點(diǎn)矩陣求逆 (Cholesky算法 )性能
快速傅立葉變換
FFT是另一種大動(dòng)態(tài)范圍應(yīng)用實(shí)例。由于 FFT算法的內(nèi)在特性,位精度一般會(huì)隨著 FFT長(zhǎng)度增加而增大。某些應(yīng)用使用級(jí)聯(lián) FFT,需要更大的動(dòng)態(tài)范圍。很多雷達(dá)應(yīng)用使用 FFT進(jìn)行定點(diǎn)算法,裝入測(cè)距數(shù)據(jù)。這一般還需要第二次 FFT,裝入多普勒測(cè)距數(shù)據(jù),動(dòng)態(tài)范圍足夠高,需要采用浮點(diǎn)算法。如圖3和圖4所示,相對(duì)于定點(diǎn)算法,需要增加邏輯以實(shí)現(xiàn)單精度浮點(diǎn)算法,而電路 fMAX、存儲(chǔ)器和乘法器基本相似。
充分發(fā)揮 FPGA浮點(diǎn) IP內(nèi)核的優(yōu)勢(shì) Altera公司
圖3. FFT邏輯和寄存器使用對(duì)比
結(jié)論
Altera新的浮點(diǎn)電路優(yōu)化技術(shù)集成到浮點(diǎn) IP內(nèi)核中,同時(shí)提高了密度,并提供更多的邏輯資源,實(shí)現(xiàn)了優(yōu)異
的 FPGA浮點(diǎn)性能。其他供應(yīng)商提供專用浮點(diǎn)處理器解決方案,但是,大部分都達(dá)不到 Altera FPGA解決
方案的 GFLOPS高性能水平,而且沒(méi)有一個(gè)能夠?qū)崿F(xiàn) Stratix IV FPGA解決方案的 GFLOP/W性能。國(guó)家科
學(xué)基金會(huì) (NSF)高性能配置計(jì)算中心 (CHREC)的獨(dú)立基準(zhǔn)測(cè)試證明了這一點(diǎn),認(rèn)為 Stratix IV EP4SE530雙
精度浮點(diǎn)處理的性能最好。
Altera FPGA的其他優(yōu)點(diǎn)包括業(yè)界領(lǐng)先的外部存儲(chǔ)器帶寬資源以及性能達(dá)到 12.5 Gbps的SERDES收發(fā)器等。
FPGA平臺(tái)還提供性能最好的定點(diǎn)數(shù)據(jù)通路,實(shí)現(xiàn)了非常靈活的 I/O和存儲(chǔ)器接口。通過(guò)這些功能, Stratix
IV FPGA成為構(gòu)建高性能浮點(diǎn)數(shù)據(jù)通路的理想平臺(tái),可以用在多種應(yīng)用中,從高性能計(jì)算到雷達(dá)和電子戰(zhàn),
直至基于 MIMO的 SDR/無(wú)線系統(tǒng),以及無(wú)線聚束應(yīng)用等。