[發明專利]支持多MAC運算部件向量處理器的分塊矩陣乘法向量化方法有效
| 申請號: | 201310166411.3 | 申請日: | 2013-05-08 |
| 公開(公告)號: | CN103294648A | 公開(公告)日: | 2013-09-11 |
| 發明(設計)人: | 劉仲;陳書明;竇強;郭陽;劉衡竹;田希;龔國輝;陳海燕;彭元喜;萬江華;劉勝;陳躍躍;扈嘯;吳家鑄 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F17/16 | 分類號: | G06F17/16 |
| 代理公司: | 湖南兆弘專利事務所 43008 | 代理人: | 周長清 |
| 地址: | 410073 湖南省長沙市硯瓦池正街47號中國*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 支持 mac 運算 部件 向量 處理器 分塊 矩陣 乘法 量化 方法 | ||
技術領域
本發明主要涉及到數據處理技術領域,特指一種支持多MAC運算部件向量處理器的分塊矩陣乘法向量化方法。
背景技術
隨著大型稠密線性方程組求解、4G無線通信、雷達信號處理、高清視頻和數字圖像處理等計算密集型應用的高性能計算需求日益增長,計算機體系結構出現顯著變化,出現許多新型體系結構,如眾核體系結構、異構多核體系結、流處理器體系結構和向量處理器體系結構等等,這些新的體系結構在單芯片上集成多個處理器核,每個核上包含豐富的運算部件,大幅度提高了芯片的計算性能;同時,還對軟件開發提出了新的挑戰。因為現有的大量程序和算法是基于單核處理器設計的,如何針對多核、多運算部件等體系結構特點,充分開發各個層次的并行性,高效地并行和向量化這些應用算法是當前面臨的主要困難。
“矩陣乘法”是高性能計算(High?Performance?Computing,HPC)常用的核心模塊之一,是典型的計算密集和訪存密集型應用,對處理器的乘加(Multiply?Accumulate,MAC)能力和訪存帶寬要求非常高,計算的時間復雜度很高,大約為O(N3),N為矩陣規模。傳統的三重循環實現矩陣乘法的方法計算訪存比較低,Cache的數據缺失、矩陣數據搬移開銷占比大,導致處理器的運算效率較低。分塊矩陣乘法方法將大矩陣的乘法分割為一系列子矩陣的乘法,通過合理的設置子矩陣的塊大小,子矩陣的塊大小blocksize通常滿足blocksize<=sqrt(M/3),M為Cache的容量,使得子矩陣計算時的數據訪問能夠全部在Cache中命中,通過減少子矩陣的計算時間降低整個大矩陣乘法的計算時間,從而大幅度提高處理器的運算效率。
圖1是多MAC運算部件向量處理器的一般結構示意圖,它包括標量處理部件(Scalar?Processing?Unit,SPU)和向量處理部件(Vector?Processing?Unit,VPU),SPU負責標量任務計算和流控,VPU負責向量計算,包括若干向量處理單元(Vector?Processing?Element,VPE),每個VPE包含MAC0、MAC1等多個運算功能部件,以及ALU?、BP等其他功能部件。SPU和VPU提供數據通道傳輸和交換數據。向量數據訪問單元支持向量數據的Load/Store,提供大容量的專用向量存儲器,而不是單核處理器的Cache機制,現有的分塊矩陣乘法方法不適合這類向量處理器。因此,亟需設計一種高效的支持多MAC運算部件向量處理器的分塊矩陣乘法向量化的方法,以便最優的發揮向量處理器的運算效率。
發明內容
本發明要解決的技術問題就在于:針對現有技術存在的技術問題,本發明提供一種實現簡單、操作方便、可提高向量處理器并行性、能提高處理器運算效率的支持多MAC運算部件向量處理器的分塊矩陣乘法向量化方法。
為解決上述技術問題,本發明采用以下技術方案:
一種支持多MAC運算部件向量處理器的分塊矩陣乘法向量化方法,流程為:
(1)依據向量處理器的向量處理單元VPE的數量p、VPE中的MAC運算部件的數量m、向量存儲器的容量s和矩陣元素的數據大小d,確定最優的子矩陣的塊大小blocksize,確定乘數矩陣B的子矩陣的列數和行數以及確定被乘數矩陣A的子矩陣的行數與列數;
(2)將向量存儲器的容量s分為容量相等的兩部分存儲區域Buffer0和Buffer1,依次在Buffer0和Buffer1間以乒乓方式實現子矩陣的乘法,直到整個矩陣乘法計算完成。
作為本發明的進一步改進:
所述步驟(1)中,乘數矩陣B的子矩陣的列數為p*m,行數為(s/2/2)/(p*m*d);確定乘數矩陣B的子矩陣塊大小后,再確定被乘數矩陣A的子矩陣塊大小;所述被乘數矩陣A的子矩陣的行數與列數都等于乘數矩陣B的子矩陣的行數,即(s/2/2)/(p*m*d)。
所述向量處理器的標量處理部件SPU依次讀取被乘數子矩陣A的每一行中的每一個元素,并擴展成一個向量數據;由向量處理部件VPU讀取乘數子矩陣B的B0行數據與前述向量數據的每個元素分別進行乘累加;當遍歷完被乘數子矩陣的A0行數據時,計算得到結果子矩陣C的C0行數據;當遍歷完被乘數子矩陣A的所有行時,完成結果子矩陣C的計算。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310166411.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種文本列表組合控件
- 下一篇:一種檢測已安裝應用的方法、裝置及設備





