999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于IP核的數選式浮點矩陣相乘設計

2011-03-21 05:12:30肖宇王建業張偉
電子技術應用 2011年6期

肖宇,王建業,張偉

(空軍工程大學導彈學院,陜西三原713800)

嵌入式計算作為新一代計算系統的高效運行方式,應用于多個高性能領域,如陣列信號處理、核武器模擬、計算流體動力學和海洋環境模擬等。在這些科學計算中,需要大量的矩陣運算,而矩陣運算中乘法運算是其他運算的基礎,如能提高嵌入式系統中浮點矩陣乘法運算的速度,則可加快其他類型的矩陣運算速度。

目前實現浮點矩陣運算的方法,有直接使用VHDL語言編寫的浮點矩陣相乘處理單元[1],關鍵技術是乘累加單元的設計,通常依據設計者的編程水平決定硬件性能。同樣,FPGA廠商也推出了一定規模的浮點矩陣運算IP核[2],其應用針對本廠家器件,且經過專業調試和硬件實測,性能穩定且優于手寫代碼,但還有一些可改進的地方。

本文基于Altera的算法IP核,采用數選方式對矩陣運算中的單精度浮點矩陣相乘進行改進,可推廣到階數更高的矩陣運算和雙精度浮點、復數單精度浮點運算中。

1 浮點矩陣相乘的IP核原理

Altera公司推出的浮點矩陣相乘IP核ALTFP_MATRIX_MULT,適用于Quartus10.1版本以上的軟件環境,能夠進行一定規模的浮點矩陣計算,原理圖如圖1所示。

圖1的矩陣相乘結合流水線方式控制數據流動,關鍵部分為核心PE(Processing Element)單元實現兩浮點數的相乘。輸入數據在控制器的引導下分為AA矩陣和BB矩陣,分別存于M144K或M9K存儲器中,在計算指令的控制下做浮點相乘運算,接著并行地浮點相加完成輸出。分析整個計算結構,要達到較好的性能就需要耗費多個存儲器和多個浮點相乘單元。列出矩陣相乘的基本時序圖如圖2所示。

圖1 浮點矩陣相乘原理圖

圖2 浮點矩陣相乘運算時序圖

2 數選實矩陣相乘設計

從時序圖可見,整個IP核有7個輸入、4個輸出,分為數據加載、數據處理、數據輸出三個階段。在系統同步時鐘sysclk的驅動下,loadaa、loadbb對數據loaddata進行乘數矩陣、被乘數矩陣使能,將數據加載到存儲器中。當calcimatrix上升沿到來時,進行矩陣乘法運算并輸出數據outdata,且在outvalid為高電平時有效。在整個數據輸出有效階段,完成信號done處于低電平,其余階段為高電平。

浮點矩陣運算IP核的運算方式分為單精度、雙精度、復數單精度三種方式,矩陣運算階數有8、16、32、64、96、128階6種,并不能實現任意階矩陣的相乘,隨著矩陣階數的增大,最高時鐘頻率在下降,同時占用器件資源在增加,耗用最多的是存儲器資源,呈幾何倍數增長。

在矩陣相乘運算中最基礎的是2階矩陣的相乘,核心部分為乘累加器[3],通過適當數選控制,可使整個矩陣運算具有高時鐘頻率。如圖3為2階矩陣相乘電路。

整個矩陣相乘模塊的設計,結合數據選擇的控制方式,分為流水線數據輸入、數據相乘、數據輸出三部分。在流水線數據輸入模塊,采用流水線的方式輸入乘矩陣數據KA、KB,被乘數矩陣數據A、B,以同步系統時鐘啟動兩個數據選擇器,由cntr0控制兩個數選器選擇數據輸出到乘法器兩端;將乘法器的輸入數據相乘并存于寄存器中;最后在數據輸出部分cntr1模塊的控制下,累加輸出矩陣數據X、Y,完成矩陣運算。以Altera器件EP2C35F672C6為映射器件,其時鐘頻率為250 MHz。在Quartus7.2軟件編程下,運行此2階乘法器,可獲得248.69 MHz的最高時鐘頻率。占用資源為172個邏輯單元、152個寄存器、2個9位乘法器,且在輸入數據之后2個時鐘輸出運算結果,如圖4所示。設計具有較高的計算性能,關鍵點在于數據選擇器在電路運算過程中的作用,取代了存儲器單一存儲的目的,可進行乒乓式實時數據流動,提高系統運算效率,節省了一半存儲器。

圖4中乘矩陣[KA KB]在Matlab中的表示為[5 3;2 4],被乘矩陣[A B]表示為[2 2;3 4],得到的輸出結果為[16 27;12 22],可見FPGA運算結果與Matlab結果一致。

