背景技術:
1、本說明書總體上涉及使用硬件集成電路來執(zhí)行卷積神經(jīng)網(wǎng)絡的分組卷積。
2、神經(jīng)網(wǎng)絡是采用一層或多層節(jié)點來針對所接收的輸入生成例如分類的輸出的機器學習模型。除了輸出層之外,一些神經(jīng)網(wǎng)絡還包括一個或多個隱藏層。一些神經(jīng)網(wǎng)絡可以是被配置用于圖像處理的卷積神經(jīng)網(wǎng)絡(cnn)或被配置用于語音和語言處理的循環(huán)神經(jīng)網(wǎng)絡(rnn)。不同類型的神經(jīng)網(wǎng)絡架構可以用于執(zhí)行與分類或模式識別、涉及數(shù)據(jù)建模的預測和信息聚類相關的各種任務。
3、神經(jīng)網(wǎng)絡層可以具有對應的參數(shù)或權重集合。權重用于處理通過神經(jīng)網(wǎng)絡層的輸入(例如,一批輸入)以生成該層的對應輸出來計算神經(jīng)網(wǎng)絡推理。一批輸入和核集合可以表示為輸入和權重的張量,即多維陣列。硬件加速器是用于實現(xiàn)神經(jīng)網(wǎng)絡的專用集成電路。該電路包括存儲器,其位置與可以使用電路的控制邏輯來遍歷或訪問的張量的元素相對應。
技術實現(xiàn)思路
1、本文檔描述了硬件加速器的改進的集成電路架構,以及針對神經(jīng)網(wǎng)絡層使用映射向量和經(jīng)壓縮的稀疏參數(shù)集合來處理輸入向量的對應技術。映射向量和經(jīng)壓縮的稀疏參數(shù)集合中的每一個可以基于操作代碼(“操作碼(opcode)”)而生成,該操作碼指示多個參數(shù)張量的均勻稀疏性格式。參數(shù)張量與諸如cnn的人工神經(jīng)網(wǎng)絡的神經(jīng)網(wǎng)絡層相關聯(lián)。所公開的技術可用于加速支持神經(jīng)網(wǎng)絡計算的張量運算,所述神經(jīng)網(wǎng)絡計算涉及通過神經(jīng)網(wǎng)絡層中的一個或多個來處理輸入向量的輸入。
2、本說明書中描述的主題的一個方面可以體現(xiàn)在涉及在硬件加速器上實現(xiàn)的神經(jīng)網(wǎng)絡的計算機實現(xiàn)的方法中。該方法包括:從參數(shù)張量得出經(jīng)壓縮的稀疏參數(shù)集合;基于該經(jīng)壓縮的稀疏參數(shù)集合來生成映射向量;處理指令,該指令指示基于參數(shù)張量的稀疏性使用經(jīng)壓縮的稀疏參數(shù)來執(zhí)行稀疏計算;基于該指令來獲得:i)來自硬件加速器的第一存儲器的輸入向量和ii)來自硬件加速器的第二存儲器的經(jīng)壓縮的稀疏參數(shù);以及使用映射向量和該經(jīng)壓縮的稀疏參數(shù)集合來執(zhí)行稀疏計算以通過神經(jīng)網(wǎng)絡的層處理輸入向量。
3、這些和其他實現(xiàn)方式可以各自可選地包括以下特征中的一個或多個特征。例如,在一些實現(xiàn)方式中,通過神經(jīng)網(wǎng)絡的層處理輸入向量包括:在輸入向量的輸入與經(jīng)壓縮的稀疏參數(shù)集合中的對應的權重值之間執(zhí)行點積矩陣乘法運算。
4、在一些實現(xiàn)方式中,基于映射向量中的每個位的相應位值,在硬件加速器的一個或多個乘法芯元處執(zhí)行點積矩陣乘法運算。在一些實現(xiàn)方式中,該方法進一步包括:訪問耦合到硬件加速器的第一存儲器和第二存儲器的硬件選擇邏輯;以及使用硬件選擇邏輯,基于映射向量中的位的相應位值來選擇輸入向量的特定輸入和經(jīng)壓縮的稀疏參數(shù)集合中的對應權重值。
5、得出經(jīng)壓縮的稀疏參數(shù)集合可以包括生成僅包括沿著參數(shù)張量的特定維度的非零元素的經(jīng)修改的參數(shù)張量。生成經(jīng)修改的參數(shù)張量可以包括:對于參數(shù)張量的特定列維度:基于列維度的非零元素來生成列維度的經(jīng)壓縮的表示;并且連結列維度的經(jīng)壓縮的表示中的每個非零元素。
6、在一些實現(xiàn)方式中,生成經(jīng)修改的參數(shù)張量包括:在生成經(jīng)修改的參數(shù)張量之前保留參數(shù)張量中的每個非零元素的相應維度位置。參數(shù)張量可以包括多個維度;并且指令中的操作碼指示多個維度中的特定維度的稀疏性。硬件加速器可操作以處理多維參數(shù)張量;并且指令中的操作碼可以指示跨多維參數(shù)張量中的每一個的均勻稀疏性。
7、第一存儲器可以是硬件加速器的暫存式存儲器,并且被配置為存儲在神經(jīng)網(wǎng)絡層處處理的輸入和激活。第二存儲器可以包括單指令多數(shù)據(jù)(simd)寄存器,并且該方法包括:將映射向量存儲在simd寄存器的第一地址處;以及將經(jīng)壓縮的稀疏參數(shù)集合存儲在simd寄存器的第二不同地址處。
8、本說明書中描述的主題的另一個方面可以體現(xiàn)在使用硬件加速器執(zhí)行的計算機實現(xiàn)的方法中,該硬件加速器實現(xiàn)包括多個神經(jīng)網(wǎng)絡層的神經(jīng)網(wǎng)絡。該方法包括接收用于硬件加速器的計算小芯片的指令。
9、該指令可在計算小芯片處執(zhí)行以使得執(zhí)行操作,所述操作包括:識別指令中的指示參數(shù)張量的稀疏性的操作碼;基于從指定神經(jīng)網(wǎng)絡的層的權重的參數(shù)張量得出的權重值來加載經(jīng)壓縮的稀疏參數(shù)集合;以及加載基于經(jīng)壓縮的稀疏參數(shù)集合而生成的映射向量。
10、所述操作包括基于操作碼來獲得i)來自硬件加速器的第一存儲器的輸入向量和ii)來自硬件加速器的第二存儲器的經(jīng)壓縮的稀疏參數(shù)集合。所述操作進一步包括基于映射向量,使用經(jīng)壓縮的稀疏參數(shù)集合通過神經(jīng)網(wǎng)絡的層來處理輸入向量。
11、該方面和其他方面的其他實現(xiàn)方式包括對應的系統(tǒng)、設備和計算機程序,這些計算機程序被配置為執(zhí)行這些方法的動作、編碼在計算機存儲裝置上。一個或多個計算機的系統(tǒng)可由于在系統(tǒng)上安裝的在操作中使該系統(tǒng)執(zhí)行動作的軟件、固件、硬件或它們的組合而如此配置。一個或多個計算機程序可以借助于具有在由數(shù)據(jù)處理設備執(zhí)行時使該設備執(zhí)行動作的指令而如此配置。
12、本說明書中描述的主題可以在特定實施例中實現(xiàn),以便實現(xiàn)以下優(yōu)點中的一個或多個。描述了用于利用針對機器學習計算處理的數(shù)據(jù)中的稀疏性的技術。當使用例如在諸如平板電腦或智能電話的計算裝置上實現(xiàn)的cnn機器學習模型來處理輸入圖像時,利用僅具有非零權重值的經(jīng)壓縮的稀疏參數(shù)來實現(xiàn)某些硬件和計算效率。
13、當加速人工神經(jīng)網(wǎng)絡的執(zhí)行時,通過生成經(jīng)壓縮的稀疏參數(shù)和對應的映射向量,利用稀疏性來實現(xiàn)計算效率。該系統(tǒng)檢測要在神經(jīng)網(wǎng)絡層處處理的數(shù)據(jù)集當中即將到來的稀疏性模式,并生成僅包括非零值的經(jīng)壓縮的稀疏參數(shù)集合。映射向量將輸入向量的離散輸入映射到經(jīng)壓縮的稀疏參數(shù)的非零值,這允許通過利用加速人工神經(jīng)網(wǎng)絡的執(zhí)行的專用集成電路的特定硬件架構來簡化數(shù)據(jù)集的處理。
14、涉及零值操作數(shù)的乘法運算通常被視為浪費的計算周期。通過至少使用經(jīng)壓縮的稀疏參數(shù)來處理僅具有非零值的神經(jīng)網(wǎng)絡輸入,機器學習系統(tǒng)可以減少其計算操作總量。這種減少是通過從針對神經(jīng)網(wǎng)絡層處理的參數(shù)張量的權重值當中移除零值來實現(xiàn)的。減少的計算操作量導致功耗和資源需求(例如,存儲器分配和處理器周期)的對應減少。
15、本說明書中描述的主題的一個或多個實現(xiàn)方式的細節(jié)在附圖和以下描述中闡述。根據(jù)該描述、附圖和權利要求書,本主題的其他潛在特征、方面和優(yōu)勢將變得顯而易見。
1.一種涉及在硬件加速器上實現(xiàn)的神經(jīng)網(wǎng)絡的計算機實現(xiàn)的方法,所述方法包括:
2.如權利要求1所述的方法,其中,通過所述神經(jīng)網(wǎng)絡的所述層處理所述輸入向量包括:
3.如權利要求2所述的方法,其中,所述點積矩陣乘法運算是在所述硬件加速器的一個或多個乘法芯元處基于所述映射向量中的每個位的相應位值而執(zhí)行的。
4.如權利要求2所述的方法,進一步包括:
5.如權利要求1所述的方法,其中,得出所述經(jīng)壓縮的稀疏參數(shù)集合包括:
6.如權利要求5所述的方法,其中,生成所述經(jīng)修改的參數(shù)張量包括:
7.如權利要求6所述的方法,其中,生成所述經(jīng)修改的參數(shù)張量包括:
8.如權利要求1所述的方法,其中:
9.如權利要求1所述的方法,其中:
10.如權利要求1所述的方法,其中,所述第一存儲器:
11.如權利要求10所述的方法,其中,所述第二存儲器包括多個單指令多數(shù)據(jù)simd寄存器,并且所述方法包括:
12.一種系統(tǒng),包括:
13.如權利要求12所述的系統(tǒng),其中,通過所述神經(jīng)網(wǎng)絡的所述層處理所述輸入向量包括:
14.如權利要求13所述的系統(tǒng),其中,所述點積矩陣乘法運算是在所述硬件加速器的一個或多個乘法芯元處基于所述映射向量中的每個位的相應位值而執(zhí)行的。
15.如權利要求13所述的系統(tǒng),其中,所述操作進一步包括:
16.如權利要求12所述的系統(tǒng),其中,得出所述經(jīng)壓縮的稀疏參數(shù)集合包括:
17.如權利要求16所述的系統(tǒng),其中,生成所述經(jīng)修改的參數(shù)張量包括:
18.如權利要求17所述的系統(tǒng),其中,生成所述經(jīng)修改的參數(shù)張量包括:
19.如權利要求12所述的系統(tǒng),其中:
20.如權利要求12所述的系統(tǒng),其中:
21.如權利要求12所述的系統(tǒng),其中,所述第一存儲器:
22.如權利要求21所述的系統(tǒng),其中,所述第二存儲器包括多個單指令多數(shù)據(jù)simd寄存器,并且所述操作進一步包括:
23.一種非暫時性機器可讀存儲介質,用于存儲指令,所述指令能夠由被配置為實現(xiàn)神經(jīng)網(wǎng)絡的硬件加速器的處理裝置執(zhí)行,其中,所述指令的執(zhí)行使得執(zhí)行包括以下的操作:
24.一種使用硬件加速器執(zhí)行的方法,所述硬件加速器實現(xiàn)包括多個神經(jīng)網(wǎng)絡層的神經(jīng)網(wǎng)絡,所述方法包括: