System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機處理,尤其涉及一種基于單指令多數據(singleinstruction?multiple?data,simd)與單指令多線程(single?instruction?multiplethreads,simt)的協同計算方法、系統及設備。
技術介紹
1、在當今的計算領域,隨著數據量的爆炸式增長以及各類復雜應用場景的不斷涌現,對計算性能的需求日益迫切。目前,中央處理器(central?processing?unit,cpu)、dsp芯片普遍采用simd技術來實現加速。通過提供intrinsic編程接口,開發人員能夠直接操作底層寄存器,在一定程度上實現了性能的提升以及功耗的降低。
2、然而,這種基于simd的加速方式存在顯著的局限性。它僅支持以simd指令進行編寫,在面對大規模矩陣運算這類需要高度并行處理和復雜計算邏輯的任務時,就顯得力不從心。大規模矩陣運算往往涉及到海量數據的并行處理以及多樣化的計算操作,simd指令的局限性使得其無法高效地滿足這些復雜需求。
3、另一方面,圖形處理器(graphics?processing?unit,gpu)、asic芯片等采用simt技術來實現加速,可提升程序并行度。但其單個矩陣計算單元無法像simd一樣利用寬寄存器合并同類計算,這就導致在某些對計算效率要求極高的場景下,simt的單個計算單元無法充分發揮硬件的潛力,從而影響了整體的計算性能。
4、專利技術人發現,若能在利用simt矩陣計算單元整體的處理能力的同時,引入simd技術,充分發揮其在矢量
5、基于此,亟需一種能夠將simd與simt相結合,提高應用程序的性能和開發靈活性的技術方案。
技術實現思路
1、本申請實施例提供了一種基于simd與simt的協同計算方法、系統及設備用于解決simd與simt各自的局限性嚴重限制了應用程序性能的進一步提升,同時也極大地束縛了開發人員在編程過程中的靈活性,使其難以根據實際需求靈活選擇合適的計算方式的技術問題。
2、一方面,本申請實施例提供了一種基于simd與simt的協同計算方法,所述方法應用于多個流處理器sp組成的線程束warp,所述warp包括simt前端和simd后端;各sp對應于由多個短寄存器組合的向量寄存器;所述方法包括:
3、在simt前端的線程束調度器確定與計算任務對應的第一線程束處于激活狀態的情況下,生成取指指示信息;其中,所述激活狀態基于任務隊列狀態中所述計算任務的執行依賴資源確定;
4、響應于所述取指指示信息,通過取指單元獲取所述第一線程束對應的第一緩存指令,并發送至所述simt前端的譯碼單元進行解析,以將解析后的指令進行派遣至simd后端;
5、通過所述simd后端的操作數收集單元,獲取所述解析后的指令對應的一個或多個所需操作數;
6、通過所述simd后端,將各所述所需操作數分發至相應的計算管理單元,以執行相應的所述計算任務,并通過寫回單元將所述計算任務對應計算結果寫回至存儲單元。
7、在本申請的一種實現方式中,所述多個短寄存器組合基于所述計算任務的位寬得到;具體包括:
8、根據所述計算任務的位寬,確定相應的所需寄存器長度;
9、根據所述所需寄存器長度、當前寄存器可用狀態,確定預設可用寄存器集合中的待選寄存器組合;其中,所述預設可用寄存器集合包含若干32位寄存器;
10、根據各所述待選寄存器組合及預設寄存器成本函數,確定選定寄存器組合,以根據所述選定寄存器組合得到所述向量寄存器。
11、在本申請的一種實現方式中,根據各所述待選寄存器組合及預設寄存器成本函數,確定選定寄存器組合,具體包括:
12、通過梯度下降算法,對所述預設寄存器成本函數進行尋優操作;其中,所述預設寄存器成本函數至少包括相應寄存器組合對應的時間延遲成本、能量消耗成本;
13、當所述梯度下降算法對應的梯度模長小于預設閾值的情況下,停止迭代,并確定相應的待選寄存器組合為所述選定寄存器組合。
14、在本申請的一種實現方式中,所述第一緩存指令的指令緩存單元包括采用risc-v添加的向量指令;所述向量指令包括:配置設置指令、向量加載和存儲指令、向量整數指令、向量定點指令、向量浮點指令。
15、在本申請的一種實現方式中,所述warp對應7個csr寄存器,包括:矢量起始位置寄存器、定點飽和標志寄存器、定點舍入方式寄存器、矢量控制和狀態寄存器、向量長度寄存器、向量數據類型寄存器、向量寄存器長度寄存器。
16、在本申請的一種實現方式中,所述方法還包括:
17、在采用risc-v添加向量指令之前,通過tablegen工具在risc-v的向量指令描述文件中定義前端指令的前端向量操作接口;所述前端向量操作接口至少用于向量加法、向量乘法及向量加載;
18、將所述前端向量操作接口對應的接口頭文件存儲至預設工具鏈,以便通過所述預設工具鏈調用封裝的所述向量指令,進行risc-v向量編程。
19、在本申請的一種實現方式中,提供intrinsic接口;所述intrinsic接口用于在上層編寫設備側代碼時,利用硬件寄存器資源進行矢量化加速。
20、在本申請的一種實現方式中,所述方法還包括:
21、根據所述向量指令的功能類別和操作復雜度、預設操作碼子空間對照表,將相應所述向量指令的操作碼映射至所述risc-v基本指令格式的操作碼空間;其中,所述預設操作碼子空間對照表包括不同功能類別、不同操作復雜度的操作碼與不同子空間的對照關系。
22、另一方面,本申請實施例還提供了一種基于simd與simt的協同計算系統,所述系統應用于多個流處理器sp組成的線程束warp,所述warp包括simt前端和simd后端;各sp對應于由多個短寄存器組合的向量寄存器;所述系統包括:
23、生成模塊,用于在simt前端的線程束調度器確定與計算任務對應的第一線程束處于激活狀態的情況下,生成取指指示信息;其中,所述激活狀態基于任務隊列狀態中所述計算任務的執行依賴資源確定;
24、獲取發送模塊,用于響應于所述取指指示信息,通過取指單元獲取所述第一線程束對應的第一緩存指令,并發送至所述simt前端的譯碼單元進行解析,以將解析后的指令進行派遣至simd后端;
25、獲取模塊,用于通過所述simd后端的操作數收集單元,獲取所述解析后的指令對應的一個或多個所需操作數;
26、分發模塊,用于通過所述simd后端,將各所述所需操作數分發至相應的計算管理單元,以執行相應的所述計算任務,并通過寫回單元將所述計算任務對應計算結果寫回至存儲單元。
27、再一方面,本申請實施例還提供了一種基于simd與simt的協同計算本文檔來自技高網...
【技術保護點】
1.一種基于SIMD與SIMT的協同計算方法,其特征在于,所述方法應用于多個流處理器SP組成的線程束Warp,所述Warp包括SIMT前端和SIMD后端;各SP對應于由多個短寄存器組合的向量寄存器;所述方法包括:
2.根據權利要求1所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,所述多個短寄存器組合基于所述計算任務的位寬得到;具體包括:
3.根據權利要求2所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,根據各所述待選寄存器組合及預設寄存器成本函數,確定選定寄存器組合,具體包括:
4.根據權利要求1所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,所述第一緩存指令的指令緩存單元包括采用RISC-V添加的向量指令;所述向量指令包括:配置設置指令、向量加載和存儲指令、向量整數指令、向量定點指令、向量浮點指令。
5.根據權利要求4所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,所述Warp對應7個CSR寄存器,包括:矢量起始位置寄存器、定點飽和標志寄存器、定點舍入方式寄存器、矢量控制和狀態寄存器
6.根據權利要求4所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,所述方法還包括:
7.根據權利要求1所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,提供Intrinsic接口;所述Intrinsic接口用于在上層編寫設備側代碼時,利用硬件寄存器資源進行矢量化加速。
8.根據權利要求4所述的一種基于SIMD與SIMT的協同計算方法,其特征在于,所述方法還包括:
9.一種基于SIMD與SIMT的協同計算系統,其特征在于,所述系統應用于多個流處理器SP組成的線程束Warp,所述Warp包括SIMT前端和SIMD后端;各SP對應于由多個短寄存器組合的向量寄存器;所述系統包括:
10.一種基于SIMD與SIMT的協同計算設備,其特征在于,所述設備包括:
...【技術特征摘要】
1.一種基于simd與simt的協同計算方法,其特征在于,所述方法應用于多個流處理器sp組成的線程束warp,所述warp包括simt前端和simd后端;各sp對應于由多個短寄存器組合的向量寄存器;所述方法包括:
2.根據權利要求1所述的一種基于simd與simt的協同計算方法,其特征在于,所述多個短寄存器組合基于所述計算任務的位寬得到;具體包括:
3.根據權利要求2所述的一種基于simd與simt的協同計算方法,其特征在于,根據各所述待選寄存器組合及預設寄存器成本函數,確定選定寄存器組合,具體包括:
4.根據權利要求1所述的一種基于simd與simt的協同計算方法,其特征在于,所述第一緩存指令的指令緩存單元包括采用risc-v添加的向量指令;所述向量指令包括:配置設置指令、向量加載和存儲指令、向量整數指令、向量定點指令、向量浮點指令。
5.根據權利要求4所述的一種基于simd與simt的協同計算方法,其特征在于,所述warp對應7個c...
【專利技術屬性】
技術研發人員:郝運凱,姜凱,趙鑫鑫,
申請(專利權)人:山東浪潮科學研究院有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。