Altera: FPGA集成硬核浮點DSP
1 FPGA浮點運算推陳出新
本文引用地址:http://m.butianyuan.cn/article/273282.htm以往FPGA在進行浮點運算時,為符合IEEE 754標準,每次運算都需要去歸一化和歸一化步驟,導致了極大的性能瓶頸。因為這些歸一化和去歸一化步驟一般通過FPGA中的大規(guī)模桶形移位寄存器實現(xiàn),需要大量的邏輯和布線資源。通常一個單精度浮點加法器需要500個查找表(LUT),單精度浮點要占用30%的LUT,指數(shù)和自然對數(shù)等更復雜的數(shù)學函數(shù)需要大約1000個LUT。因此隨著DSP算法越來越復雜,F(xiàn)PGA性能會明顯劣化,對占用80%~90%邏輯資源的FPGA會造成嚴重的布線擁塞,阻礙FPGA的快速互聯(lián),最終會影響時序收斂。
為解決以上問題, 2010年Altera在DSP Builder高級模塊庫中引入了融合數(shù)據(jù)通路設計。它將基本算子組合在一個函數(shù)或者數(shù)據(jù)通路中,通過分析數(shù)據(jù)通路的位增長,選擇最優(yōu)歸一化輸入,為數(shù)據(jù)通路分配足夠的精度,盡可能消除歸一化和去歸一化步驟。這一優(yōu)化平臺將定點DSP模塊與可編程軟核邏輯相結(jié)合,避免了大量使用這類桶形移位寄存器。與使用幾種基本IEEE 754算子構(gòu)成的等價數(shù)據(jù)通路相比,減少了50%的邏輯,延時減小了50%。并且,這一方法總的數(shù)據(jù)精度一般高于使用基本IEEE 754浮點算子庫的方法。
在Altera Arria 10和Stratix 10器件中的硬核浮點DSP模塊開發(fā)出來之前,融合數(shù)據(jù)通路方法的浮點運算性能和效率是業(yè)界領(lǐng)先的。表1顯示了Cholesky求解器運行在Stratix V版DSP開發(fā)套件上的結(jié)果,形式是Ax = B,使用了DSP Builder高級模塊庫中的融合數(shù)據(jù)通路設計流程。一般來說Cholesky的輸入矩陣函數(shù)規(guī)模大、延時長,因此很難在FPGA硬件中實現(xiàn),但具有融合數(shù)據(jù)通路的DSP Builder模塊庫的浮點運算占用的邏輯只是基本浮點乘法器的3到4倍,并會在每一時鐘周期產(chǎn)生一個結(jié)果,從而可實現(xiàn)相應規(guī)模的 Cholesky求解。
隨著Altera DSP模塊體系結(jié)構(gòu)的進步和軟件工具的不斷優(yōu)化,目前Altera已可在FPGA中實現(xiàn)高性能浮點運算,Altera的Arria 10和Stratix 10器件中的硬核浮點DSP模塊就是業(yè)界領(lǐng)先的浮點解決方案的代表。
2 硬核浮點DSP提高設計效能 加快上市
在Arria 10和Stratix 10器件中的硬核浮點DSP模塊不僅提高了運算性能,還可加快產(chǎn)品上市時間。
在提高運算性能方面,主要體現(xiàn)在三個方面:
一是可節(jié)省邏輯資源的使用。采用Arria 10和Stratix 10器件中的硬核浮點DSP模塊,F(xiàn)PGA系統(tǒng)克服了前述提到的限制性能的挑戰(zhàn)。在過去,需要使用定點乘法器和FPGA邏輯來實現(xiàn)浮點運算功能,Altera的硬核浮點DSP幾乎不使用現(xiàn)有FPGA浮點計算所需要的邏輯資源,并且,桶形移位寄存器可在硬核DSP模塊中實現(xiàn),就避免了使用寶貴的FPGA資源運行歸一化和歸一化函數(shù)。采用硬核浮點DSP模塊內(nèi)置這一創(chuàng)新體系結(jié)構(gòu),不僅節(jié)省了很多的邏輯資源,時序收斂或者fMAX要求也不再受限于次優(yōu)布線,從而保證了使用80%至90%邏輯資源的FPGA仍能保持較高的fMAX性能。
二是提高了數(shù)字精度。硬核浮點DSP模塊支持很多復數(shù)浮點運算,包括累乘法、加減法等,其浮點輸出都符合IEEE 754標準,從而保證了在具有高分辨率要求的應用中其數(shù)值的一致性。過去FPGA實現(xiàn)浮點運算是在內(nèi)部數(shù)據(jù)通路上使用二進制補碼表示。在算法輸入輸出時,這一內(nèi)部二進制補碼表示與IEEE 754格式相互轉(zhuǎn)換。這在解決桶形移位寄存器占用資源方面至關(guān)重要,但實際輸出值與MATLAB/Simulink模型值相比會有所偏差。但是,在采用了Arria 10和Stratix 10器件中的硬核浮點模塊后,實際輸出值與Simulink模型顯示的高度一致。
三是提高了能效。Arria 10和Stratix 10器件還在FPGA業(yè)界實現(xiàn)了能效最高的浮點,每瓦分別是50 GFLOP和100 GFLOPS,極大地減少了以前進行浮點運算時所需要的邏輯和布線資源,從而大幅度降低了內(nèi)核動態(tài)功耗。
而在加快產(chǎn)品上市方面,F(xiàn)PGA中集成的硬核浮點DSP支持很多常見的DSP模型和仿真環(huán)境,可無縫實現(xiàn)優(yōu)化浮點運算。在從軍事領(lǐng)域的雷達到通信系統(tǒng)等各種應用中,Arria 10和Stratix 10器件為設計人員提供了更高效的設計,平均可將設計時間縮短6-12個月。一方面是因為不需要額外的轉(zhuǎn)換過程。在前幾代FPGA中要實現(xiàn)高性能浮點運算,需要進行轉(zhuǎn)換,將浮點轉(zhuǎn)換為定點,在FPGA中實現(xiàn),在定點實現(xiàn)中分析、轉(zhuǎn)換并驗證浮點算法。這種轉(zhuǎn)換過程一般步驟繁瑣。此外,這一過程完成后,還需驗證轉(zhuǎn)換過程當中的準確率。如果設計方面有任何的修改或變化,都需要重新把這些流程再進行一遍,持續(xù)進行轉(zhuǎn)換。另一方面是因為Altera提供了易用的設計工具。Altera優(yōu)異的DSP設計工具包括為硬件設計人員、基于模型的設計人員提供的DSP Builder,以及為軟件編程人員提供的面向OpenCL的軟件開發(fā)套件(SDK)。利用這些工具,設計人員完全不需要浮點到定點的轉(zhuǎn)換過程,相應地在實現(xiàn)過程中也不需要調(diào)試,在幾分鐘內(nèi)就可以完成系統(tǒng)定義和仿真,直至系統(tǒng)實現(xiàn)。當使用DSP Builder或者面向OpenCL的SDK設計算法,設計人員能夠?qū)㈤_發(fā)精力集中在算法定義和迭代上,而不是設計硬件,幫助他們縮短了開發(fā)和驗證時間。
fpga相關(guān)文章:fpga是什么
評論