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