基于FPGA的BLAS加速系統(tǒng)的設(shè)計與研究
發(fā)布時間:2020-10-13 19:37
隨著信息化社會的飛速發(fā)展,人類對高性能計算的需求迅猛增長。高性能計算機(jī)的衡量標(biāo)準(zhǔn)主要以計算速度(尤其是浮點運算速度)作為標(biāo)準(zhǔn),而BLAS數(shù)學(xué)庫是高性能計算領(lǐng)域應(yīng)用最廣泛的數(shù)學(xué)庫。高性能計算機(jī)的運算速度由CPU的運算速度決定,性能/功耗比值較低。如何提高效能,是當(dāng)前高性能計算領(lǐng)域的熱門話題。實現(xiàn)高效能計算的有效途徑之一是采用運算加速器件。 本文結(jié)合國家高性能計算機(jī)工程技術(shù)研究中心預(yù)研項目,設(shè)計并實現(xiàn)了基于FPGA的BLAS加速系統(tǒng)。本文的主要工作包括:對BLAS數(shù)學(xué)庫進(jìn)行了核心分析,提取出DGEMM算法作為可加速部分;比較了目前常用的乘法器和加法器,分析各種乘法器和加法器的優(yōu)缺點,并利用FPGA資源設(shè)計了適用于此加速系統(tǒng)的乘加器;重新編寫了BLAS數(shù)學(xué)庫,用于本加速系統(tǒng);編寫了驅(qū)動軟件,在內(nèi)核中實現(xiàn)了對加速系統(tǒng)硬件的控制以及軟硬件的數(shù)據(jù)交互。設(shè)計了加速卡硬件的PCIE模塊、SRAM模塊和運算陣列模塊。 許多關(guān)鍵技術(shù)在本文中也有應(yīng)用:在數(shù)學(xué)庫中和加速卡的設(shè)計中都利用了乒乓操作技術(shù),并且在加速卡的設(shè)計中充分利用了流水線技術(shù);根據(jù)CPU和加速系統(tǒng)的性能,通過軟件調(diào)度和任務(wù)分配,實現(xiàn)了兩者的負(fù)載均衡。 本文設(shè)計的BLAS加速系統(tǒng),軟件部分可以跨平臺使用,硬件具有體積小、功耗低的特點。測試結(jié)果顯示該加速系統(tǒng)可穩(wěn)定運行于300MHZ,性能可達(dá)到51Gflops,而功耗只有30W,實現(xiàn)了高效能。
【學(xué)位單位】:首都師范大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2009
【中圖分類】:TP332
【部分圖文】:
目前使用的有基本BLAs[8],Intel開發(fā)的MKL,AMD開發(fā)的AcML,Goto博士開發(fā)的GotoBLAS等幾種,其中基本BLAS和GotoBLAS都是在Linux操作系統(tǒng)下使用,而ACML和MKL則是Windows和Linux系統(tǒng)都可以使用。圖2一1是在相同條件下基本BLAS和GotoBLAS的實測性能對比。叢本萬L筋和‘。t。性能比談01{矍馨馨黝翼翼翼馨馨瞿贅翼翼翼護(hù)產(chǎn)護(hù)滬夕夕夕產(chǎn)戶尹護(hù)尹尹尹尹尹尹尹尹尹尹產(chǎn)尹憑陣大可、圖2一1基本BLAS與GotoBLAS實測性能對比可以看出,GotoBLAS的性能比基本BLAS的性能高出了一個數(shù)量級,原因是Got0BLAS充分考慮到了CPU的Cache,而且考慮到了TLB。ACML和MKL的性能與Got0BLAS相差不大,但兩者都是收費的,而且兩者針對自己的CPU設(shè)計的,通用性不如GotoBLAS。 2.2BLAS數(shù)學(xué)庫的核心分析 BLAS(BasicLinearAlgebraSubroutines)包是一些關(guān)于矩陣的基本操作。共分三層,第一層(最底層)實現(xiàn)向量與向量的運算,比如向量內(nèi)積 (DDOT)
通過研究可知迭代乘法器的速度不能滿足高速運算的需求,一種改進(jìn)的方法是將迭代乘過程展開,在一個時鐘周期內(nèi)完成兩個部分積的求和,這樣在同樣的時鐘周期完成求和次數(shù)是迭代乘法器的兩倍。將這一操作映射到硬件上就是線性陣列乘法器,如圖2一4所示。它結(jié)合了三個功能:部分積產(chǎn)生,累加部分積與最終相加。乘法器需要消耗的資源增加了,功耗與復(fù)雜度也有一定的增加。
2.4.2.3并行乘法器根據(jù)上述兩種乘法器結(jié)構(gòu)可以看出,將迭代的結(jié)構(gòu)展開,乘法器的速度會有所提升,所以,進(jìn)一步將陣列乘法器的迭代進(jìn)行展開就得到完全并行的乘法器結(jié)構(gòu),如圖2一5所示。全陣列乘法器完成NxN的乘法需要有N*N個加法器與N*N個部分積產(chǎn)生單元,延遲時間為O伽),為了進(jìn)一步提升乘法器的速度,將部分積求和網(wǎng)絡(luò)連接成樹型結(jié)構(gòu),采用壓縮器來壓縮部分積,樹型結(jié)構(gòu)需要的資源要比全陣列結(jié)構(gòu)要少,完成NxN乘法運算的時間為O(Log伽))。但是樹型乘法器的連線比陣列乘法器來的復(fù)雜。
【參考文獻(xiàn)】
本文編號:2839618
【學(xué)位單位】:首都師范大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2009
【中圖分類】:TP332
【部分圖文】:
目前使用的有基本BLAs[8],Intel開發(fā)的MKL,AMD開發(fā)的AcML,Goto博士開發(fā)的GotoBLAS等幾種,其中基本BLAS和GotoBLAS都是在Linux操作系統(tǒng)下使用,而ACML和MKL則是Windows和Linux系統(tǒng)都可以使用。圖2一1是在相同條件下基本BLAS和GotoBLAS的實測性能對比。叢本萬L筋和‘。t。性能比談01{矍馨馨黝翼翼翼馨馨瞿贅翼翼翼護(hù)產(chǎn)護(hù)滬夕夕夕產(chǎn)戶尹護(hù)尹尹尹尹尹尹尹尹尹尹產(chǎn)尹憑陣大可、圖2一1基本BLAS與GotoBLAS實測性能對比可以看出,GotoBLAS的性能比基本BLAS的性能高出了一個數(shù)量級,原因是Got0BLAS充分考慮到了CPU的Cache,而且考慮到了TLB。ACML和MKL的性能與Got0BLAS相差不大,但兩者都是收費的,而且兩者針對自己的CPU設(shè)計的,通用性不如GotoBLAS。 2.2BLAS數(shù)學(xué)庫的核心分析 BLAS(BasicLinearAlgebraSubroutines)包是一些關(guān)于矩陣的基本操作。共分三層,第一層(最底層)實現(xiàn)向量與向量的運算,比如向量內(nèi)積 (DDOT)
通過研究可知迭代乘法器的速度不能滿足高速運算的需求,一種改進(jìn)的方法是將迭代乘過程展開,在一個時鐘周期內(nèi)完成兩個部分積的求和,這樣在同樣的時鐘周期完成求和次數(shù)是迭代乘法器的兩倍。將這一操作映射到硬件上就是線性陣列乘法器,如圖2一4所示。它結(jié)合了三個功能:部分積產(chǎn)生,累加部分積與最終相加。乘法器需要消耗的資源增加了,功耗與復(fù)雜度也有一定的增加。
2.4.2.3并行乘法器根據(jù)上述兩種乘法器結(jié)構(gòu)可以看出,將迭代的結(jié)構(gòu)展開,乘法器的速度會有所提升,所以,進(jìn)一步將陣列乘法器的迭代進(jìn)行展開就得到完全并行的乘法器結(jié)構(gòu),如圖2一5所示。全陣列乘法器完成NxN的乘法需要有N*N個加法器與N*N個部分積產(chǎn)生單元,延遲時間為O伽),為了進(jìn)一步提升乘法器的速度,將部分積求和網(wǎng)絡(luò)連接成樹型結(jié)構(gòu),采用壓縮器來壓縮部分積,樹型結(jié)構(gòu)需要的資源要比全陣列結(jié)構(gòu)要少,完成NxN乘法運算的時間為O(Log伽))。但是樹型乘法器的連線比陣列乘法器來的復(fù)雜。
【參考文獻(xiàn)】
相關(guān)期刊論文 前1條
1 吳金;應(yīng)征;;高速浮點乘法器設(shè)計[J];電路與系統(tǒng)學(xué)報;2005年06期
本文編號:2839618
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2839618.html
最近更新
教材專著