两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

并行計算硬件中矩陣運算的數據處理方法及相關設備與流程

文檔序號:40612503發(fā)布日期:2025-01-07 20:57閱讀:12來源:國知局
并行計算硬件中矩陣運算的數據處理方法及相關設備與流程

本技術涉及網絡安全,尤其涉及并行計算硬件中矩陣運算的數據處理方法及相關設備。


背景技術:

1、伴隨著神經網絡、科學計算和人工智能領域的不斷發(fā)展,這些學科近年來已經逐漸應用到生活和工作中,隨著這些領域使用的輸入特征圖越來越大,使用的模型的層數和耦合關系越來越復雜,計算的性能已經成為了這些領域重點關注的指標之一,其中矩陣乘法運算在這些學科中被大量的使用,因此,矩陣乘法運算的性能提升就顯得至關重要。

2、在相關技術中,針對于單精度矩陣的乘法運算中,通常采用可以支持單精度計算的計算芯片來繼續(xù)計算,但支持單精度計算的計算芯片其成本較高。除此之外,通常在使用僅支持半精度計算的計算芯片中,將待乘的單精度矩陣轉換為半精度矩陣,然后再將半精度進行乘法運算,但是通過這種方案得到的結果的精準度較低。


技術實現思路

1、本技術實施例的提供了一種并行計算硬件中矩陣運算的數據處理方法及相關設備,能夠在使用支持半精度計算的計算芯片中提高單精度矩陣乘法運算的精準度。

2、為實現上述目的,本技術實施例的第一方面提出了一種并行計算硬件中矩陣運算的數據處理方法,所述方法包括:

3、獲取第一單精度矩陣的第一半精度矩陣和第二單精度矩陣的第二半精度矩陣;

4、獲取所述第二單精度矩陣與所述第二半精度矩陣之間的第二誤差矩陣,獲取所述第二誤差矩陣中的多個第二分塊誤差矩陣,并存儲至所述并行計算硬件的l1緩沖區(qū)中,所述第二誤差矩陣為半精度矩陣;

5、逐一獲取所述第一半精度矩陣中第一分塊矩陣,存儲至所述l1緩沖區(qū)中,將所述l1緩沖區(qū)中的所述第一分塊矩陣和所述第二分塊誤差矩陣傳輸至所述并行計算硬件的矩陣計算模塊進行矩陣相乘,得到第一分塊結果矩陣,并基于所述第一分塊結果矩陣得到所述第一半精度矩陣和所述第二誤差矩陣的第一結果矩陣;

6、獲取所述第一單精度矩陣與所述第一半精度矩陣之間的第一誤差矩陣,第一誤差矩陣為半精度矩陣;

7、獲取所述第一誤差矩陣和所述第二半精度矩陣進行矩陣相乘得到的第二結果矩陣,獲取所述第一半精度矩陣和所述第二半精度矩陣進行矩陣相乘得到的第三結果矩陣,累加所述第一結果矩陣、所述第二結果矩陣以及所述第三結果矩陣得到單精度目標矩陣,并將所述單精度目標矩陣作為所述第一單精度矩陣和所述第二單精度矩陣進行矩陣乘法運算的結果。

8、在一些實施例,所述獲取所述第二誤差矩陣中的多個第二分塊誤差矩陣,并存儲至所述并行計算硬件的l1緩沖區(qū)中,包括:

9、基于所述第一分塊矩陣的第一分塊大小和所述第二分塊誤差矩陣的第二分塊大小,確定第一存儲數量;

10、將對應于所述第一存儲數量的所述第二分塊誤差矩陣存儲至所述l1緩沖區(qū)。

11、在一些實施例,所述基于所述第一分塊矩陣的第一分塊大小和所述第二分塊誤差矩陣的第二分塊大小,確定第一存儲數量,包括:

12、基于所述l1緩沖區(qū)的緩存容量與兩倍數量的所述第一分塊大小的差值,得到誤差矩陣存儲容量;

13、基于所述誤差矩陣存儲容量和所述第二分塊大小的比值,得到所述第一存儲數量。

14、在一些實施例,所述l1緩沖區(qū)設置有用于存儲所述第一分塊矩陣的第一存儲位置和第二存儲位置,所述逐一獲取所述第一半精度矩陣中第一分塊矩陣,存儲至所述l1緩沖區(qū)中,將所述l1緩沖區(qū)中的所述第一分塊矩陣和所述第二分塊誤差矩陣傳輸至所述并行計算硬件的矩陣計算模塊進行矩陣相乘,得到第一分塊結果矩陣,包括:

