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