System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及電數字數據處理領域,尤其涉及一種矩陣乘法快速計算方法、裝置、設備及存儲介質。
技術介紹
1、矩陣乘法是數據處理的核心技術,廣泛應用于通信、圖像處理、以及科學計算領域。隨著大數據、人工智能等技術的發展,矩陣運算的性能和功耗已經變得十分重要。大型矩陣乘法的資源消耗大、延遲大,人們為了計算矩陣乘法,提了多種優化方案。對于不同特征的矩陣,所提出的優化方案也各不相同。有限域矩陣具有特殊的元素,這種矩陣中的每個元素都是有限域中的元素,元素的運算也遵循有限域的運算法則。在通信、編碼、加密系統中,有限域的矩陣運算更為常見。
2、現有技術中,無論矩陣是采用行優先存儲格式或者是列優先存儲格式存儲在內存當中時,當高速緩沖存儲器(cache)從主存中取a矩陣的一行或者是取b矩陣的一列時,由于地址不連續,有一方都會發生大量的高速緩沖存儲器丟失。一種方法是將矩陣分塊運算,但依舊存在復雜度較高的問題。現有技術中,尚未發現有限域的矩陣乘法的優化算法。
技術實現思路
1、本公開提供了一種矩陣乘法快速計算方法、裝置、設備及存儲介質,以至少解決現有技術中存在的以上技術問題。
2、根據本公開的第一方面,提供了一種矩陣乘法快速計算方法,所述方法包括:
3、基于不同的存儲位置,分別確定第一矩陣和第三矩陣;
4、獲取處理器的實際位寬,基于所述實際位寬對所述第一矩陣和所述第三矩陣進行壓縮,得到第四矩陣和第五矩陣;
5、利用矩陣乘法對所述第四矩陣和所述第五矩陣進
6、在一可實施方式中,所述基于不同的存儲位置,分別確定第一矩陣和第三矩陣,包括:
7、基于不同的存儲位置,分別確定所述第一矩陣和第二矩陣;
8、分別讀取所述第一矩陣和所述第二矩陣的存儲格式;
9、基于所述存儲格式確定所述第一矩陣和所述第二矩陣的維度信息,基于所述維度信息判斷所述第一矩陣和所述第二矩陣是否符合矩陣乘法運算規則;
10、若不符合所述矩陣乘法運算規則,生成錯誤信息;
11、若符合所述矩陣乘法運算規則,則基于矩陣乘法規則,將所述第二矩陣的存儲格式進行轉置,得到第三矩陣。
12、在一可實施方式中,所述獲取處理器的實際位寬,包括:
13、基于第一關鍵字測量單個數據的實際字節數,基于所述單個數據的實際字節數計算處理器的實際位寬。
14、在一可實施方式中,所述方法還包括:
15、基于所述第一矩陣和所述第二矩陣的所占內存大小,確定第一數據量;
16、基于所述實際位寬和所述第一數據量計算所述第四矩陣和所述第五矩陣所需內存,基于所述所需內存確定第二數據量,基于所述第二數據量為所述第四矩陣和所述第五矩陣分配內存空間。
17、在一可實施方式中,所述基于所述實際位寬對所述第一矩陣和所述第三矩陣進行壓縮,包括:
18、將所述第一矩陣的列索引分為第一比特索引和第一其他列索引;
19、基于所述第一矩陣的列索引讀取其中的第一比特索引,基于所述第一比特索引和所述實際位寬計算壓縮后的第四矩陣的比特索引;
20、基于所述第一矩陣的列索引讀取其中的第一其他列索引,基于所述第一其他列索引和所述實際位寬計算壓縮后的第四矩陣的其他列索引;
21、基于所述第四矩陣的比特索引和所述第四矩陣的其他列索引構建所述第四矩陣;
22、將所述第三矩陣的索引分為第三比特索引和第三其他索引;
23、基于所述第三矩陣的列索引讀取其中的第三比特索引,基于所述第三比特索引和所述實際位寬計算壓縮后的第五矩陣的比特索引;
24、基于所述第三矩陣的列索引讀取其中的第三其他列索引,基于所述第三其他列索引和所述實際位寬計算壓縮后的第五矩陣的其他列索引;
25、基于所述第五矩陣的比特索引和所述第五矩陣的其他列索引構建所述第五矩陣。
26、在一可實施方式中,所述第四矩陣和所述第五矩陣基于矩陣乘法進行有限域乘加運算,得到第七矩陣,包括:
27、利用矩陣乘法對所述第四矩陣和所述第五矩陣進行有限域乘加運算,得到第六矩陣;
28、基于有限域加法,將所述第六矩陣中的每一位數據相加,得到第七矩陣。
29、在一可實施方式中,所述第四矩陣和所述第五矩陣基于矩陣乘法進行有限域乘加運算,得到第六矩陣,包括:
30、選取所述第四矩陣和所述第五矩陣中的對應行,將所述對應行中的選取對應元素做按位與運算;
31、將所述按位與運算之后的元素進行異或運算,得到所述第六矩陣。
32、根據本公開的第二方面,提供了一種矩陣乘法快速計算裝置,所述裝置包括:
33、數據輸入輸出模塊,用于基于不同的存儲位置,分別確定第一矩陣和第三矩陣;
34、矩陣壓縮模塊,用于獲取處理器的實際位寬,基于所述實際位寬對所述第一矩陣和所述第三矩陣進行壓縮,得到第四矩陣和第五矩陣;
35、矩陣運算模塊,用于利用矩陣乘法對所述第四矩陣和所述第五矩陣進行有限域乘加運算,得到第七矩陣。
36、在一可實施方式中,所述裝置還包括:
37、參數配置模塊,用于基于不同的存儲位置,分別確定第一矩陣和第二矩陣;分別讀取所述第一矩陣和所述第二矩陣的存儲格式;基于所述存儲格式確定所述第一矩陣和所述第二矩陣的維度信息,基于所述維度信息判斷所述第一矩陣和所述第二矩陣是否符合矩陣乘法運算規則;若不符合所述矩陣乘法運算規則,生成錯誤信息;
38、矩陣轉置模塊,用于基于矩陣乘法規則,將所述第二矩陣的存儲格式進行轉置,得到第三矩陣;
39、所述數據輸入輸出模塊還用于,基于所述第一矩陣和所述第二矩陣的所占內存大小,確定第一數據量;基于所述實際位寬和所述第一數據量計算所述第四矩陣和所述第五矩陣所需內存,基于所述所需內存確定第二數據量,基于所述第二數據量為所述第四矩陣和所述第五矩陣分配內存空間。在一可實施方式中,所述矩陣壓縮單元還包括:
40、處理器位寬計算模塊,用于基于第一關鍵字測量單個數據的實際字節數,基于所述單個數據的實際字節數計算處理器的實際位寬。
41、在一可實施方式中,所述矩陣壓縮模塊還用于,將所述第一矩陣的列索引分為第一比特索引和第一其他列索引;基于所述第一矩陣的列索引讀取其中的第一比特索引,基于所述第一比特索引和所述實際位寬計算壓縮后的第四矩陣的比特索引;基于所述第一矩陣的列索引讀取其中的第一其他列索引,基于所述第一其他列索引和所述實際位寬計算壓縮后的第四矩陣的其他列索引;基于所述第四矩陣的比特索引和所述第四矩陣的其他列索引構建所述第四矩陣;將所述第三矩陣的索引分為第三比特索引和第三其他索引;基于所述第三矩陣的列索引讀取其中的第三比特索引,基于所述第三比特索引和所述實際位寬計算壓縮后的第五矩陣的比特索引;基于所述第三矩陣的列索引讀取其本文檔來自技高網...
【技術保護點】
1.一種矩陣乘法快速計算方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述基于不同的存儲位置,分別確定第一矩陣和第三矩陣,包括:
3.根據權利要求1所述的方法,其特征在于,所述獲取處理器的實際位寬,包括:
4.根據權利要求2所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述基于所述實際位寬對所述第一矩陣和所述第三矩陣進行壓縮,包括:
6.根據權利要求1所述的方法,其特征在于,所述利用矩陣乘法對所述第四矩陣和所述第五矩陣進行有限域乘加運算,得到第七矩陣,包括:
7.根據權利要求6所述的方法,其特征在于,所述利用矩陣乘法對所述第四矩陣和所述第五矩陣進行有限域乘加運算,得到第六矩陣,包括:
8.一種矩陣乘法快速計算裝置,其特征在于,所述裝置包括:
9.根據權利要求8所述的裝置,其特征在于,所述裝置還包括:
10.根據權利要求8所述的裝置,其特征在于,所述矩陣壓縮模塊還包括:
11.根據權利要求8所述的
12.根據權利要求8所述的裝置,其特征在于,
13.根據權利要求12所述的裝置,其特征在于,
14.一種電子設備,其特征在于,包括:
15.一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其特征在于,所述計算機指令用于使計算機執行根據權利要求1-7任一項所述的方法。
...【技術特征摘要】
1.一種矩陣乘法快速計算方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述基于不同的存儲位置,分別確定第一矩陣和第三矩陣,包括:
3.根據權利要求1所述的方法,其特征在于,所述獲取處理器的實際位寬,包括:
4.根據權利要求2所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述基于所述實際位寬對所述第一矩陣和所述第三矩陣進行壓縮,包括:
6.根據權利要求1所述的方法,其特征在于,所述利用矩陣乘法對所述第四矩陣和所述第五矩陣進行有限域乘加運算,得到第七矩陣,包括:
7.根據權利要求6所述的方法,其特征在于,所述利用矩陣乘法對...
【專利技術屬性】
技術研發人員:李瑞東,石鵬,崔子浩,馬林,沙猛,
申請(專利權)人:山東云海國創云計算裝備產業創新中心有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。