本發(fā)明涉及一種人工智能(artificial?intelligence,ai)芯片,尤其涉及一種用以執(zhí)行深度可分離卷積(depthwise?separable?convolution)的電子裝置,且特別涉及用以執(zhí)行在深度可分離卷積中的逐通道卷積(depthwise?convolution)的一種逐通道卷積裝置及其操作方法。
背景技術(shù):
1、諸如人工智能芯片等運(yùn)算裝置可以提供巨大算力。人工智能芯片的巨大算力源于內(nèi)部大量的硬件核。一個(gè)ai芯片通常包含多個(gè)可編程處理器,例如流式處理器簇(streamprocessor?cluster,spc)。每一個(gè)可編程處理器通常包含多個(gè)計(jì)算單元(compute?unit,cu,或稱計(jì)算核),而每一個(gè)計(jì)算單元通常包含多個(gè)執(zhí)行單元(execution?unit,eu,或稱執(zhí)行核),例如整數(shù)(integer,int)核、浮點(diǎn)數(shù)(floating?point,fp)核、張量核(tensor?core,tcore)和/或矢量核(vector?core,vcore)中的至少一種。通過(guò)編程將各種類型的計(jì)算單元進(jìn)行組織,可編程多處理器可以支持通用計(jì)算、科學(xué)計(jì)算和神經(jīng)網(wǎng)絡(luò)計(jì)算。
2、深度可分離卷積是一種輕量級(jí)的卷積操作。深度可分離卷積的操作過(guò)程包括逐通道卷積和逐點(diǎn)卷積(pointwise?convolution)兩個(gè)階段。深度可分離卷積可以有效地降低計(jì)算量和參數(shù)量,提高模型的推理速度和運(yùn)行效率。假設(shè)輸入特征圖(feature?map)的大小為h×w,輸入通道數(shù)為n,卷積核的大小為k×k,以及輸出通道數(shù)為m,則標(biāo)準(zhǔn)卷積的運(yùn)算量為h×w×n×k2×m,參數(shù)量是n×k2×m。在同樣假設(shè)條件下,對(duì)于深度可分離卷積,第一階段(逐通道卷積)的參數(shù)量是k2×n,第二階段(逐點(diǎn)卷積)的參數(shù)量是n×m(假設(shè)采用卷積核的大小為1×1)。因此,深度可分離卷積的總參數(shù)量是k2×n?+?n×m?=?n×(k2+?m)。一般情況下,n×(k2+?m)比n×k2×m要小很多。
3、深度可分離卷積和標(biāo)準(zhǔn)卷積一樣,可以采用通用矩陣乘法單元(general?matrixmultiplication,gemm)硬件完成計(jì)算,或通過(guò)中央處理器(central?processing?unit,cpu)硬件完成計(jì)算,或通過(guò)圖形處理器(graphics?processing?unit,gpu)的向量計(jì)算單元(vector?unit)硬件完成計(jì)算。如何實(shí)現(xiàn)專門用于實(shí)現(xiàn)深度可分離卷積的硬件,是本領(lǐng)域諸多技術(shù)議題之一。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明是針對(duì)一種逐通道卷積裝置及其操作方法,用以執(zhí)行在深度可分離卷積運(yùn)算中的第一階段“逐通道卷積”。
2、在根據(jù)本發(fā)明的實(shí)施例中,所述逐通道卷積裝置包括逐通道卷積控制模塊、卷積核輸入控制模塊、特征圖輸入控制模塊以及多個(gè)浮點(diǎn)運(yùn)算單元。逐通道卷積控制模塊用于執(zhí)行指令調(diào)度模塊所發(fā)射的逐通道卷積指令。卷積核輸入控制模塊耦接至逐通道卷積控制模塊。特征圖輸入控制模塊耦接至逐通道卷積控制模塊。多個(gè)浮點(diǎn)運(yùn)算單元耦接至卷積核輸入控制模塊和特征圖輸入控制模塊。卷積核輸入控制模塊基于逐通道卷積控制模塊的控制而將卷積核廣播給所述多個(gè)浮點(diǎn)運(yùn)算單元。特征圖輸入控制模塊基于逐通道卷積控制模塊的控制而從特征圖矩陣調(diào)用在第一感受野中的第一部分矩陣給所述多個(gè)浮點(diǎn)運(yùn)算單元中的第一浮點(diǎn)運(yùn)算單元。第一浮點(diǎn)運(yùn)算單元基于逐通道卷積控制模塊的控制而進(jìn)行第一多通道乘加操作。第一浮點(diǎn)運(yùn)算單元在第一多通道乘加操作的第一周期使用第一感受野的多個(gè)第一矩陣元素和卷積核的多個(gè)第一權(quán)重元素進(jìn)行乘加計(jì)算以生成第一階段和值。第一浮點(diǎn)運(yùn)算單元在第一多通道乘加操作的第二周期使用第一階段和值和先前累加值進(jìn)行累加計(jì)算以生成第一多通道乘加操作的第一累加結(jié)果。第一浮點(diǎn)運(yùn)算單元基于第一多通道乘加操作的第一累加結(jié)果算出逐通道卷積結(jié)果矩陣中的第一結(jié)果元素。
3、在根據(jù)本發(fā)明的實(shí)施例中,所述逐通道卷積裝置包括:由逐通道卷積控制模塊執(zhí)行指令調(diào)度模塊所發(fā)射的逐通道卷積指令;由卷積核輸入控制模塊基于逐通道卷積控制模塊的控制而將卷積核廣播給所述多個(gè)浮點(diǎn)運(yùn)算單元;由特征圖輸入控制模塊基于逐通道卷積控制模塊的控制而從特征圖矩陣調(diào)用在第一感受野中的第一部分矩陣給所述多個(gè)浮點(diǎn)運(yùn)算單元中的第一浮點(diǎn)運(yùn)算單元;由第一浮點(diǎn)運(yùn)算單元基于逐通道卷積控制模塊的控制而進(jìn)行第一多通道乘加操作;由第一浮點(diǎn)運(yùn)算單元在第一多通道乘加操作的第一周期使用第一感受野的多個(gè)第一矩陣元素和卷積核的多個(gè)第一權(quán)重元素進(jìn)行乘加計(jì)算以生成第一階段和值;由第一浮點(diǎn)運(yùn)算單元在第一多通道乘加操作的第二周期使用第一階段和值和先前累加值進(jìn)行累加計(jì)算以生成第一多通道乘加操作的第一累加結(jié)果;以及由第一浮點(diǎn)運(yùn)算單元基于第一多通道乘加操作的第一累加結(jié)果算出逐通道卷積結(jié)果矩陣中的第一結(jié)果元素。
4、基于上述,逐通道卷積裝置的逐通道卷積控制模塊控制卷積核輸入控制模塊、特征圖輸入控制模塊以及多個(gè)浮點(diǎn)運(yùn)算單元,以對(duì)于在感受野中的部分矩陣進(jìn)行一或多次多通道乘加操作。在完成所述一或多次多通道乘加操作后,浮點(diǎn)運(yùn)算單元可以算出逐通道卷積結(jié)果矩陣中的一個(gè)結(jié)果元素。
1.一種逐通道卷積裝置,其特征在于,所述逐通道卷積裝置包括:
2.根據(jù)權(quán)利要求1所述的逐通道卷積裝置,其特征在于,所述逐通道卷積裝置還包括:
3.根據(jù)權(quán)利要求1所述的逐通道卷積裝置,其特征在于,所述逐通道卷積裝置還包括:
4.根據(jù)權(quán)利要求3所述的逐通道卷積裝置,其特征在于,所述特征圖矩陣在所述第一感受野中的所述第一部分矩陣被存放在所述寄存器組的多個(gè)寄存器的每一個(gè)的第一地址,所述特征圖矩陣在第二感受野中的第二部分矩陣被存放在所述寄存器組的多個(gè)寄存器的每一個(gè)的第二地址,所述特征圖輸入控制模塊基于所述逐通道卷積控制模塊的控制而從所述多個(gè)寄存器的每一個(gè)的所述第一地址調(diào)用所述第一部分矩陣給所述第一浮點(diǎn)運(yùn)算單元,以及所述特征圖輸入控制模塊基于所述逐通道卷積控制模塊的控制而從所述多個(gè)寄存器的每一個(gè)的所述第二地址調(diào)用所述第二部分矩陣給所述多個(gè)浮點(diǎn)運(yùn)算單元中的第二浮點(diǎn)運(yùn)算單元。
5.根據(jù)權(quán)利要求1所述的逐通道卷積裝置,其特征在于,所述第一多通道乘加操作的所述第一周期所進(jìn)行的乘加計(jì)算包括半精度乘法以及半精度加法,所述第一階段和值為半精度浮點(diǎn)數(shù),所述第一多通道乘加操作的所述第二周期所進(jìn)行的累加計(jì)算包括全精度加法,以及所述第一累加結(jié)果為全精度浮點(diǎn)數(shù)。
6.根據(jù)權(quán)利要求5所述的逐通道卷積裝置,其特征在于,所述第一感受野的所述多個(gè)第一矩陣元素包括第一元素和第二元素,所述卷積核的所述多個(gè)第一權(quán)重元素包括第一權(quán)重和第二權(quán)重,
7.根據(jù)權(quán)利要求1所述的逐通道卷積裝置,其特征在于,
8.根據(jù)權(quán)利要求7所述的逐通道卷積裝置,其特征在于,所述第二多通道乘加操作的所述第一周期在時(shí)間上重疊于所述第一多通道乘加操作的所述第二周期。
9.根據(jù)權(quán)利要求7所述的逐通道卷積裝置,其特征在于,所述第二多通道乘加操作的所述第一周期在時(shí)間上位于所述第一多通道乘加操作的所述第二周期結(jié)束后。
10.根據(jù)權(quán)利要求1所述的逐通道卷積裝置,其特征在于,所述第一浮點(diǎn)運(yùn)算單元包括:
11.根據(jù)權(quán)利要求10所述的逐通道卷積裝置,其特征在于,所述第一乘法電路包括:
12.根據(jù)權(quán)利要求10所述的逐通道卷積裝置,其特征在于,所述第二乘法電路包括:
13.根據(jù)權(quán)利要求10所述的逐通道卷積裝置,其特征在于,所述加法電路包括:
14.根據(jù)權(quán)利要求10所述的逐通道卷積裝置,其特征在于,所述累加電路包括:
15.根據(jù)權(quán)利要求1所述的逐通道卷積裝置,其特征在于,所述逐通道卷積控制模塊包括:
16.一種逐通道卷積裝置的操作方法,其特征在于,所述操作方法包括:
17.根據(jù)權(quán)利要求16所述的操作方法,其特征在于,所述操作方法還包括:
18.根據(jù)權(quán)利要求16所述的操作方法,其特征在于,所述第一多通道乘加操作的所述第一周期所進(jìn)行的乘加計(jì)算包括半精度乘法以及半精度加法,所述第一階段和值為半精度浮點(diǎn)數(shù),所述第一多通道乘加操作的所述第二周期所進(jìn)行的累加計(jì)算包括全精度加法,以及所述第一累加結(jié)果為全精度浮點(diǎn)數(shù)。
19.根據(jù)權(quán)利要求18所述的操作方法,其特征在于,所述第一感受野的所述多個(gè)第一矩陣元素包括第一元素和第二元素,所述卷積核的所述多個(gè)第一權(quán)重元素包括第一權(quán)重和第二權(quán)重,以及所述操作方法還包括:
20.根據(jù)權(quán)利要求16所述的操作方法,其特征在于,所述操作方法還包括:
21.根據(jù)權(quán)利要求20所述的操作方法,其特征在于,所述第二多通道乘加操作的所述第一周期在時(shí)間上重疊于所述第一多通道乘加操作的所述第二周期。
22.根據(jù)權(quán)利要求20所述的操作方法,其特征在于,所述第二多通道乘加操作的所述第一周期在時(shí)間上位于所述第一多通道乘加操作的所述第二周期結(jié)束后。