15、根據所述第一半精度矩陣中多個所述第一分塊矩陣的排列順序,獲取第二個所述第一分塊矩陣并存儲至所述第一存儲位置;

16、將所述第二存儲位置的第一個所述第一分塊矩陣和所述l1緩沖區(qū)中的與第一個所述第一分塊矩陣對應的所述第二分塊誤差矩陣傳輸至所述并行計算硬件的矩陣計算模塊進行矩陣相乘,得到第一分塊結果矩陣。

17、在一些實施例,所述將所述l1緩沖區(qū)中的所述第一分塊矩陣和所述第二分塊誤差矩陣傳輸至所述并行計算硬件的矩陣計算模塊進行矩陣相乘,得到第一分塊結果矩陣,包括:

18、在所述l1緩沖區(qū)中,對多個所述第二分塊誤差矩陣一并乘以放大因子,得到放大第二分塊誤差矩陣;

19、將所述l1緩沖區(qū)中的所述第一分塊矩陣對應的所述放大第二分塊誤差矩陣傳輸至所述并行計算硬件的矩陣計算模塊進行矩陣相乘,得到所述第一分塊結果矩陣。

20、在一些實施例,所述獲取第一單精度矩陣的第一半精度矩陣和第二單精度矩陣的第二半精度矩陣之前,所述方法還包括:

21、將分塊誤差模塊進行流水線加鎖,所述分塊誤差模塊包括所述第二分塊誤差矩陣的生成和存儲至所述l1緩沖區(qū)過程;

22、所述獲取所述第二誤差矩陣中的多個第二分塊誤差矩陣,并存儲至所述并行計算硬件的l1緩沖區(qū)中之后,所述方法還包括:

23、將所述分塊誤差模塊進行流水線解鎖。

24、在一些實施例,所述逐一獲取所述第一半精度矩陣中第一分塊矩陣,存儲至所述l1緩沖區(qū)中之前,所述方法還包括:

25、將分塊計算模塊進行流水線加鎖,所述分塊計算模塊包括所述第一分塊矩陣存儲至所述l1緩沖區(qū),以及所述第一分塊矩陣和所述第二分塊誤差矩陣的矩陣計算過程;

26、所述基于所述第一分塊結果矩陣得到所述第一半精度矩陣和所述第二誤差矩陣的第一結果矩陣之后,所述方法還包括:

27、將所述分塊計算模塊進行流水線解鎖。

28、在一些實施例,所述基于所述第一分塊結果矩陣得到所述第一半精度矩陣和所述第二誤差矩陣的第一結果矩陣,包括:

29、累加每個所述第一分塊矩陣對應的所述第一分塊結果矩陣,得到所述第一半精度矩陣和所述第二誤差矩陣的第一結果矩陣。

30、在一些實施例,所述獲取所述第一誤差矩陣和所述第二半精度矩陣進行矩陣相乘得到的第二結果矩陣,包括:

31、根據所述第一分塊大小得到第三分塊大小,以及根據所述第二分塊大小得到第四分塊大小;

32、根據所述第三分塊大小對所述第二半精度矩陣進行拆分,得到多個第二分塊矩陣;

33、根據所述第四分塊大小對所述第一誤差矩陣進行拆分,得到多個第一分塊誤差矩陣;

34、逐一獲取每個所述第二分塊矩陣和所述第一分塊誤差矩陣通過所述l1緩沖區(qū)和所述矩陣計算模塊進行矩陣相乘得到的第二分塊結果矩陣,并基于所有所述第二分塊結果矩陣得到所述第二結果矩陣。

35、為實現上述目的,本技術實施例的第二方面提出了一種并行計算硬件中矩陣運算的數據處理裝置,裝置包括:

36、矩陣獲取模塊,用于獲取第一單精度矩陣的第一半精度矩陣和第二單精度矩陣的第二半精度矩陣;

37、第一誤差矩陣模塊,用于獲取所述第二單精度矩陣與所述第二半精度矩陣之間的第二誤差矩陣,獲取所述第二誤差矩陣中的多個第二分塊誤差矩陣,并存儲至所述并行計算硬件的l1緩沖區(qū)中,所述第二誤差矩陣為半精度矩陣;

