《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 浮點矩陣相乘IP核并行改進的設計與實現
浮點矩陣相乘IP核并行改進的設計與實現
來源:電子技術應用2012年第2期
張國禮,王建業,肖 宇
空軍工程大學 導彈學院,陜西 三原713800
摘要: 基于Altera浮點IP核實現浮點矩陣相乘運算時,由于矩陣階數的增大,造成消耗的器件資源雖增加但系統性能反而下降的問題,針對現有IP核存在數據加載不連貫、存儲帶寬不均勻的不足,提出采用并行化數據存儲、依據查找表加載數據和處理數據的方式對IP核進行改進。然后將改進的浮點矩陣運算在FPGA中實現,經過Quartus、Matlab軟件聯合仿真并進行結果比對,其誤差不超過萬分之一,且節省了器件資源、提升了系統性能。仿真結果表明該設計可行,有利于提高諸多高性能領域浮點矩陣的運算速度。
中圖分類號: TN47
文獻標識碼: A
文章編號: 0258-7998(2012)02-0043-04
The design and implementation of IP-core parallel improvement in floating-point matrix multiplication
Zhang Guoli,Wang Jianye,Xiao Yu
Missile Institute,Air Force Engineering University,Sanyuan 713800,China
Abstract: This Paper is based on the problem of increasing appliance resource consumed and decreasing systematic performance with the increasing of matrix ranks when floating IP-Core of Altera is carrying out the floating-matrix multiplication. With the aim to making up with the shortcomings of incoherent of IP-Core’s data-loading and less-regularity of memory bandwidth, we take measures such as parallelizing data storage, loading and dealing with data in the LUT to improve the IP core. Then we realize the improved floating-matrix operation by FPGA, as well as emulate it by Quartus and Matlab software. Compared with the results we can find that the error is less than one ten thousandth, the appliance resource is saved off and the systematic performance is improved. The simulation investigates that the design is feasibility and it is profitable in many high-level fields.
Key words : floating-point matrix multiplication;embedded;IP-core;FPGA

    嵌入式計算作為新一代計算系統的高效運行方式,應用于多個高性能領域,如陣列信號處理、核武器模擬、計算流體動力學等。在這些科學計算中,需要大量的浮點矩陣運算。而目前已實現的浮點矩陣運算是直接使用VHDL語言編寫的浮點矩陣相乘處理單元[1],其關鍵技術是乘累加單元的設計,這樣設計的硬件,其性能依賴于設計者的編程水平。此外,FPGA廠商也推出了一定規模的浮點矩陣運算IP核[2],雖然此IP核應用了本廠家的器件,并經過專業調試和硬件實測,性能穩定且優于手寫代碼,但仍可對其進行改進,以進一步提高運算速度。

1 Altera浮點矩陣相乘IP核原理
    Altera公司推出的浮點矩陣相乘IP核ALTFP_MATRIX_MULT,是在Quartus軟件9.1版本以上的環境中使用,能夠進行一定規模的浮點矩陣相乘運算,包含A、B矩陣數據輸入,數據浮點乘加,數據緩存及相加輸出四大部分。其中最能體現浮點計算性能的是浮點乘加部分,而周圍的控制電路及輸出則影響到系統的最高時鐘頻率,間接地影響系統整體性能。
    整個矩陣相乘電路原理是將輸入的單路數據(A、B矩陣共用數據線),通過控制器產生A、B矩陣地址信號,控制著A矩陣數據輸出和B矩陣數據輸出,并將數據并行分段輸出到浮點乘加模塊進行乘加運算,之后串行輸出到一個緩存器模塊中,再以并行方式輸出到浮點相加模塊,最后獲得計算結果。從其原理可以看出,在數據輸入輸出方面仍有許多可改進的地方。
