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