[發明專利]一種基于CSR格式的高性能稀疏矩陣向量乘法計算方法在審
| 申請號: | 202110636177.0 | 申請日: | 2021-06-08 |
| 公開(公告)號: | CN113377534A | 公開(公告)日: | 2021-09-10 |
| 發明(設計)人: | 王超;張加浩;左岳;王寅初;周亦非 | 申請(專利權)人: | 東南大學 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/52 |
| 代理公司: | 南京瑞弘專利商標事務所(普通合伙) 32249 | 代理人: | 孫峰 |
| 地址: | 211189 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 csr 格式 性能 稀疏 矩陣 向量 乘法 計算方法 | ||
1.一種基于CSR格式的高性能稀疏矩陣向量乘法計算方法,其特征在于,包括如下步驟:
步驟S1、采用最簡高效循環結構,進行空間局部性優化,循環效率優化與訪存效率優化;
步驟S2、引入局部變量減少冗余訪存和冗余計算;
步驟S3、在利用多線程加快仿真結果方面,借鑒線程池的基本思想并對線程池進行改進;
步驟S4、采用適應性的親和性設置。
2.根據權利要求1所述的一種基于CSR格式的高性能稀疏矩陣向量乘法計算方法,其特征在于,所述采用最簡高效循環結構具體包括:
步驟S101、將所有計算整合到一個循環結構中,用以減少冗余計算;
步驟S102、按壓縮矩陣元素存儲順序訪存;
步驟S103、循環步長為1。
3.根據權利要求2所述的一種基于CSR格式的高性能稀疏矩陣向量乘法計算方法,其特征在于,所述步驟S2具體包括:在循環內部使用局部變量保存中間結果,然后將中間結果保存在寄存器,計算結束后再寫入內存;
在循環外提前計算循環內的中間結果,在循環內使用臨時變量直接使用這一中間結果。
4.根據權利要求3所述的一種基于CSR格式的高性能稀疏矩陣向量乘法計算方法,其特征在于,所述步驟S3具體包括:
步驟S301、創建代表矩陣索引的全局變量與互斥鎖,并定義結構體;
步驟S302、調用仿真任務模塊時將全局變量賦初值;
步驟S303、利用CPU查看指令獲得服務器的CPU邏輯核個數;
步驟S304、判斷要執行的矩陣數目N與硬件支持線程數目的大小;
若小于,即創建N個線程,一個線程去執行一個矩陣,直接調用相應的多線程函數,執行計算任務;
若大于或者等于,則向下執行;
步驟S305、創建服務器支持的最大線程并為每個線程所執行的函數傳遞所需要的參數;
步驟S306、開辟線程并執行線程函數;
步驟S307、在開辟的線程中,線程函數將傳遞過來的參數進行解析操作;
步驟S308、每個線程去搶奪互斥鎖,獲得鎖的線程判斷全局變量是否大于要執行的矩陣數N,其中,N代表所有要執行的矩陣數目;
若大于,該線程釋放互斥鎖并打破循環,結束仿真;
若小于或者等于,將全局變量賦值給某一局部變量,釋放互斥鎖,并執行計算任務;
步驟S309、待所有線程都結束任務后,主線程結束,完成N個矩陣仿真任務。
5.根據權利要求4所述的一種基于CSR格式的高性能稀疏矩陣向量乘法計算方法,其特征在于,所述步驟S4具體包括:
步驟S401、設置并準備位掩碼;
步驟S402、將位掩碼清零;
步驟S403、將第i個邏輯core設置在位掩碼上;
步驟S404、將線程綁定在設置好的位掩碼上;
步驟S405、判斷親和性設置是否成功,
若不成功,則打印親和性設置異常信息,
若成功,成功繼續執行上述的操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東南大學,未經東南大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110636177.0/1.html,轉載請聲明來源鉆瓜專利網。





