[發明專利]一種自適應稀疏矩陣向量乘策略選擇及優化方法在審
| 申請號: | 202210066813.5 | 申請日: | 2022-01-20 |
| 公開(公告)號: | CN114491401A | 公開(公告)日: | 2022-05-13 |
| 發明(設計)人: | 胡長軍;盧旭;儲根深;何遠杰;董玲玉;邢龍岳 | 申請(專利權)人: | 北京科技大學 |
| 主分類號: | G06F17/16 | 分類號: | G06F17/16 |
| 代理公司: | 北京市廣友專利事務所有限責任公司 11237 | 代理人: | 張仲波;付忠林 |
| 地址: | 100083*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 自適應 稀疏 矩陣 向量 策略 選擇 優化 方法 | ||
1.一種自適應稀疏矩陣向量乘策略選擇及優化方法,適用于GPU架構,其特征在于,所述自適應稀疏矩陣向量乘策略選擇及優化方法包括:
對待處理矩陣按行進行分塊,得到多個矩陣子塊;
統計各矩陣子塊的非零元素數,若各矩陣子塊的非零元素數差別倍數高于第一預設閾值,則采用自適應的CSR-Vector算法對各矩陣子塊進行處理;
統計待處理矩陣的行平均非零元素個數,若待處理矩陣的行平均非零元素個數低于第二預設閾值,則采用改進的CSR-Stream算法進行求解;
統計待處理矩陣的非零元素個數,若待處理矩陣的非零元素個數大于第三預設閾值,則采用hola算法進行求解;
若以上條件均不滿足,則采用CSR-Vector算法進行求解。
2.如權利要求1所述的自適應稀疏矩陣向量乘策略選擇及優化方法,其特征在于,所述采用自適應的CSR-Vector算法對各矩陣子塊進行處理,包括:
以wavefront作為資源分配的單位,對于各矩陣子塊,根據非零元素數量分別對應地分配不同數量的wavefront進行計算;
在wavefront內部,針對不同的矩陣子塊,設置不同的VECTOR_SIZE。
3.如權利要求2所述的自適應稀疏矩陣向量乘策略選擇及優化方法,其特征在于,所述VECTOR_SIZE的計算方式為:
其中,nnz_blocki為第i個矩陣子塊的非零元素數,rowi為第i個矩陣子塊的行數量,表示向下取整,Pow(x)表示大于或等于x的且最小的2的整數次冪。
4.如權利要求1所述的自適應稀疏矩陣向量乘策略選擇及優化方法,其特征在于,所述采用改進的CSR-Stream算法進行求解,包括:
初始化,包括:給定正整數rows_per_block和block_lds_size,分別表示一個block處理的行數量和block擁有的共享內存大小;設置block數量和block內的線程數量,其中,block數量為m為待處理矩陣行數;block內線程數量為固定值;依據行平均非零元素數設置參數VECTOR_SIZE:
在核函數內部:計算當前block處理的行的范圍,確定起始行和結束行;
依據block的起始行和結束行,獲取當前block所需要訪問的非零元素數組和列索引數組的起始索引和結束索引;
依據block所需要訪問的非零元素數組和列索引數組的起始索引和結束索引,計算當前block所需要處理的非零元素數量;
若block所需要處理的非零元素數量不大于block_lds_size,則調用CSR_Stream算法進行當前block中矩陣行的計算;
若block所需要處理的非零元素數量大于block_lds_size,則采用CSR-Vector思想進行計算,具體為:先根據當前block實際所需要計算的行數量n_block_rows、block中vector的數量及VECTOR_SIZE參數,將n_block_rows行劃分給各vector,各vector內執行標準的CSR-Vector算法的計算流程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京科技大學,未經北京科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210066813.5/1.html,轉載請聲明來源鉆瓜專利網。





