System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及計算機,尤其涉及一種針對ai加速芯片的自動混合精度訓練方法及裝置。
技術介紹
1、ai加速芯片也可稱為ai芯片或ai計算卡,專門用于處理人工智能應用中的大量計算任務。這些ai加速芯片針對人工智能算法進行了特殊的加速設計,以高效地處理復雜的數學計算和數據處理任務。ai加速芯片是推動人工智能發展的重要基礎設施之一,其通過提供強大的計算能力和優化的算法,使得人工智能技術得以更快、更準確地運行。
2、目前,為了節省顯存和提高加快ai加速芯片的計算速度,在利用ai加速芯片執行神經網絡推理訓練時,通常采用自動混合精度訓練(automatic?mixed?precision,amp)方式,該amp方式可以在神經網絡模型的推理過程中,針對不同的算子,采用不同的數據精度進行計算,從而起到節省顯存和加快計算速度的作用,也即amp可以讓每一個算子都匹配各自對應的數據精度,例如,一些算子采用較高精度的32位浮點型(float32),另外一些算子采用更低精度的16位浮點型(float16或bfloat16)。
3、而目前神經網絡模型的訓練框架的自動混合精度訓練能力與ai加速芯片高度耦合,當某一訓練框架需要在一款新的ai加速芯片支持自動混合精度訓練時,需要技術人員調整ai加速芯片實現統一的計算偏好或者根據ai加速芯片的計算偏好,編寫邏輯代碼使算子使用合適的數據精度,因此每次支持新的ai加速芯片都需要重新開發訓練框架,也即需要針對不同ai加速芯片定制適配的訓練框架,存在適配工作量大、技術要求高、重復工作多等問題。
r/>技術實現思路
1、本公開提出了一種針對ai加速芯片的自動混合精度訓練技術方案。
2、根據本公開的一方面,提供了針對ai加速芯片的自動混合精度訓練方法,包括:響應于所述ai加速芯片執行目標訓練框架下的自動混合精度訓練,獲取當前待計算的輸入數據,并從所述目標訓練框架中預設的算子精度配置文件中查詢待調用的訓練算子偏好的目標數據精度,所述算子精度配置文件中定義有所述目標訓練框架中各種訓練算子偏好的數據精度;根據查詢到的目標數據精度以及所述輸入數據原始的數據精度,確定具有所述目標數據精度的目標輸入數據,并調用所述訓練算子對所述目標輸入數據進行計算,以使所述ai加速芯片完成所述目標訓練框架下的自動混合精度訓練。
3、在一種可能的實現方式中,所述目標訓練框架中設有默認配置文件,所述默認配置文件定義有所述目標訓練框架中各種訓練算子默認的數據精度;在所述ai加速芯片執行所述目標訓練框架下的自動混合精度訓練之前,所述方法還包括:檢查所述默認配置文件所定義的各種訓練算子默認的數據精度與所述ai加速芯片執行各種訓練算子時所偏好的數據精度是否一致;在所述默認配置文件所定義的各種訓練算子默認的數據精度與所述ai加速芯片執行各種訓練算子時所偏好的數據精度一致的情況下,將所述默認配置文件確定為所述算子精度配置文件。
4、在一種可能的實現方式中,所述方法還包括:在所述默認配置文件中存在訓練算子默認的數據精度與所述ai加速芯片所偏好的數據精度不一致的情況下,基于所述ai加速芯片所偏好的數據精度,對所述默認配置文件進行修改,得到所述算子精度配置文件。
5、在一種可能的實現方式中,所述根據查詢到的目標數據精度以及所述輸入數據原始的數據精度,確定具有所述目標數據精度的目標輸入數據,包括:在查詢到的目標數據精度與所述輸入數據原始的數據精度不同的情況下,對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據;在查詢到的目標數據精度與所述輸入數據原始的數據精度相同的情況下,將所述輸入數據確定為具有所述目標數據精度的目標輸入數據。
6、在一種可能的實現方式中,所述目標訓練框架中定義有數據精度轉換接口,所述數據精度轉換接口用于對輸入數據進行精度轉換,其中,所述對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據,包括:調用所述ai加速芯片提供的所述數據精度轉換接口對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據。
7、在一種可能的實現方式中,所述對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據,包括:在調用通用處理器提供的數據精度轉換接口對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據。
8、在一種可能的實現方式中,待調用的訓練算子有兩種以上,兩種以上訓練算子對應查詢到至少一種目標數據精度,所述對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據,包括:基于所述兩種以上訓練算子對應查詢到的至少一種目標數據精度,對所述輸入數據進行精度轉換,得到至少一種目標輸入數據;其中,所述方法還包括:對所述輸入數據及所述輸入數據對應的所述至少一種目標輸入數據進行存儲并建立查詢索引,所述查詢索引用于查詢所述輸入數據在任一目標數據精度下的目標輸入數據。
9、根據本公開的一方面,提供了一種針對ai加速芯片的自動混合精度訓練裝置,包括:查詢模塊,用于響應于所述ai加速芯片執行目標訓練框架下的自動混合精度訓練,獲取當前待計算的輸入數據,并從所述目標訓練框架中預設的算子精度配置文件中查詢待調用的訓練算子偏好的目標數據精度,所述算子精度配置文件中定義有所述目標訓練框架中各種訓練算子偏好的數據精度;計算模塊,用于根據查詢到的目標數據精度以及所述輸入數據原始的數據精度,確定具有所述目標數據精度的目標輸入數據,并調用所述訓練算子對所述目標輸入數據進行計算,以使所述ai加速芯片完成所述目標訓練框架下的自動混合精度訓練。
10、在一種可能的實現方式中,所述目標訓練框架中設有默認配置文件,所述默認配置文件定義有所述目標訓練框架中各種訓練算子默認的數據精度;在所述ai加速芯片執行所述目標訓練框架下的自動混合精度訓練之前,所述裝置還包括:檢查模塊,用于檢查所述默認配置文件所定義的各種訓練算子默認的數據精度與所述ai加速芯片執行各種訓練算子時所偏好的數據精度是否一致;在所述默認配置文件所定義的各種訓練算子默認的數據精度與所述ai加速芯片執行各種訓練算子時所偏好的數據精度一致的情況下,將所述默認配置文件確定為所述算子精度配置文件。
11、在一種可能的實現方式中,所述裝置還包括:修改模塊,用于在所述默認配置文件中存在訓練算子默認的數據精度與所述ai加速芯片所偏好的數據精度不一致的情況下,基于所述ai加速芯片所偏好的數據精度,對所述默認配置文件進行修改,得到所述算子精度配置文件。
12、在一種可能的實現方式中,所述根據查詢到的目標數據精度以及所述輸入數據原始的數據精度,確定具有所述目標數據精度的目標輸入數據,包括:在查詢到的目標數據精度與所述輸入數據原始的數據精度不同的情況下,對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據;在查詢到的目標數據精度與所述輸入數據原始的數據精度相同的情況下,將所述輸入數據確定為具有所述目標數據精度的目標輸入數據。
1本文檔來自技高網...
【技術保護點】
1.一種針對AI加速芯片的自動混合精度訓練方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述目標訓練框架中設有默認配置文件,所述默認配置文件定義有所述目標訓練框架中各種訓練算子默認的數據精度;在所述AI加速芯片執行所述目標訓練框架下的自動混合精度訓練之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求1所述的方法,其特征在于,所述根據查詢到的目標數據精度以及所述輸入數據原始的數據精度,確定具有所述目標數據精度的目標輸入數據,包括:
5.根據權利要求4所述的方法,其特征在于,所述目標訓練框架中定義有數據精度轉換接口,所述數據精度轉換接口用于對輸入數據進行精度轉換,其中,所述對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據,包括:
6.根據權利要求4所述的方法,其特征在于,所述對所述輸入數據進行精度轉換,得到具有所述目標數據精度的目標輸入數據,包括:
7.根據權利要求4至6任一項所述的方法,其特征在于,待調用的訓練算子有兩種以
8.一種針對AI加速芯片的自動混合精度訓練裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括:
10.一種計算機可讀存儲介質,其上存儲有計算機程序指令,其特征在于,所述計算機程序指令被處理器執行時實現權利要求1至7中任意一項所述的方法。
...【技術特征摘要】
1.一種針對ai加速芯片的自動混合精度訓練方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述目標訓練框架中設有默認配置文件,所述默認配置文件定義有所述目標訓練框架中各種訓練算子默認的數據精度;在所述ai加速芯片執行所述目標訓練框架下的自動混合精度訓練之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求1所述的方法,其特征在于,所述根據查詢到的目標數據精度以及所述輸入數據原始的數據精度,確定具有所述目標數據精度的目標輸入數據,包括:
5.根據權利要求4所述的方法,其特征在于,所述目標訓練框架中定義有數據精度轉換接口,所述數據精度轉換接口用于對輸入數據進行精度轉換,其中,所述對所述輸...
【專利技術屬性】
技術研發人員:王磊,李凌劼,沈煉成,孫上斌,張行程,
申請(專利權)人:北京市商湯科技開發有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。