本技術涉及計算機,特別涉及一種算子融合方法、系統(tǒng)、設備及介質。
背景技術:
1、在現代高性能計算的多種復雜應用場景中,依賴于計算圖來管理和優(yōu)化計算過程,其中,計算圖作為計算任務的有向無換圖,不僅定義了各個算子之間的由來關系,還直接影響著計算任務的執(zhí)行效率。與此同時,現代高性能計算體系正在逐步向異構計算架構發(fā)展,由中央處理單元和多種專用加速芯片組成,而各類加速芯片在計算能力和存儲架構上存在顯著差異,使得異構計算系統(tǒng)能夠在不同類型的任務中發(fā)揮出色性能。因此在異構計算體系中,計算圖中的合理算子融合尤為重要。
2、而由于不同的加速芯片在硬件架構、存儲層次、數據傳輸速度以及并行計算能力等方面各有特點;同一個計算圖在不同的加速芯片上可能需要采用不同的算子融合策略,因此需要針對不同加速芯片量身定制合適的算子融合策略,以發(fā)揮不同加速芯片的最佳計算能力。
3、因此亟需一種算子融合方法以解決上述技術問題。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種算子融合方法,以提高適應性。
2、第一方面,本技術提供一種算子融合方法,方法包括:
3、獲取當前硬件平臺的加速芯片配置信息和計算圖包含的算子類型信息;
4、輸入獲取到的所述加速芯片配置信息、所述算子類型信息以及所述計算圖至已訓練好的算子融合模型以輸出目標算子;
5、其中,所述算子融合模型通過加載與所述加速芯片配置信息匹配的目標第一配置文件和與所述算子類型信息匹配的目標第二配置文件調整所述算子融合模型內的低秩權重調整參數以適配硬件平臺和算子類型。
6、在一些實施例中,所述算子融合模型包括:
7、輸入前處理模塊,用于對輸入的加速芯片配置信息和算子類型信息進行編碼以生成芯片編碼向量和算子編碼向量;
8、芯片架構適配模塊,用于在訓練過程中生成第一配置文件,并在運行過程中加載與所述加速芯片配置信息匹配的目標第一配置文件;
9、算子類型適配模塊,用于在訓練過程中生成第二配置文件,并在運行過程中加載與所述算子類型信息匹配的目標第二配置文件;
10、后處理適配模塊,用于根據芯片編碼向量和算子編碼向量生成融合編碼向量;
11、算子生成模塊,用于根據融合編碼向量以生成目標算子。
12、在一些實施例中,所述對輸入的加速芯片配置信息和算子類型信息進行編碼以生成芯片編碼向量和算子編碼向量,包括:
13、利用編碼器根據第一預設公式實現對輸入的加速芯片配置信息進行編碼以生成芯片編碼向量,所述第一預設公式為:
14、oarch=te((iconfig⊕e(iconfig))⊕(ioperator⊕e(ioperator))),
15、其中,iconfig表示加速芯片配置信息,e(iconfig)表示與加速芯片對應的編碼向量,ioperator表示算子類型信息,e(ioperator)表示與算子類型對應的編碼向量,te表示轉換操作,⊕表示拼接操作,oarch表示芯片編碼向量;
16、利用編碼器根據第二預設公式實現對輸入的算子類型信息進行編碼以生成算子編碼向量,所述第二預設公式為:
17、ooperator=te(ioperator⊕e(ioperator)),
18、其中,ooperator表示算子編碼向量。
19、在一些實施例中,所述根據芯片編碼向量和算子編碼向量生成融合編碼向量,包括:
20、對芯片編碼向量和算子編碼向量進行拼接以生成第一拼接向量;
21、向多層感知器中輸入所述第一拼接向量以生成變換編碼向量;
22、向預設的選擇網絡輸入所述變換編碼向量以生成與所述芯片編碼向量對應的第一權重和與所述算子編碼向量對應的第二權重;
23、根據第一權重對所述芯片編碼向量進行加權處理,并根據第二權重對所述算子編碼向量進行加權處理;
24、將加權處理后的芯片編碼向量和算子編碼向量進行拼接以生成第二拼接向量;
25、向所述多層感知器中輸入第二拼接向量以生成融合編碼向量。
26、在一些實施例中,所述向預設的選擇網絡輸入所述變換編碼向量以生成與所述芯片編碼向量對應的第一權重和與所述算子編碼向量對應的第二權重,包括:
27、所述選擇網絡基于第三預設公式生成與所述芯片編碼向量對應的第一權重,所述第三預設公式為:
28、
29、其中,a表示網絡參數,x表示輸入的第一拼接向量,s1表示第一權重;
30、所述選擇網絡基于第四預設公式生成與所述算子編碼向量對應的第二權重,所述第四預設公式為:
31、
32、其中,b表示網絡參數,s2表示第二權重。
33、在一些實施例中,所述方法還包括所述算子融合模型的訓練方法:
34、根據大規(guī)模的原始算子數據集對所述算子融合模型進行預訓練,以確保所述算子融合模型實現根據輸入的計算圖輸出融合算子;
35、根據預設參數選取符合預設條件的第一算子數據集,并根據所述第一算子數據集對預訓練后的算子融合模型進行第二訓練,以優(yōu)化所述算子融合模型;
36、優(yōu)化后的算子融合模型驗證通過后,根據不同的適配場景選取符合所述適配場景需求的第二算子數據集;
37、根據所述第二算子數據集對優(yōu)化后的所述算子融合模型進行第三訓練,以確保所述算子融合模型根據適配場景進行適應性調整。
38、在一些實施例中,所述根據所述第二算子數據集對優(yōu)化后的所述算子融合模型進行第三訓練之前,包括:
39、凍結所述算子融合模型的所有參數并在所述算子融合模型中的芯片架構適配模塊和算子適配模塊中添加低秩權重調整參數;
40、所述根據所述第二算子數據集對優(yōu)化后的所述算子融合模型進行第三訓練,還包括:
41、保存芯片架構適配模塊中與所述適配場景匹配的第一低秩權重調整參數為第一配置文件;
42、保存算子類型適配模塊中與所述適配場景匹配的第二低秩權重調整參數為第二配置文件。
43、第二方面,本技術提供一種算子融合系統(tǒng),所述系統(tǒng)包括:
44、數據準備模塊,用于獲取當前硬件平臺的加速芯片配置信息和計算圖包含的算子類型信息;
45、算子融合模塊,用于輸入獲取到的所述加速芯片配置信息、所述算子類型信息以及所述計算圖至已訓練好的算子融合模型以輸出目標算子;
46、其中,所述算子融合模型通過與所述加速芯片配置信息匹配的目標第一配置文件和與所述算子類型信息匹配的目標第二配置文件調整所述算子融合模型內的低秩權重調整參數以適配硬件平臺和算子類型。
47、第三方面,本技術提供一種計算機程序產品,所述計算機程序產品被處理器執(zhí)行時實現以下方法的步驟:
48、獲取當前硬件平臺的加速芯片配置信息和計算圖包含的算子類型信息;
49、輸入獲取到的所述加速芯片配置信息、所述算子類型信息以及所述計算圖至已訓練好的算子融合模型以輸出目標算子;
50、其中,所述算子融合模型通過加載與所述加速芯片配置信息匹配的目標第一配置文件和與所述算子類型信息匹配的目標第二配置文件調整所述算子融合模型內的低秩權重調整參數以適配硬件平臺和算子類型。
51、第四方面,本技術提供了一種電子設備,電子設備包括:
52、一個或多個處理器;
53、以及與一個或多個處理器關聯的存儲器,存儲器用于存儲程序指令,程序指令在被一個或多個處理器讀取執(zhí)行時,執(zhí)行如下操作:
54、獲取當前硬件平臺的加速芯片配置信息和計算圖包含的算子類型信息;
55、輸入獲取到的所述加速芯片配置信息、所述算子類型信息以及所述計算圖至已訓練好的算子融合模型以輸出目標算子;
56、其中,所述算子融合模型通過加載與所述加速芯片配置信息匹配的目標第一配置文件和與所述算子類型信息匹配的目標第二配置文件調整所述算子融合模型內的低秩權重調整參數以適配硬件平臺和算子類型。
57、第五方面,本技術還提供了一種計算機可讀存儲介質,存儲介質上存儲計算機程序,計算機程序使得計算機執(zhí)行如下操作:
58、獲取當前硬件平臺的加速芯片配置信息和計算圖包含的算子類型信息;
59、輸入獲取到的所述加速芯片配置信息、所述算子類型信息以及所述計算圖至已訓練好的算子融合模型以輸出目標算子;
60、其中,所述算子融合模型通過加載與所述加速芯片配置信息匹配的目標第一配置文件和與所述算子類型信息匹配的目標第二配置文件調整所述算子融合模型內的低秩權重調整參數以適配硬件平臺和算子類型。
61、本技術實現的有益效果為:
62、本技術提供了一種算子融合方法,包括獲取當前硬件平臺的加速芯片配置信息和計算圖包含的算子類型信息;輸入獲取到的所述加速芯片配置信息、所述算子類型信息以及所述計算圖至已訓練好的算子融合模型以輸出目標算子;其中,所述算子融合模型通過加載與所述加速芯片配置信息匹配的目標第一配置文件和與所述算子類型信息匹配的目標第二配置文件調整所述算子融合模型內的低秩權重調整參數以適配硬件平臺和算子類型。通過動態(tài)加載與當前硬件和算子類型相關的配置文件,實現在面對算法和應用需求變化以及不同的加速芯片架構時,自動調整算子實現,確保在不同任務場景中的性能一致性和可靠性。