3 浮點矩陣相乘運算的改進

本文以16×16階浮點矩陣相乘為例,采用單精度浮點計算方式,結合2階高速矩陣運算電路對16階矩陣運算進行改進,其他高階矩陣運算可采用類推的方式完成。

圖3 2階實矩陣相乘框圖

圖4 2階矩陣仿真運算結果

3.1 高階矩陣運算分解

高階矩陣分解運算是通過分解大規模矩陣為許多子矩陣進行計算的方式,所以可將16×16階矩陣劃分為4個8×8階矩陣,實現2階矩陣相乘。16×16階矩陣相乘運算,可表達為式(1):

其中Ai、Bi(i=1,2,3,4)為8×8階矩陣。

從式(1)的16階矩陣相乘運算,可知其需要8次8階浮點矩陣相乘和4次8階浮點矩陣相加運算。分析可得,在數據并行輸入輸出的情況下,相比較于16階矩陣IP核的運行方式,此種分解方式性能要高。主要由于IP核運行方式跨度長,在數據輸入時,需要經過16×16級存儲器,而本文設計的方式只需要8×8級存儲和4次并行的浮點相加運算,同時相比較于16階IP耗用存儲資源和浮點乘法單元數較少。

3.2 矩陣相乘硬件實現

采用Quartus10.1軟件設計16階單精度浮點矩陣相乘電路,使用VHDL語言[4]編寫,模塊由流水線數據輸入、矩陣相乘、鎖存器、浮點加法數選模塊4部分組成,設計框圖如圖5所示。

在流水線數據輸入部分,對數據data進行分割,當信號load為高電平時使能,同時進行數據的緩存和生成控制位,輸出的三位控制位(calcimatrix、loadaa、loadbb)控制著下一步矩陣相乘的運算,在loadaa與loadbb高電平交互之間的數據值取0,具有數據緩存和分割的作用。最后一個模塊需要進行8×8階矩陣的32位浮點加法運算,同時輸出數據有效電平,使用Altera altfp_add_sub IP核實現單精度浮點加法器,可根據用戶的定制完成。對圖5的模塊加入幾個輸出結果,使用modelsim6.5進行仿真,可得16階矩陣運算仿真結果如圖6所示。

從圖6可見loadaa、loadbb、calcimatrix三者的時序滿足浮點矩陣運算的時序圖,在前兩者數據加載后,即可獲得calcimatrix上升沿,進行矩陣相乘。輸出結果分為4個大組,各大組有8小組,每一小組由8個數據組成,具有較好的計算結果。

4 性能比較分析

4.1 性能比較

將第3節設計的16階矩陣相乘電路與Altera自身提供的IP核進行比較。同時以8階矩陣相乘為基,以第2節的方式設計4×4階數選實矩陣電路,套用于32×32階矩陣運算中,與Altera的IP核比較。IP核使用最高性能運行,同時以資源消耗、浮點操作數[5]、最高時鐘頻率、吞吐量作為比較準則,其中浮點操作數的計算表達式為:

GFLOPS=FHz×Efficiency×2×vectorsize(2)其中,FHz表示芯片運行時鐘頻率,vectorsize表示浮點運算核心乘加模塊數量,Efficiency表示乘加單元運算效率,表達式為:

tload表示數據加載時間;tprocess表示數據處理時間;tduty_cyc表示時間占空比;tnaive表示矩陣輸出時間。

依據以上浮點操作數計算方式,使用Quartus10.1軟件進行編程,映射到Stratix III系列的器件中,可獲得相應的對比表如表1所示。

從表1結果可見改進的浮點運算電路在ALM的資源占用減少了許多。原因為在矩陣規模增大時,只使用了8階浮點矩陣運算,浮點IP核中的乘加核數量不變,所以消耗的浮點相乘單元不變,同樣增添的浮點加法器也只消耗了不多的ALM資源。而對于改進的兩類矩陣相乘都只使用8階矩陣乘法,所以在乘法器和M9K存儲器這兩類邏輯單元的消耗不變。為了達到較好的性能,需要少量外圍存儲器處理數據的流動和浮點相加運算,但整體存儲器消耗降低。觀察吞吐量可知,套用的數選式矩陣相乘模塊,當階數增大時吞吐量降低,幅度明顯,而選擇2階數選矩陣具有乒乓結構,性能有所提升。同理適用于浮點操作數的情況。最后整個運算電路的最高時鐘頻率始終是提升的。與Altera公司的IP核比較,改進的16階浮點矩陣運算電路性能較好,而32階運算電路性能卻未達到要求。

圖5 16階浮點矩陣相乘運算原理圖

圖6 浮點矩陣運算仿真結果

表1 以8階矩陣相乘為基的浮點運算資源消耗對比表

