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