System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術大體上涉及矩陣乘法。各個方面涉及將高精度矩陣乘法分解為不同數據類型的多個矩陣乘法。
技術介紹
1、在人工智能(artificial?intelligence,ai)領域,需要多種計算來完成ai工作負載。ai加速器包括專門為高效處理ai工作負載(例如神經網絡)而設計的高性能并行計算機器。
2、ai加速器主要為了降低操作數的精度進行了優化,例如使用半精度二進制浮點數格式、截斷單精度32位浮點數格式(例如bfloat)或整數格式(例如int8、int4等有符號整數)等。ai加速器通常提供張量處理單元(tensor?processing?unit,tpu),tpu包括專門的專用硬件,例如用于此類操作數的張量核心/立方體,或某種形式的矢量處理器,用于進行大量低精度計算(例如低至8位精度)。然而,這樣的設備通常需要回退到速度明顯更慢的處理單元來進行更高精度運算。
3、一些ai相關的工作負載需要更高的數值精度,并且在使用較低精度(例如float16)部署時,可能會導致結果質量下降(例如推薦獲得的點擊率較低),而這種情況無法通過簡單的解決方案來克服,例如縮放或移動中間結果的取值范圍和/或訓練/常量模型參數(例如權重矩陣)。
4、深度神經網絡(deep?neural?network,dnn)訓練場景也可能需要更高的數值精度,尤其是對于梯度和學習參數,以使用相似的計算/訓練迭代次數下收斂到可實現的最高結果質量(例如分類準確度)。除ai/dnn相關應用外,高性能計算(high?performancecom
技術實現思路
1、本專利技術的目的是提供一種在設備中執行更高精度運算的高效方法,該方法可在軟件中實現,或只需對硬件進行最少的修改即可實現。
2、上述和其他目的通過獨立權利要求的特征來實現。
3、其他實現方式在從屬權利要求、說明書和附圖中是顯而易見的。
4、本專利技術的第一方面提供了一種使用操作數的混合精度分解執行矩陣乘法的方法,所述方法包括:將包括具有第一精度的多個元素的第一矩陣轉換為第二矩陣,其中,所述第二矩陣包括具有第二精度的多個元素,所述第二精度低于所述第一精度;生成包括所述第二矩陣和第三矩陣的乘積的第一輸出矩陣,其中,所述第三矩陣包括具有所述第二精度的多個元素,所述第一輸出矩陣的元素以所述第一精度存儲或轉換為所述第一精度;使用所述第一矩陣和所述第二矩陣計算殘差值矩陣,其中,所述殘差值矩陣包括表示所述第一矩陣的元素和所述第二矩陣的元素之間的相應差值的元素;使用第一縮放因子縮放所述殘差值矩陣的所述元素,以生成第一縮放矩陣,其中,所述第一縮放因子是基于所述殘差值矩陣的所述元素的絕對值確定的;通過使用第四矩陣計算所述第一縮放矩陣的逐元素乘積生成第一中間矩陣,其中,所述第四矩陣是通過使用一個經過第二縮放因子縮放的具有所述第一精度的所述第三矩陣的版本確定的,所述第二縮放因子是基于具有所述第一精度的所述第三矩陣的元素的絕對值確定的;根據所述第一中間矩陣和所述第一縮放因子的逐元素商生成第五矩陣;計算所述第五矩陣與所述第二縮放因子的倒數的乘積,以生成具有所述第一精度的第二輸出矩陣;使用所述第一輸出矩陣和所述第二輸出矩陣生成具有所述第一精度的最終輸出矩陣。
5、因此,可以將高精度(例如float32)矩陣乘法分解為不同數據類型(例如float16、int8等)的多個矩陣乘法。多個更低精度的數據類型允許使用更節能或更快的計算單元。例如,一些硬件執行float16運算可以比執行float32運算快64倍,執行int8運算可以比執行float32運算快128倍。這對存儲器帶寬和高效處理所需的緩沖區大小有著直接的有利影響,其與為每個矩陣乘法運算選擇的數據類型成正比。
6、在第一方面的一種實現方式中,所述方法還可以包括:通過計算第五矩陣和第六矩陣的逐元素乘積生成第二中間矩陣,其中,所述第五矩陣是通過使用一個經過第三縮放因子縮放的所述第一矩陣的版本確定的,所述第三縮放因子是基于所述第一矩陣的所述元素的絕對值中的最大值確定的,所述第六矩陣包括:基于具有所述第一精度的所述第三矩陣和所述第三矩陣之間的逐元素差確定的元素,其中,基于具有所述第一精度的所述第三矩陣和所述第三矩陣之間的所述逐元素差確定的所述元素使用第四縮放因子進行縮放,所述第四縮放因子是基于具有所述第一精度的所述第三矩陣的所述元素與所述第三矩陣的元素之間的差的絕對值確定的。
7、在一個示例中,所述方法還可以包括:確定所述第二中間矩陣和所述第三縮放因子的逐元素商,以生成第三中間矩陣;計算所述第三中間矩陣與所述第四縮放因子的倒數的乘積,以生成具有所述第一精度的第三輸出矩陣;使用所述第一輸出矩陣、所述第二輸出矩陣和所述第三輸出矩陣生成具有所述第一精度的最終輸出矩陣。所述第一精度可以包括以下至少一項:單精度浮點格式精度、雙精度浮點格式精度或四精度浮點格式精度;和/或所述第二精度可以包括以下至少一項:單精度浮點格式精度或半精度浮點格式精度;和/或所述第三精度可以包括以下至少一項:半精度浮點格式精度或整數格式精度。
8、所述方法還可以包括:使用預定的固定縮放因子或使用基于所述第一矩陣和/或所述第二矩陣的元素的值分布確定的縮放因子預縮放所述第一矩陣和/或所述第二矩陣。所述方法還可以包括:從所述殘差值矩陣的所述元素的模中確定第一最大值;使用所述第一最大值生成所述第一縮放因子。所述方法還可以包括:從具有所述第一精度的所述第二矩陣的所述元素的模中確定第二最大值;使用所述第二最大值生成所述第二縮放因子。
9、本專利技術的第二方面提供了一種使用操作數的混合精度分解執行矩陣乘法的裝置,所述裝置包括處理器和耦合到所述處理器的存儲器,其中,所述存儲器包括指令,當所述指令由所述處理器執行時,使所述裝置執行以下步驟:將包括具有第一精度的多個元素的第一矩陣轉換為第二矩陣,其中,所述第二矩陣包括具有第二精度的多個元素,所述第二精度低于所述第一精度;生成包括所述第二矩陣和第三矩陣的乘積的第一輸出矩陣,其中,所述第三矩陣包括具有所述第二精度的多個元素,所述第一輸出矩陣的元素以所述第一精度存儲或轉換為所述第一精度;使用所述第一矩陣和所述第二矩陣計算殘差值矩陣,其中,所述殘差值矩陣包括表示所述第一矩陣的元素和所述第二矩陣的元素之間的相應差值的元素;使用第一縮放因子縮放所述殘差值矩陣的所述元素,以生成第一縮放矩陣,其中,所述第一縮放因子是基于所述殘差值矩陣的所述元素的絕對值確定的;通過使用第四矩陣計算所述第一縮放矩陣的逐元素乘積生成第一中間矩陣,其中,所述第四矩陣是通過使用一個經過第二縮放因子縮放的具有所述第一精度的所述第三矩陣的版本確定的,所述第二縮放因子是基于具有所述第一精度的所述第三矩陣的元素的絕本文檔來自技高網...
【技術保護點】
1.一種使用操作數的混合精度分解執行矩陣乘法的方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據前述權利要求中任一項所述的方法,其特征在于,所述第一精度包括以下至少一項:單精度浮點格式精度、雙精度浮點格式精度或四精度浮點格式精度;和/或所述第二精度包括以下至少一項:單精度浮點格式精度或半精度浮點格式精度;和/或所述第三精度包括以下至少一項:半精度浮點格式精度或整數格式精度。
5.根據前述權利要求中任一項所述的方法,其特征在于,所述方法還包括:
6.根據前述權利要求中任一項所述的方法,其特征在于,所述方法還包括:
7.根據前述權利要求中任一項所述的方法,其特征在于,所述方法還包括:
8.一種使用操作數的混合精度分解執行矩陣乘法的裝置,其特征在于,所述裝置包括處理器和耦合到所述處理器的存儲器,其中,所述存儲器包括指令,當所述指令由所述處理器執行時,使所述裝置執行以下步驟:
9.根
10.根據權利要求9所述的裝置,其特征在于,所述存儲器還包括指令,當所述指令由所述處理器執行時,使所述裝置執行以下步驟:
11.根據權利要求8至10中任一項所述的裝置,其特征在于,所述存儲器還包括指令,當所述指令由所述處理器執行時,使所述裝置執行以下步驟:
12.一種機器可讀存儲介質,其特征在于,所述機器可讀存儲介質包括指令,所述指令用于使用操作數的混合精度分解執行矩陣乘法,所述指令可由裝置的處理器執行,從而使所述裝置執行以下步驟:
13.根據權利要求12所述的機器可讀存儲介質,其特征在于,所述機器可讀存儲介質還包括指令,所述指令可由所述裝置的所述處理器執行,從而使所述裝置執行以下步驟:
14.根據權利要求12或13所述的機器可讀存儲介質,其特征在于,所述機器可讀存儲介質還包括指令,所述指令可由所述裝置的所述處理器執行,從而使所述裝置執行以下步驟:
15.根據權利要求12至14中任一項所述的機器可讀存儲介質,其特征在于,所述機器可讀存儲介質還包括指令,所述指令可由所述裝置的所述處理器執行,從而使所述裝置執行以下步驟:
...【技術特征摘要】
1.一種使用操作數的混合精度分解執行矩陣乘法的方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據前述權利要求中任一項所述的方法,其特征在于,所述第一精度包括以下至少一項:單精度浮點格式精度、雙精度浮點格式精度或四精度浮點格式精度;和/或所述第二精度包括以下至少一項:單精度浮點格式精度或半精度浮點格式精度;和/或所述第三精度包括以下至少一項:半精度浮點格式精度或整數格式精度。
5.根據前述權利要求中任一項所述的方法,其特征在于,所述方法還包括:
6.根據前述權利要求中任一項所述的方法,其特征在于,所述方法還包括:
7.根據前述權利要求中任一項所述的方法,其特征在于,所述方法還包括:
8.一種使用操作數的混合精度分解執行矩陣乘法的裝置,其特征在于,所述裝置包括處理器和耦合到所述處理器的存儲器,其中,所述存儲器包括指令,當所述指令由所述處理器執行時,使所述裝置執行以下步驟:
9.根據權利要求8所述的裝置,其特征在于,所述存儲器還包括指令,當所...
【專利技術屬性】
技術研發人員:盧卡斯·卡維蓋利,洛倫茨·穆勒,倫佐·安德里,
申請(專利權)人:華為技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。