對高階矩陣進一步分析,在32階運算電路的設計中,使用16階浮點矩陣為乘法運算部分,以2×2實矩陣運算電路為核心,能夠提升32階電路的運算性能。

4.2 精度分析

以16階矩陣的運算進行精度分析,取乘矩陣與被乘矩陣各16個數據進行計算分析,列出表2數據,其中B矩陣為現有數據的轉置,以Matlab和FPGA運算結果進行對比。

從Matlab與FPGA計算結果可見,計算輸出近乎完全相同,相差的數據值也是由于Matlab在計算中需要先轉化為雙精度運算后才轉化為單精度數,從而得出FPGA計算具有較高的精度。

本文利用IP核性能穩定、使用方便等特點,對現有的單精度浮點矩陣運算進行改進,采用矩陣嵌入式的形式,將浮點運算IP核嵌入到2階數選實矩陣模塊中,降低存儲器和計算資源消耗,提升了系統吞吐量、浮點運算性能和運行最高時鐘頻率。這種改進的浮點矩陣乘法器對降低資源消耗、提升系統性能具有重大意義。同時,利用VHDL語言編寫,具有模塊化設計思想,使得本設計可移植性強、通用性好,只需要在現有IP核的基礎上進行小規模改進,即可擁有較高性能,具有一定的工程實際意義和應用前景。

表2 精度分析對比表

[1]田翔,周凡,陳耀武,等.基于FPGA的實時雙精度浮點矩陣乘法器設計[J].浙江大學學報(工學版),2008(9).

[2]Altera Corp.Floating-Point megafunctions user guide.2010.

[3]蔡敏,閔言燦.全流水線結構雙精度浮點乘加單元的設計[J].微電子學與計算機,2010(1).

[4]江思敏.VHDL數字電路及系統設計[M].北京:機械工業出版社,2006.

[5]余江洪,肖燕成,朱宗柏,等.基于Linpack的高性能計算機集群的并行性能測試[J].船電技術,2009(5).

主站蜘蛛池模板: 成人年鲁鲁在线观看视频| 久久这里只精品热免费99| 人妻中文字幕无码久久一区| 欲色天天综合网| 怡红院美国分院一区二区| 国产欧美日韩视频怡春院| 免费视频在线2021入口| www.av男人.com| 真实国产精品vr专区| 亚洲色图欧美| 青青热久麻豆精品视频在线观看| 麻豆精品视频在线原创| 中文字幕啪啪| 亚洲国产综合精品一区| 欧美中文字幕无线码视频| 日韩a在线观看免费观看| 色综合天天综合中文网| 色综合久久综合网| 专干老肥熟女视频网站| 欧美日韩中文国产| 亚洲欧美在线综合图区| 亚洲中文字幕av无码区| 欧美特级AAAAAA视频免费观看| 激情无码视频在线看| 毛片在线区| 中日韩一区二区三区中文免费视频 | 成人在线观看不卡| 婷婷伊人五月| 午夜精品久久久久久久无码软件| 狠狠做深爱婷婷综合一区| 国产在线精品99一区不卡| 99热国产在线精品99| 国产亚洲精久久久久久无码AV| 日韩欧美国产成人| 亚洲成人免费看| 亚洲AⅤ永久无码精品毛片| 国产成人高清精品免费5388| 欧美特黄一级大黄录像| 麻豆精品在线| 精品一区二区三区视频免费观看| 激情五月婷婷综合网| 久久无码av三级| 国产在线视频二区| 大香伊人久久| 日韩精品一区二区三区大桥未久 | 亚洲自拍另类| 国产午夜福利亚洲第一| 精品无码一区二区三区电影| 高h视频在线| 亚洲人视频在线观看| 精品国产成人高清在线| 人禽伦免费交视频网页播放| 一级片一区| 国产啪在线91| 亚洲欧美成人在线视频| 国产一二三区视频| 亚洲全网成人资源在线观看| 亚洲天堂.com| 精品无码人妻一区二区| 国产精选自拍| 国产精品短篇二区| 欧洲精品视频在线观看| 国产国语一级毛片| 久久狠狠色噜噜狠狠狠狠97视色 | 67194在线午夜亚洲| 国产电话自拍伊人| 成人综合久久综合| 精品一区二区久久久久网站| 狠狠色狠狠综合久久| 白浆免费视频国产精品视频| 91美女视频在线| 亚洲国产日韩一区| 3D动漫精品啪啪一区二区下载| 国产一级小视频| 久久一本日韩精品中文字幕屁孩| 国产激爽大片高清在线观看| 免费在线不卡视频| 日韩无码黄色| 国产免费网址| 午夜精品影院| 91在线视频福利| 农村乱人伦一区二区|