System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及稀疏矩陣計算領域,具體涉及一種gpgpu架構下的稀疏計算單元、方法、設備及介質。
技術介紹
1、近年來,通用圖形處理器(general-purpose?computing?on?graphicsprocessing?units,gpgpu)是一種利用處理圖形任務的圖形處理器(gpu)來計算原本由中央處理器處理的通用目標計算任務,而不僅僅是用于圖形渲染,能夠顯著提高了計算效率。同時,gpgpu在科學計算、深度學習、圖像處理、數據分析及諸多科學領域中,有著廣闊的應用前景。
2、稀疏計算作為一種矩陣運算的方法,同樣在上述領域中占有優勢,但目前gpgpu在進行稀疏矩陣運算時,由于gpu稀疏矩陣的運算占用資源比較大,這就容易導致許多gpu并行計算單元(cuda核心或流處理器)缺少運算資源,進而拖累其他進程的計算,導致gpgpu呈現出的計算能力較低,且現有技術中gpgpu對不同數據類型的支持較差。
技術實現思路
1、為了解決上述問題,本申請提出了一種gpgpu架構下的稀疏計算單元、方法、設備及介質,稀疏計算單元包括多個流式多處理器,每個流式多處理器內包含線程束調度器、指令緩存、解碼模塊、第一緩沖模塊、操作數收集器、記分牌、發射模塊、寫回模塊、訪存單元、數據緩存以及共享存儲單元;其特征在于,所述gpgpu架構下的稀疏計算單元還包括:設置于所述流式多處理器內的稀疏矩陣運算單元,所述稀疏矩陣運算單元與所述發射模塊、寫回模塊相連;所述稀疏矩陣運算單元包括選擇器、算法模塊、累加器以
2、在一個示例中,所述選擇器用于提取待計算的矩陣元素;所述多個第二緩沖模塊與所述選擇器相連,用于判斷所述選擇器提取的矩陣元素是否正確,并對提取的矩陣元素進行暫存;所述算法模塊設置于所述多個第二緩沖模塊與所述累加器之間;所述累加器用于對矩陣元素的計算結果進行累加。
3、本申請還提供了一種gpgpu架構下的稀疏計算方法,應用于上述一種gpgpu架構下的稀疏計算單元中,所述稀疏計算方法包括:通過訪存單元調度模塊將通過預設格式保存的待計算矩陣分割為多個中間子矩陣,所述中間子矩陣的數量與流式多處理器的數量有關;將目標計算任務與所述中間子矩陣發送給所述多個流式多處理器內的線程束調度模塊;通過線程束調度模塊將目標計算任務劃分為多個計算子任務,并將所述中間子矩陣再次分割,以與線程數量一致的條形隊列,將所述計算子任務與對應的條形隊列分配到不同線程當中;通過稀疏矩陣運算模塊完成所述計算子任務對應的乘法運算,以得到運算子結果;通過訪存單元將所述運算子結果發送給訪存單元調度模塊,并通過所述訪存單元調度模塊將各流式多處理器的運算子結果進行拼接,以得到目標計算任務對應的計算結果。
4、在一個示例中,所述通過稀疏矩陣運算模塊完成所述計算子任務對應的乘法運算,以得到運算子結果,具體包括:基于所述計算子任務,確定待計算元素以及計算順序;通過選擇器在第一條形隊列中確定第一待計算元素,并在第二條形隊列中確定第二待計算元素;計算過程中通過第二緩沖模塊進行緩沖,以保證選擇器正確的提取數據,并對提取的數據進行暫存;計算結束后,通過累加器將所述計算結果進行累加,以得到當前線程對應的運算子結果。
5、在一個示例中,所述通過訪存單元將所述運算子結果發送給訪存單元調度模塊,具體包括:通過累加器將所述計算結果進行累加,以得到當前線程對應的運算子結果之后,將所述運算子結果存儲于當前流式多處理器內的訪存單元中;接收來自于訪存單元調度模塊的數據獲取請求,并根據所述數據獲取請求確定對應的目標流式多處理器;將所述目標流式多處理器的訪存單元內的運算子結果取出,并發送至所述訪存單元調度模塊中。
6、在一個示例中,所述通過所述訪存單元調度模塊將各流式多處理器的運算子結果進行拼接,以得到目標計算任務對應的計算結果,具體包括:通過訪存單元調度模塊在二級緩存中將全部流式多處理器對應的運算子結果進行綜合,以得到所述計算結果;所述得到所述計算結果之后,所述方法還包括:將所述計算結果存儲至gpgpu架構下的總存儲單元內;通過所述總存儲單元將所述計算結果上傳至與所述gpgpu架構相連的上位機中。
7、在一個示例中,所述通過訪存單元調度模塊將通過預設格式保存的待計算矩陣分割為多個中間子矩陣之前,所述方法還包括:將所述待計算矩陣通過ellpack-ltpack格式進行保存。
8、在一個示例中,第一緩沖模塊用于保證條形隊列的有序分配并被操作數收集器正確收集;
9、當前批次條形隊列在被操作數收集器完成數據收集之前,所述第一緩沖模塊用于阻止下一批次的條形隊列數據進入所述操作數收集器。
10、本申請還提供了一種gpgpu架構下的稀疏計算設備,包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行:通過訪存單元調度模塊將通過預設格式保存的待計算矩陣分割為多個中間子矩陣,所述中間子矩陣的數量與流式多處理器的數量有關;將目標計算任務與所述中間子矩陣發送給所述多個流式多處理器內的線程束調度模塊;通過線程束調度模塊將目標計算任務劃分為多個計算子任務,并將所述中間子矩陣再次分割,以與線程數量一致的條形隊列,將所述計算子任務與對應的條形隊列分配到不同線程當中;通過稀疏矩陣運算模塊完成所述計算子任務對應的乘法運算,以得到運算子結果;通過訪存單元將所述運算子結果發送給訪存單元調度模塊,并通過所述訪存單元調度模塊將各流式多處理器的運算子結果進行拼接,以得到目標計算任務對應的計算結果。
11、本申請還提供了一種非易失性計算機存儲介質,存儲有計算機可執行指令,所述計算機可執行指令設置為:通過訪存單元調度模塊將通過預設格式保存的待計算矩陣分割為多個中間子矩陣,所述中間子矩陣的數量與流式多處理器的數量有關;將目標計算任務與所述中間子矩陣發送給所述多個流式多處理器內的線程束調度模塊;通過線程束調度模塊將目標計算任務劃分為多個計算子任務,并將所述中間子矩陣再次分割,以與線程數量一致的條形隊列,將所述計算子任務與對應的條形隊列分配到不同線程當中;通過稀疏矩陣運算模塊完成所述計算子任務對應的乘法運算,以得到運算子結果;通過訪存單元將所述運算子結果發送給訪存單元調度模塊,并通過所述訪存單元調度模塊將各流式多處理器的運算子結果進行拼接,以得到目標計算任務對應的計算結果。
12、通過本申請提出的方法能夠帶來如下有益效果:通過設計存訪單元調度模塊,可以協同不同sm上的訪存單元,進行集體調度,進而提高了訪存單元的使用功能和使用效率。通過添加稀疏矩陣計算單元,本文檔來自技高網...
【技術保護點】
1.一種GPGPU架構下的稀疏計算單元,包括多個流式多處理器,每個流式多處理器內包含線程束調度器、指令緩存、解碼模塊、第一緩沖模塊、操作數收集器、記分牌、發射模塊、寫回模塊、訪存單元、數據緩存以及共享存儲單元;其特征在于,所述GPGPU架構下的稀疏計算單元還包括:
2.根據權利要求1所述的一種GPGPU架構下的稀疏計算單元,其特征在于,所述選擇器用于提取待計算的矩陣元素;
3.一種GPGPU架構下的稀疏計算方法,其特征在于,應用于如權利要求1或2所述的一種GPGPU架構下的稀疏計算單元,所述稀疏計算方法包括:
4.根據權利要求3所述的一種GPGPU架構下的稀疏計算方法,其特征在于,所述通過稀疏矩陣運算模塊完成所述計算子任務對應的乘法運算,以得到運算子結果,具體包括:
5.根據權利要求4所述的一種GPGPU架構下的稀疏計算方法,其特征在于,所述通過訪存單元將所述運算子結果發送給訪存單元調度模塊,具體包括:
6.根據權利要求4所述的一種GPGPU架構下的稀疏計算方法,其特征在于,所述通過所述訪存單元調度模塊將各流式多處理器的
7.根據權利要求3所述的一種GPGPU架構下的稀疏計算方法,其特征在于,所述通過訪存單元調度模塊將通過預設格式保存的待計算矩陣分割為多個中間子矩陣之前,所述方法還包括:
8.根據權利要求3所述的一種GPGPU架構下的稀疏計算方法,其特征在于,第一緩沖模塊用于保證條形隊列的有序分配并被操作數收集器正確收集;
9.一種GPGPU架構下的稀疏計算設備,其特征在于,包括:
10.一種非易失性計算機存儲介質,存儲有計算機可執行指令,其特征在于,所述計算機可執行指令設置為:
...【技術特征摘要】
1.一種gpgpu架構下的稀疏計算單元,包括多個流式多處理器,每個流式多處理器內包含線程束調度器、指令緩存、解碼模塊、第一緩沖模塊、操作數收集器、記分牌、發射模塊、寫回模塊、訪存單元、數據緩存以及共享存儲單元;其特征在于,所述gpgpu架構下的稀疏計算單元還包括:
2.根據權利要求1所述的一種gpgpu架構下的稀疏計算單元,其特征在于,所述選擇器用于提取待計算的矩陣元素;
3.一種gpgpu架構下的稀疏計算方法,其特征在于,應用于如權利要求1或2所述的一種gpgpu架構下的稀疏計算單元,所述稀疏計算方法包括:
4.根據權利要求3所述的一種gpgpu架構下的稀疏計算方法,其特征在于,所述通過稀疏矩陣運算模塊完成所述計算子任務對應的乘法運算,以得到運算子結果,具體包括:
5.根據權利要求4所述的一種gpgpu架構下的稀疏計算方法,其特...
【專利技術屬性】
技術研發人員:李炳坤,魏朝飛,閆玉婕,許桂龍,
申請(專利權)人:山東浪潮科學研究院有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。