本申請實施例涉及數據處理,尤其涉及一種運算裝置、運算方法及板卡。
背景技術:
1、隨著計算機視覺算法、機器學習算法以及新興的人工智能大模型等技術的發展,在許多任務場景中需要對大規模的矩陣進行運算。尤其是對矩陣乘運算時的運算效率有越來越高的需求。
2、現有的運算裝置在對矩陣進行乘運算時,會存在運算速度慢以及運算效率較低的問題,導致現有的運算裝置較難滿足一些任務場景的運算需求。
技術實現思路
1、本申請實施例提供一種運算裝置、運算方法及板卡,用以對矩陣間的乘法進行快速運算,提升運算速度和運算效率。
2、第一方面,本申請實施例提供一種運算裝置,所述運算裝置應用于第一矩陣乘以第二矩陣的乘運算,所述運算裝置包括調度單元、緩存單元和至少一個運算單元;
3、所述調度單元,用于根據所述第一矩陣中的非零元素,確定所述第二矩陣中任一行參與乘運算的相乘次數,并將所述第二矩陣中各行的相乘次數指示給所述緩存單元;
4、所述緩存單元,用于根據所述各行的相乘次數,讀取并緩存所述第二矩陣中各行的非零元素;
5、所述調度單元,還用于將所述第一矩陣中任一行的各非零元素輸入一個所述運算單元;
6、所述運算單元,用于根據所述第一矩陣中任一行的各非零元素,在所述緩存單元中讀取參與乘運算的所述第二矩陣對應各行的非零元素,并進行矩陣的乘法合并運算,得到結果矩陣中對應的元素。
7、第二方面,本申請實施例提供一種運算方法,所述運算方法應用于如第一方面所述的運算裝置,所述運算裝置包括調度單元、緩存單元和至少一個運算單元,所述方法用于第一矩陣乘以第二矩陣的乘運算,包括:
8、根據所述第一矩陣中的非零元素,確定所述第二矩陣中任一行參與乘運算的相乘次數,并將所述第二矩陣中各行的相乘次數指示給所述緩存單元;
9、根據所述各行的相乘次數,讀取并緩存所述第二矩陣中各行的非零元素;
10、將所述第一矩陣中任一行的各非零元素輸入一個所述運算單元;
11、根據所述第一矩陣中任一行的各非零元素,在所述緩存單元中讀取參與乘運算的所述第二矩陣對應各行的非零元素,并進行矩陣的乘法合并運算,得到結果矩陣中對應的元素。
12、第三方面,本申請實施例提供一種板卡,所述板卡包括如第一方面所述的運算裝置。
13、本申請實施例提供的運算裝置、運算方法及板卡,該運算裝置可以用于第一矩陣乘以第二矩陣的乘運算,該運算裝置包括調度單元、緩存單元和至少一個運算單元。在運算時,通過調度單元可以根據第一矩陣中的非零元素提前確定第二矩陣中各行參與乘運算的相乘次數,并可以將各行的相乘次數指示給緩存單元,使得緩存單元能較準確地提前獲知乘數矩陣中各行的元素參與乘運算的次數。這樣,緩存單元在讀取并緩存第二矩陣各行的非零元素時,能夠根據各行的相乘次數較準確地決策已緩存在緩存單元中的元素,哪些應該繼續保留哪些應該盡快刪除,這樣能使得后續還需要參與運算的行的元素盡量長時間地保留在緩存單元中,避免因對其提前刪除而增加重復讀取元素的次數,也能使得后續不再參與運算的行的元素被盡快釋放,避免其過長時間占用緩存空間。因此,根據相乘次數對緩存單元中的元素進行較高復用率的決策,能減少重復數據讀取的次數以及因數據讀取而消耗的時間。基于此,通過調度單元和緩存單元的密切配合,可以為運算單元的運算過程盡早準備較高命中率的片上數據,則可以使得運算單元能快速計算,從而實現運算裝置整體的運算速度和運算效率得到提升。
1.一種運算裝置,其特征在于,所述運算裝置應用于第一矩陣乘以第二矩陣的乘運算,所述運算裝置包括調度單元、緩存單元和至少一個運算單元;
2.根據權利要求1所述的裝置,其特征在于,所述調度單元具體用于:
3.根據權利要求2所述的裝置,其特征在于,所述調度單元具體用于:
4.根據權利要求3所述的裝置,其特征在于,所述調度單元還用于:
5.根據權利要求1所述的裝置,其特征在于,所述緩存單元還用于:
6.根據權利要求1所述的裝置,其特征在于,任一所述運算單元包括至少兩個合并器,任一所述合并器用于對所述結果矩陣中任一元素的部分和進行合并,所述部分和為矩陣在乘運算過程中對任一元素逐步累加乘積時的中間結果。
7.根據權利要求6所述的裝置,其特征在于,所述運算單元包括兩個合并器,所述兩個合并器中的一個合并器為一級合并器,另一個合并器為二級合并器;
8.根據權利要求7所述的裝置,其特征在于,所述運算裝置包括多個運算單元,在所述第二矩陣包括k個行,k為正整數,且m與n的乘積小于k的情況下,所述調度單元還用于:
9.根據權利要求8所述的裝置,其特征在于,所述緩存單元中包括p組緩存區,任一組所述緩存區中包括q個緩存片,任一所述緩存片用于緩存所述第二矩陣中的非零元素,任一所述緩存片對應一個所述運算單元,其中,p和q均為正整數;所述調度單元具體用于:
10.根據權利要求9所述的裝置,其特征在于,在所述p組緩存區之間,任意的相鄰兩組緩存區間設置有數據通路,所述數據通路用于傳輸緩存片中緩存的非零元素。
11.根據權利要求1-10任一項所述的裝置,其特征在于,所述運算裝置包括第一存儲單元和第二存儲單元,所述第一存儲單元用于存儲所述第二矩陣,所述第二存儲單元用于存儲所述結果矩陣;
12.根據權利要求11所述的裝置,其特征在于,所述壓縮第二矩陣為通過如下方式進行稀疏矩陣壓縮后得到的:
13.一種運算方法,其特征在于,所述運算方法應用于如權利要求1-12任一項所述的運算裝置,所述運算裝置包括調度單元、緩存單元和至少一個運算單元,所述方法用于第一矩陣乘以第二矩陣的乘運算,包括:
14.一種板卡,其特征在于,所述板卡包括如權利要求1-12任一項所述的運算裝置。