2 IP核存在的缺陷及改進
2.1 存在缺陷
    (1)輸入數據帶寬的不均衡性。在矩陣A、B的數據輸入時,Altera的IP核將A矩陣數據存于M144K的Block RAM中,而將B矩陣數據存于M9K的Block RAM中,導致IP核中A矩陣數據的帶寬小于B矩陣數據的帶寬,并需要一定數量的寄存器組使A矩陣數據帶寬能夠匹配于B矩陣數據帶寬。由此可見,A、B矩陣數據的存儲受到器件限制和存儲約束,同時由于在浮點乘加模塊的輸入端(A、B矩陣數據)帶寬不同,造成A矩陣數據的輸入需要額外的處理時間。
    (2)加載數據的不連貫性。在矩陣數據加載時,IP核通過將數據分段成等分的幾部分,用于向量相乘。由于矩陣A存儲帶寬窄需要4步寄存(由Blocks決定),在第3個周期時才加載數據B用于計算,送到一個FIFO中存儲;在第6個時鐘周期時加載矩陣A分段的第二部分進行各自的第二部分計算,最后當計算到第15個周期時,才可通過浮點相加,計算出矩陣C的第一個值,之后計算出矩陣C的其他值C11。從上述結構可見,在分段相乘之后,采用先對一個FIFO進行存儲,存滿后再對下一個數據FIFO進行存儲,造成時間上浪費過多。
2.2 設計改進
    鑒于上述缺陷,在輸入A、B矩陣的存儲方式上,進行串行輸入到并行輸入的改進,使得兩個矩陣能同步輸入到浮點乘加模塊。在數據加載方式上,將A矩陣用3個周期加載完畢,再處理相乘運算;將分段相乘結果進行直接存儲相加,獲得C矩陣的第一個值,縮減運算時間。設計的改進框圖如圖1所示。


    將A、B矩陣數據加載模塊設計成同步加載的方式,即在loadaa為高電平時,對A的第一組數據進行初始化,加載到雙口RAM模塊存儲;在loadbb為高電平時,加載B矩陣的數據,也進行雙口RAM存儲。然后依據ROM存儲的地址信號表,在控制模塊的控制下輸出A、B矩陣地址相對應的數據,進行浮點乘加運算,之后串行緩存,并行輸出到浮點相加模塊,進行輸出。計算時序如圖2所示。
    在時序上要求初始化加載A矩陣的第一行數據A1、A2、A3之后,加載B矩陣的第一列數據,當分段E1加載后立即進行分段第一組數據相乘A1×E1。以此類推,當加載A的第二行數據時,即可立即與B矩陣的第一列數據相乘??傮w而言,只需要在ROM模塊中存儲一定的地址信號,即可使浮點乘加模塊的輸入端具有并行連貫的數據輸入,縮短了運算時間。