38、矩陣計算模塊,用于逐一獲取所述第一半精度矩陣中第一分塊矩陣,存儲至所述l1緩沖區(qū)中,將所述l1緩沖區(qū)中的所述第一分塊矩陣和所述第二分塊誤差矩陣傳輸至所述并行計算硬件的矩陣計算模塊進行矩陣相乘,得到第一分塊結果矩陣,并基于所述第一分塊結果矩陣得到所述第一半精度矩陣和所述第二誤差矩陣的第一結果矩陣;

39、第二誤差矩陣模塊,獲取所述第一單精度矩陣與所述第一半精度矩陣之間的第一誤差矩陣,第一誤差矩陣為半精度矩陣;

40、結果計算模塊,用于獲取所述第一誤差矩陣和所述第二半精度矩陣進行矩陣相乘得到的第二結果矩陣,獲取所述第一半精度矩陣和所述第二半精度矩陣進行矩陣相乘得到的第三結果矩陣,累加所述第一結果矩陣、所述第二結果矩陣以及所述第三結果矩陣得到單精度目標矩陣,并將所述單精度目標矩陣作為所述第一單精度矩陣和所述第二單精度矩陣進行矩陣乘法運算的結果。

41、為實現上述目的,本技術實施例的第三方面提出了一種電子設備,所述電子設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現如第一方面所述的并行計算硬件中矩陣運算的數據處理方法。

42、為實現上述目的,本技術實施例的第四方面提出了一種存儲介質,所述存儲介質為計算機可讀存儲介質,所述存儲介質存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現上述第一方面所述的并行計算硬件中矩陣運算的數據處理方法。

43、本技術實施例提出的并行計算硬件中矩陣運算的數據處理方法及相關設備,方法包括:首先,獲取第一單精度矩陣的第一半精度矩陣和第二單精度矩陣的第二半精度矩陣;然后,獲取第二單精度矩陣與第二半精度矩陣之間的第二誤差矩陣,獲取第二誤差矩陣中的多個第二分塊誤差矩陣,并存儲至并行計算硬件的l1緩沖區(qū)中,第二誤差矩陣為半精度矩陣;之后,逐一獲取第一半精度矩陣中第一分塊矩陣,存儲至l1緩沖區(qū)中,將l1緩沖區(qū)中的第一分塊矩陣和第二分塊誤差矩陣傳輸至并行計算硬件的矩陣計算模塊進行矩陣相乘,得到第一分塊結果矩陣,并基于第一分塊結果矩陣得到第一半精度矩陣和第二誤差矩陣的第一結果矩陣;以及,獲取第一單精度矩陣與第一半精度矩陣之間的第一誤差矩陣,第一誤差矩陣為半精度矩陣;最后,獲取第一誤差矩陣和第二半精度矩陣進行矩陣相乘得到的第二結果矩陣,獲取第一半精度矩陣和第二半精度矩陣進行矩陣相乘得到的第三結果矩陣,累加第一結果矩陣、第二結果矩陣以及第三結果矩陣得到單精度目標矩陣,并將單精度目標矩陣作為第一單精度矩陣和第二單精度矩陣進行矩陣乘法運算的結果。本技術實施例利用并行計算硬件中預先得到單精度矩陣在轉換到半精度矩陣后產生的誤差矩陣,然后利用誤差矩陣和半精度矩陣的乘積結果以補償進行單精度矩陣的乘法運算過程中的精度,從而有效地提高了在使用支持半精度計算的并行計算硬件中進行單精度矩陣乘法的精準度;此外,將并行計算硬件中的l1緩沖區(qū)作為中間緩存區(qū),結合l1緩沖區(qū)的高容量和較低的實時傳輸速率,以預先將大量的分塊矩陣傳輸至l1緩沖區(qū)中,使得在實際的計算過程中,有效地減少矩陣數據在l1緩沖區(qū)中的實時數據交換傳輸,進而有效地提高了在并行計算硬件中進行矩陣運算的計算速率。

44、本技術的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本技術而了解。本技術的目的和其他優(yōu)點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嘉黎县| 鄢陵县| 孝义市| 三河市| 南江县| 庄河市| 大埔区| 响水县| 合山市| 长垣县| 延吉市| 安龙县| 长垣县| 台东市| 汕头市| 横山县| 赣榆县| 渑池县| 济南市| 定结县| 富阳市| 池州市| 温宿县| 双峰县| 罗甸县| 于都县| 德州市| 札达县| 滦南县| 淅川县| 鹤岗市| 黄石市| 兴业县| 威宁| 黑水县| 方正县| 宁阳县| 昆山市| 二连浩特市| 邻水| 廊坊市|