版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、浮點(diǎn)矩陣相乘浮點(diǎn)矩陣相乘IPIP核并行改進(jìn)的設(shè)計(jì)與實(shí)現(xiàn)核并行改進(jìn)的設(shè)計(jì)與實(shí)現(xiàn)摘要:要:基于A(yíng)ltera浮點(diǎn)IP核實(shí)現(xiàn)浮點(diǎn)矩陣相乘運(yùn)算時(shí),由于矩陣階數(shù)的增大,造成消耗的器件資源雖增加但系統(tǒng)性能反而下降的問(wèn)題,針對(duì)現(xiàn)有IP核存在數(shù)據(jù)加載不連貫、存儲(chǔ)帶寬不均勻的不足,提出采用并行化數(shù)據(jù)存儲(chǔ)、依據(jù)查找表加載數(shù)據(jù)和處理數(shù)據(jù)的方式對(duì)IP核進(jìn)行改進(jìn)。然后將改進(jìn)的浮點(diǎn)矩陣運(yùn)算在FPGA中實(shí)現(xiàn),經(jīng)過(guò)Quartus、Matlab軟件聯(lián)合仿真并進(jìn)行結(jié)果比對(duì),
2、其誤差不超過(guò)萬(wàn)分之一,且節(jié)省了器件資源、提升了系統(tǒng)性能。仿真結(jié)果表明該設(shè)計(jì)可行,有利于提高諸多高性能領(lǐng)域浮點(diǎn)矩陣的運(yùn)算速度。關(guān)鍵詞:關(guān)鍵詞:浮點(diǎn)矩陣相乘;嵌入式;IP核;現(xiàn)場(chǎng)可編程門(mén)陣列嵌入式計(jì)算作為新一代計(jì)算系統(tǒng)的高效運(yùn)行方式,應(yīng)用于多個(gè)高性能領(lǐng)域,如陣列信號(hào)處理、核武器模擬、計(jì)算流體動(dòng)力學(xué)等。在這些科學(xué)計(jì)算中,需要大量的浮點(diǎn)矩陣運(yùn)算。而目前已實(shí)現(xiàn)的浮點(diǎn)矩陣運(yùn)算是直接使用VHDL語(yǔ)言編寫(xiě)的浮點(diǎn)矩陣相乘處理單元[1],其關(guān)鍵技術(shù)是乘累加
3、單元的設(shè)計(jì),這樣設(shè)計(jì)的硬件,其性能依賴(lài)于設(shè)計(jì)者的編程水平。此外,F(xiàn)PGA廠(chǎng)商也推出了一定規(guī)模的浮點(diǎn)矩陣運(yùn)算IP核[2],雖然此IP核應(yīng)用了本廠(chǎng)家的器件,并經(jīng)過(guò)專(zhuān)業(yè)調(diào)試和硬件實(shí)測(cè),性能穩(wěn)定且優(yōu)于手寫(xiě)代碼,但仍可對(duì)其進(jìn)行改進(jìn),以進(jìn)一步提高運(yùn)算速度。1AlteraAltera浮點(diǎn)矩陣相乘浮點(diǎn)矩陣相乘IPIP核原理核原理Altera公司推出的浮點(diǎn)矩陣相乘IP核ALTFP_MATRIX_MULT,是在Quartus軟件9.1版本以上的環(huán)境中使用,
4、能夠進(jìn)行一定規(guī)模的浮點(diǎn)矩陣相乘運(yùn)算,包含A、B矩陣數(shù)據(jù)輸入,數(shù)據(jù)浮點(diǎn)乘加,數(shù)據(jù)緩存及相加輸出四大部分。其中最能體現(xiàn)浮點(diǎn)計(jì)算性能的是浮點(diǎn)乘加部分,而周?chē)目刂齐娐芳拜敵鰟t影響到系統(tǒng)的最高時(shí)鐘頻率,間接地影響系統(tǒng)整體性能。整個(gè)矩陣相乘電路原理是將輸入的單路數(shù)據(jù)(A、B矩陣共用數(shù)據(jù)線(xiàn)),通過(guò)控制器產(chǎn)生A、B矩陣地址信號(hào),控制著A矩陣數(shù)據(jù)輸出和B矩陣數(shù)據(jù)輸出,并將數(shù)據(jù)并行分段輸出到浮點(diǎn)乘加模塊進(jìn)行乘加運(yùn)算,之后串行輸出到一個(gè)緩存器模塊中,再以并
5、行方式輸出到浮點(diǎn)相加模塊,最后獲得計(jì)算結(jié)果。從其原理可以看出,在數(shù)據(jù)輸入輸出方面仍有許多可改進(jìn)的地方。2IPIP核存在的缺陷及改進(jìn)核存在的缺陷及改進(jìn)2.12.1存在缺陷存在缺陷(1)輸入數(shù)據(jù)帶寬的不均衡性。在矩陣A、B的數(shù)據(jù)輸入時(shí),Altera的IP核將A矩陣數(shù)據(jù)存于M144K的BlockRAM中,而將B矩陣數(shù)據(jù)存于M9K的BlockRAM中,導(dǎo)致IP核中A矩陣數(shù)據(jù)的帶寬小于B矩陣數(shù)據(jù)的帶寬,并需要一定數(shù)量的寄存器組使A矩陣數(shù)據(jù)帶寬能夠
6、匹配于B矩陣數(shù)據(jù)帶寬。由此可見(jiàn),A、B矩陣數(shù)據(jù)的存儲(chǔ)受到器件限制和存儲(chǔ)約束,同時(shí)由于在浮點(diǎn)乘加模塊的輸入端(A、B矩陣數(shù)據(jù))帶寬不同,造成A矩陣數(shù)據(jù)的輸入需要額外的處理時(shí)間。(2)加載數(shù)據(jù)的不連貫性。在矩陣數(shù)據(jù)加載時(shí),IP核通過(guò)將數(shù)據(jù)分段成等分的幾部分,用于向量相乘。由于矩陣A存儲(chǔ)帶寬窄需要4步寄存(由Blocks決定),在第3個(gè)周期時(shí)才加載數(shù)據(jù)B用于計(jì)算,送到一個(gè)FIFO中存儲(chǔ);在第6個(gè)時(shí)鐘周期時(shí)加載矩陣A分段的第二部分進(jìn)行各自的第二
7、部分計(jì)算,最后當(dāng)計(jì)算到第15個(gè)周期時(shí),才可通過(guò)浮點(diǎn)相加,計(jì)算出矩陣C的第一個(gè)值,之后計(jì)算出矩陣C的其他值C11。從上述結(jié)構(gòu)可見(jiàn),在分段相乘之后,采用先對(duì)一個(gè)FIFO進(jìn)行存儲(chǔ),存滿(mǎn)后再對(duì)下一個(gè)數(shù)據(jù)FIFO進(jìn)行存儲(chǔ),造成時(shí)間上浪費(fèi)過(guò)多。2.22.2設(shè)計(jì)改進(jìn)設(shè)計(jì)改進(jìn)鑒于上述缺陷,在輸入A、B矩陣的存儲(chǔ)方式上,進(jìn)行串行輸入到并行輸入的改進(jìn),使得兩個(gè)矩陣能同步輸入到浮點(diǎn)乘加模塊。在數(shù)據(jù)加載方式上,將A矩陣用3個(gè)周期加載完畢,再處理相乘運(yùn)算;將分段
8、相乘結(jié)果進(jìn)行直接存儲(chǔ)相加,獲得C矩陣的第一個(gè)值,縮減運(yùn)算時(shí)間。設(shè)計(jì)的改進(jìn)框圖如圖1所示。數(shù)到端口輸出值時(shí)(如端口并行輸出8個(gè)數(shù)則計(jì)數(shù)到8),并行輸出數(shù)據(jù)。浮點(diǎn)乘加模塊采用并行相乘、并行相加的方式。由于考慮到精度問(wèn)題,采用浮點(diǎn)位數(shù)轉(zhuǎn)換,將32bit的輸入數(shù)據(jù)進(jìn)行浮點(diǎn)擴(kuò)展為42bit,再進(jìn)行乘加運(yùn)算,最后再將42bit數(shù)據(jù)轉(zhuǎn)換為32bit數(shù)據(jù)。采用三級(jí)流水線(xiàn)的方式,進(jìn)行并行乘加運(yùn)算,提高設(shè)計(jì)系統(tǒng)性能。在雙口RAM組的實(shí)現(xiàn)上,是將一組simp
9、ledualptram[3]并列成一個(gè)RAM組。輸入由矩陣A、B的數(shù)據(jù)信號(hào)和ROM輸出的地址信號(hào)組成;輸出就是一路矩陣A數(shù)據(jù)和一路矩陣B數(shù)據(jù),數(shù)據(jù)深度與vectsize等同。其中每一個(gè)RAM的深度為rowsaacolumnsbbvectsize,保證數(shù)據(jù)的可重用性,同時(shí)相對(duì)應(yīng)的ROM中存儲(chǔ)的地址信號(hào)分別為:A:121233123444123455551234566666……B:112212333123444412345555512345
10、……以此類(lèi)推即可得到相應(yīng)的地址信號(hào)查找表。在數(shù)據(jù)緩存模塊的設(shè)計(jì)上也采用串行輸入并行輸出的方式。使用移位寄存器的方式實(shí)現(xiàn),在并行浮點(diǎn)相加部分類(lèi)似于上述的并行乘加[4]計(jì)算,采用多級(jí)流水線(xiàn)并行相加的方式完成。3.23.2計(jì)算結(jié)果仿真計(jì)算結(jié)果仿真對(duì)改進(jìn)的設(shè)計(jì)進(jìn)行仿真,采用A916數(shù)據(jù)與B168數(shù)據(jù)相乘,獲得計(jì)算結(jié)果仿真如圖4所示。從圖4可見(jiàn),loadaa、loadbb、calcimatrix三者的時(shí)序滿(mǎn)足浮點(diǎn)矩陣運(yùn)算的時(shí)序要求,在前兩者數(shù)據(jù)加
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 矩陣相乘在gpu上的并行實(shí)現(xiàn)
- 矩陣相乘在gpu上的并行實(shí)現(xiàn)
- 矩陣相乘并行算法
- 塊浮點(diǎn)脈沖壓縮及其關(guān)鍵IP核的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于參數(shù)化IP核的浮點(diǎn)運(yùn)算器設(shè)計(jì).pdf
- 1024點(diǎn)浮點(diǎn)流水線(xiàn)型FFT IP核設(shè)計(jì).pdf
- DCT IP核的VLSI設(shè)計(jì)與實(shí)現(xiàn).pdf
- 視頻DSP-并行處理與運(yùn)動(dòng)估計(jì)IP核設(shè)計(jì).pdf
- 32位浮點(diǎn)DSP處理器ALU研究及其IP核設(shè)計(jì).pdf
- 基于FPGA的SATA IP核設(shè)計(jì)與實(shí)現(xiàn).pdf
- Sigma delta ADC IP核設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于VCI的IP核互聯(lián)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 橢圓曲線(xiàn)加密IP核的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于FPGA的高性能32位浮點(diǎn)FFT IP核的開(kāi)發(fā).pdf
- SERCOS IP核的研究與實(shí)現(xiàn).pdf
- SpaceWire路由器IP核的設(shè)計(jì)與實(shí)現(xiàn).pdf
- RSA加密算法IP核的設(shè)計(jì)與實(shí)現(xiàn).pdf
- CORDIC的IP核生成平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 雷達(dá)信號(hào)處理關(guān)鍵IP核設(shè)計(jì)與實(shí)現(xiàn).pdf
- SATAII設(shè)備端IP核的FPGA設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論