背景技術(shù):
1、本公開(kāi)一般涉及數(shù)字電路和系統(tǒng),并且特別涉及用于針對(duì)稀疏計(jì)算的壓縮復(fù)用的方法和裝置。
2、許多現(xiàn)代數(shù)字系統(tǒng)和應(yīng)用需要處理大體量的數(shù)字值。例如,人工智能應(yīng)用可能需要存儲(chǔ)(例如,在存儲(chǔ)器中)和處理(例如,執(zhí)行數(shù)學(xué)運(yùn)算)表示激活或權(quán)重的大量數(shù)字值數(shù)組。然而,在多種情況下,如此大體量的數(shù)據(jù)可能包含大量零值。零值的計(jì)算常常是處理的例外,并且系統(tǒng)可能會(huì)跳過(guò)或以其他方式忽略它。
3、輸入數(shù)據(jù)集合通常具有隨機(jī)分布在數(shù)據(jù)集合上的零值和非零值,其中零值通常表示總數(shù)據(jù)集合的一定百分比(稱(chēng)為稀疏性)。例如,對(duì)于ai加速器和工作負(fù)載,稀疏性是一個(gè)越來(lái)越重要的特征,需要在硬件中支持該特征以實(shí)現(xiàn)性能加速。具體而言,存儲(chǔ)和取回來(lái)自存儲(chǔ)器的數(shù)據(jù)集合對(duì)系統(tǒng)而言是一項(xiàng)繁重的開(kāi)銷(xiāo)。
4、本文所描述的實(shí)施例有利地將壓縮數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,以減少與將數(shù)據(jù)從存儲(chǔ)器讀入到處理器中相關(guān)聯(lián)的存儲(chǔ)器帶寬。
技術(shù)實(shí)現(xiàn)思路
1.一種數(shù)字電路,包括:
2.根據(jù)權(quán)利要求1所述的電路,其中所述處理器還使用所述兩個(gè)第二位掩碼來(lái)將所述兩個(gè)n長(zhǎng)度數(shù)字值集合解壓縮成兩個(gè)m長(zhǎng)度數(shù)字值集合,其中m是大于n的第二整數(shù)。
3.根據(jù)權(quán)利要求1所述的電路,其中被存儲(chǔ)在所述存儲(chǔ)器中的包括所述多個(gè)數(shù)字值的所述數(shù)據(jù)使用多級(jí)壓縮算法而被壓縮。
4.根據(jù)權(quán)利要求1所述的電路,其中m除以n是2的冪。
5.根據(jù)權(quán)利要求1所述的電路,其中所述第一位掩碼的長(zhǎng)度至少為2*n,并且所述兩個(gè)n長(zhǎng)度數(shù)字值集合各自包括n/2個(gè)非零數(shù)字值。
6.根據(jù)權(quán)利要求5所述的電路,其中所述兩個(gè)m長(zhǎng)度位掩碼與所述n個(gè)非零數(shù)字值和長(zhǎng)度為2*n的所述位掩碼被存儲(chǔ)在所述存儲(chǔ)器中。
7.根據(jù)權(quán)利要求5所述的電路,其中所述第一位掩碼包括2*n位。
8.根據(jù)權(quán)利要求1所述的電路,其中所述兩個(gè)第二位掩碼各自包括m位。
9.根據(jù)權(quán)利要求1所述的電路,其中所述n個(gè)非零數(shù)字值作為值對(duì)被存儲(chǔ)在所述存儲(chǔ)器中。
10.根據(jù)權(quán)利要求9所述的電路,其中所述兩個(gè)第二位掩碼各自包括m/2位。
11.一種解壓縮數(shù)據(jù)的方法,包括:
12.根據(jù)權(quán)利要求11所述的方法,其中所述處理器還使用所述兩個(gè)第二位掩碼來(lái)將所述兩個(gè)n長(zhǎng)度數(shù)字值集合解壓縮成兩個(gè)m長(zhǎng)度數(shù)字值集合,其中m是大于n的第二整數(shù)。
13.根據(jù)權(quán)利要求11所述的方法,其中所述n個(gè)非零數(shù)字值作為值對(duì)被存儲(chǔ)在所述存儲(chǔ)器中。
14.根據(jù)權(quán)利要求11所述的方法,其中被存儲(chǔ)在所述存儲(chǔ)器中的包括所述多個(gè)數(shù)字值的所述數(shù)據(jù)使用多級(jí)壓縮算法而被壓縮。
15.根據(jù)權(quán)利要求11所述的方法,其中所述兩個(gè)m長(zhǎng)度位掩碼與所述n個(gè)非零數(shù)字值和所述位掩碼被存儲(chǔ)在所述存儲(chǔ)器中。