3 浮點矩陣相乘實現
3.1 模塊總體實現

    按照上述改進方案,ROM地址表在控制模塊的控制下產生一組地址信號控制雙口RAM組進行并行輸出,保證了浮點乘加模塊計算的準確性。其中控制模塊為設計的關鍵部分,用于產生所有模塊的控制信號,實現同步計算。分為a_cntrl、b_cntrl、cache、outcntrl四部分控制信號以及一路計數信號用于ROM地址查詢,內部由一個狀態機和邏輯單元組成,狀態機用于產生矩陣A、B的read開始、latch鎖存、地址疊加信號的轉換。控制模塊的時序仿真如圖3所示。

    圖3在全局同步信號時鐘sysclk、復位reset、使能enable的作用下,當calcmatrix信號為‘1’時,開始計算并生成輸出控制信號。其中a_cntrl部分用于控制矩陣A數據加載模塊,主要包含地址信號readaa和鎖存信號latchaa,來一個鎖存高電平則存儲A矩陣數據readaa;b_cntrl部分則對應于矩陣B的控制,輸入B矩陣數據readbb;cache部分用于控制數據緩存部分串行輸入并行輸出,包含著相應的讀地址信號cacherdadd、寫地址信號cachewradd、cache選擇信號cachemesel,三者同步控制并行輸出;outcntrl部分是整個系統的輸出控制部分,在準備信號ready之后,出現outvalid高電平,表示輸出數據有效,同時完成信號done為低電平。為使矩陣A、B數據能同時加載到浮點乘加模塊上,需要使一個readaa值對應于readbb的columnsbb個數據。在本設計中使用的是A9×16數據與B16×8數據進行計算,生成的outvalid有9個脈沖,每個脈沖包含8個矩陣輸出數據。
    對于A、B矩陣的數據加載,采用的是串行輸入并行輸出的控制器,由移位寄存器組成,當計數器計數到端口輸出值時(如端口并行輸出8個數則計數到8),并行輸出數據。
    浮點乘加模塊采用并行相乘、并行相加的方式。由于考慮到精度問題,采用浮點位數轉換,將32 bit的輸入數據進行浮點擴展為42 bit,再進行乘加運算,最后再將42 bit數據轉換為32 bit數據。采用三級流水線的方式,進行并行乘加運算,提高設計系統性能。
    在雙口RAM組的實現上,是將一組simple dualport ram[3]并列成一個RAM組。輸入由矩陣A、B的數據信號和ROM輸出的地址信號組成;輸出就是一路矩陣A數據和一路矩陣B數據,數據深度與vectorsize等同。其中每一個RAM的深度為rowsaa×columnsbb/vectorsize,保證數據的可重用性,同時相對應的ROM中存儲的地址信號分別為:
    A:1 2 1 2 3 3 1 2 3 4 4 4 1 2 3 4 5 5 5 5 1 2 3 4 5 6 6 6 6 6 ……
    B:1 1 2 2 1 2 3 3 3 1 2 3 4 4 4 4 1 2 3 4 5 5 5 5 5 1 2 3 4 5 ……
    以此類推即可得到相應的地址信號查找表。
    在數據緩存模塊的設計上也采用串行輸入并行輸出的方式。使用移位寄存器的方式實現,在并行浮點相加部分類似于上述的并行乘加[4]計算,采用多級流水線并行相加的方式完成。
3.2 計算結果仿真
    對改進的設計進行仿真,采用A9×16數據與B16×8數據相乘,獲得計算結果仿真如圖4所示。

    從圖4可見,loadaa、loadbb、calcimatrix三者的時序滿足浮點矩陣運算的時序要求,在前兩者數據加載后,加載calcimatrix上升沿,進行矩陣相乘。在outvalid為高電平時輸出數據,同時完成信號done輸出低電平。在輸出結果上,共分為9個大組,各大組有8個數據,共組成72個數據結果,其中顯示了第一部分輸出結果,獲得與Matlab仿真相近的計算結果,在精度上相差不到萬分之一。


    從表1中可以看出,改進后的IP核在處理時間上縮短了807個周期,同時在最高運行時鐘上提升了15%,系統整體的持續性能增加了7.2 Gflops。
    依據改進前后的IP核,使用Quartus9.1軟件進行綜合布局布線,映射到Stratix Ⅲ EP3SE110F780C2器件中,可獲得相應的資源對比圖如圖5所示。由于采用的都是并行浮點乘加運算,所以在乘法器資源的消耗上不變;同時由于只是在存儲器的存儲方式上作出變動,所以二者的存儲資源相等。從而只需要對圖中顯示的矩陣階數、vectorsize大小進行比較即可,而浮點計算性能與最高時鐘頻率變化方向相同,所以只對ALM數量及最高時鐘頻率進行對比。
    從圖5中資源消耗對比可見,當設定vectorsize為固定值8(圖5左半部)時,隨著矩陣階數的增加,改進后的IP核在ALM資源消耗上較改進前數量上有一定的減少,在最高時鐘頻率上都有小幅度提升,這是因為矩陣輸入時消耗時間過長;當設定矩陣階數為192×192(圖5右半部)時,隨著vectorsize值的增加,改進后IP核在ALM數量上有所減小,在最高時鐘頻率上則有小幅度提升,且波動幅度在3.4%左右。可見,改進后IP核比原Altera的IP核綜合性能有所提升。

參考文獻
[1] 田翔,周凡,陳耀武,等.基于FPGA的實時雙精度浮點矩陣乘法器設計[J].浙江大學學報(工學版),2008(9).
[2] Altera Corp.Floating-point megafunctions user guide.2011.
[3] 胡小龍,朱艷亮.基于FPGA的圖像輸入緩存機制研究[J].微計算機信息,2010(2).
[4] 蔡敏,閔言燦.全流水線結構雙精度浮點乘加單元的設計[J].微電子學與計算機,2010(1).
[5] STRICKLAND M.FPGA協處理的進展[J].今日電子,2010(4).

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩国产美女| 欧美日韩精品是欧美日韩精品| 亚洲综合欧美| 欧美日韩中文字幕日韩欧美| 久久丁香综合五月国产三级网站| 亚洲一区二区在线视频| 亚洲国产精品电影| 亚洲欧美日韩一区二区在线| 欧美成黄导航| 欧美日韩国产限制| 欧美色综合天天久久综合精品| 狠狠色综合播放一区二区| 香蕉视频成人在线观看| 激情亚洲一区二区三区四区| 欧美一区二区视频免费观看| 国产精品高潮呻吟久久av黑人| 欧美久久99| 欧美精品激情blacked18| 国精产品99永久一区一区| 国产亚洲欧美一区| 亚洲制服欧美中文字幕中文字幕| 欧美日韩中字| 亚洲国产另类久久精品| 一本色道久久综合亚洲精品不卡| 亚洲一区中文字幕在线观看| 亚洲与欧洲av电影| 男男成人高潮片免费网站| 校园激情久久| 亚洲一区二区三区涩| 在线不卡欧美| 欧美一区二区大片| 亚洲国产精品成人综合| 亚洲精品国产系列| 久久久青草青青国产亚洲免观| 狠狠色狠狠色综合人人| 国产视频一区在线观看| 国产日产高清欧美一区二区三区| 久久视频一区| 免费欧美在线视频| 欧美在线视频免费观看| 一区在线播放视频| 国产亚洲人成网站在线观看| 亚洲人www| 欧美国产日韩一区二区三区| 久久久久国产精品一区三寸| 欧美老女人xx| 欧美日韩午夜激情| 久久在线播放| 亚洲人精品午夜| 久久综合久久综合久久综合| 亚洲一区影音先锋| 久久国产精品一区二区| 国产婷婷97碰碰久久人人蜜臀| 久久人人爽国产| 亚洲国产视频a| 亚洲一区二区三区777| 国产精品午夜电影| 国内精品亚洲| 狠狠色丁香婷婷综合| 欧美高清视频在线| 国产欧美高清| 欧美va亚洲va日韩∨a综合色| 亚洲国产精品久久精品怡红院| 国产女主播在线一区二区| 国产精品久久久免费| 国产午夜精品久久久| 日韩图片一区| 亚洲欧美日韩另类精品一区二区三区| 国产精品一区二区三区成人| 欧美日韩日日骚| 夜夜精品视频一区二区| 国产色综合天天综合网| 欧美成人在线免费视频| 欧美激情精品| 巨胸喷奶水www久久久免费动漫| 午夜精品在线| 国产精品视频专区| 91久久国产综合久久| 国产欧亚日韩视频| 在线亚洲国产精品网站| 伊人一区二区三区久久精品| 久久久久久久久久码影片| 亚洲福利视频二区| 亚洲永久在线观看| 亚洲精品免费一区二区三区| 亚洲国产一区二区三区在线播| 欧美系列一区| 亚洲人成毛片在线播放女女| 欧美涩涩网站| 国产精品一区二区女厕厕| 亚洲福利国产精品| 欧美日韩国产一区| 亚洲香蕉伊综合在人在线视看| 精品动漫3d一区二区三区免费| 亚洲精品1区2区| 国产精品户外野外| 亚洲精品日韩一| 欧美一二区视频| 99ri日韩精品视频| 亚洲一区二区三区精品在线观看| av72成人在线| 欧美成人免费在线观看| 一区在线免费| 亚洲国产精品成人va在线观看| 亚洲精选视频在线| 亚洲一区视频在线观看视频| 欧美黄在线观看| 国产精品乱子乱xxxx| 午夜亚洲伦理| 亚洲欧洲日韩在线| 亚洲自拍三区| 国产欧美一区二区精品仙草咪| 亚洲男人影院| 欧美日韩第一区日日骚| 国产免费观看久久黄| 欧美日韩中国免费专区在线看| 欧美日韩一区二区三区在线| 欧美国产一区二区在线观看| 欧美日韩一区在线视频| 亚洲第一中文字幕在线观看| 国产在线麻豆精品观看| 亚洲人午夜精品免费| 亚洲在线观看视频网站| 免费观看成人网| 欧美在线亚洲在线| 欧美gay视频激情| 欧美午夜精品久久久久久超碰| 国产人成一区二区三区影院| 亚洲欧美清纯在线制服| 欧美专区日韩视频| 国产日韩在线看片| 你懂的国产精品| 久久狠狠久久综合桃花| 亚洲欧美一区二区精品久久久| 国产在线精品一区二区中文| 欧美96在线丨欧| 欧美日韩日日骚| 国产欧美日韩| 亚洲精品一区久久久久久| 久久精品日韩一区二区三区| 一区二区三区四区国产| 欧美国产综合| 亚洲午夜电影| 亚洲精品婷婷| 亚洲精品乱码视频| 亚洲国产精品久久精品怡红院| 一区二区三区欧美日韩| 久久久不卡网国产精品一区| 欧美视频中文字幕| 国产日韩欧美在线一区| 一区二区三区四区五区在线| 国产伦精品一区二区三| 亚洲免费网站| 亚洲国产专区| 欧美日韩一级大片网址| 亚洲天堂激情| 国产精品美女久久久浪潮软件| 欧美日韩一区在线观看| 男女激情久久| 99视频精品全国免费| 国产一区二区三区观看| 国产一区二区三区高清| 在线看片第一页欧美| 亚洲高清在线视频| 亚洲视频在线观看| 夜色激情一区二区| 国产亚洲欧美日韩美女| 国产日韩欧美一区二区三区四区| 欧美性色视频在线| 午夜国产不卡在线观看视频| 精品51国产黑色丝袜高跟鞋| 亚洲国产成人久久| 欧美69视频| 欧美专区在线| 欧美一区永久视频免费观看| 国语自产在线不卡| 欧美精品色一区二区三区| 正在播放日韩| 国内精品久久久久久久果冻传媒| 久久国产精品久久w女人spa| 国产麻豆精品视频| 久久久噜噜噜久久| 欧美日韩一区二区精品| 久久成人一区二区| 欧美激情一区二区三区不卡| 久久精品夜色噜噜亚洲a∨| 欧美视频在线看| 在线观看国产日韩| 久久久噜噜噜久久中文字幕色伊伊| 日韩午夜在线观看视频| 国产精品入口尤物| 在线观看国产一区二区| 亚洲综合色激情五月| 欧美精品首页| 亚洲国产片色| 久久综合影视| 国产精品永久免费观看| 狠狠干成人综合网| 欧美成年人视频网站欧美| 国产亚洲一区二区三区在线播放| 国产日韩欧美在线视频观看| 一区二区三区蜜桃网| 欧美三级日韩三级国产三级| 国产精品一区二区男女羞羞无遮挡| 国产中文一区二区| 亚洲一级网站| 中文无字幕一区二区三区| 久久九九99| 亚洲欧洲日韩综合二区| 亚洲欧美另类中文字幕| 国产老肥熟一区二区三区| 性8sex亚洲区入口| 久久国产主播| 国产午夜精品久久久久久免费视| 国产精品色网| 国产精品99一区二区| 国产精品久久久久一区二区| 欧美激情视频在线播放| 欧美中文字幕不卡| 久久精品视频在线观看| 亚洲一区二区免费看| 影音先锋成人资源站| 欧美大胆人体视频| 99re6热在线精品视频播放速度| 久久久久天天天天| 欧美大片在线看| 亚洲性视频网址| 欧美深夜福利| 最新成人av网站| 亚洲人午夜精品免费| 欧美激情一区二区| 欧美日韩国产精品自在自线| 亚洲国产精品激情在线观看| 国内外成人免费视频| 在线一区观看| 亚洲精品一二三| 欧美精品一区二区三区在线看午夜| 国产一区二区三区奇米久涩| 国产视频亚洲| 韩日成人在线| 亚洲网站在线看| 国产精品久久久久三级| 欧美连裤袜在线视频| 亚洲高清毛片| 最近中文字幕mv在线一区二区三区四区| 亚洲另类视频| 欧美 日韩 国产精品免费观看| 国产亚洲午夜高清国产拍精品| 欧美成人免费在线视频| 亚洲一区二区三区四区在线观看| 国产午夜久久久久| 欧美性猛交xxxx乱大交蜜桃| 久久免费国产精品| 国产精品白丝黑袜喷水久久久| 在线观看视频亚洲| 国产一区二区三区在线免费观看| 国产在线一区二区三区四区| 亚洲在线国产日韩欧美| 欧美一级精品大片| 久久免费视频网站| 久久久久久久成人| 欧美影院成年免费版| 性色av一区二区三区红粉影视| 久久精品噜噜噜成人av农村| 国产日韩欧美综合在线| 久久综合亚洲社区| 激情小说另类小说亚洲欧美| 亚洲性视频网址| 99国产精品99久久久久久| 国产精品视频免费在线观看| 欧美性天天影院| 久热国产精品视频| 欧美成人四级电影| 欧美先锋影音| 国产日产欧美a一级在线| 欧美在线综合视频| 老司机精品福利视频| 国产精品日韩| 国产亚洲精久久久久久| 国产久一道中文一区| 亚洲综合日韩中文字幕v在线| 久久精品免费| 久久国产福利国产秒拍| 日韩亚洲精品视频| 免费视频一区| 久久综合伊人77777尤物| 欧美日韩不卡一区| 销魂美女一区二区三区视频在线| 亚洲黄一区二区三区| 国产精品av免费在线观看| 久久精品一区四区| 最新成人av网站| 亚洲区第一页| 国外成人网址| 久久中文久久字幕| 夜夜精品视频| 国产日本欧美一区二区三区| 欧美视频精品在线| 欧美在线播放高清精品| 亚洲精品麻豆| 亚洲精品午夜| 亚洲精品视频一区| 国产精品超碰97尤物18| 欧美精品在欧美一区二区少妇| 在线欧美福利| 欧美日韩精品免费观看视频| 午夜一区二区三视频在线观看| 91久久综合亚洲鲁鲁五月天| 亚洲一区图片| 久久久人成影片一区二区三区观看| 欧美高清在线一区二区| 国内精品模特av私拍在线观看| 亚洲大片免费看| 国产精品一区二区视频| 欧美日韩美女在线观看| 亚洲精品少妇网址| 久久激情五月丁香伊人| 欧美精品九九| 国产日韩欧美中文在线播放| 一区免费观看视频| 欧美+亚洲+精品+三区| 国产精品五月天| 国产亚洲一区二区三区在线播放| 欧美日韩高清在线播放| 欧美精品videossex性护士| 亚洲神马久久| 久久久久久久久久久成人| 最新国产精品拍自在线播放|