本發(fā)明涉及集成電路,尤其涉及一種基于存內(nèi)計(jì)算的多尺度視覺(jué)transformer加速器架構(gòu)、邊緣芯片及設(shè)備。
背景技術(shù):
1、transformer模型是一類(lèi)的神經(jīng)網(wǎng)絡(luò)模型,主要由多個(gè)transformer?encoder塊堆疊而成,每個(gè)塊包含一個(gè)多頭注意力(multi-head?attention,mha)層以及一個(gè)前饋網(wǎng)絡(luò)(feed-forward?network,ffn)層,目前已證明其可用于計(jì)算機(jī)視覺(jué)任務(wù)。與cnn相比,標(biāo)準(zhǔn)的視覺(jué)transformer(vision?transformer,vit)模型幾乎不具備任何跟圖像相關(guān)的歸納偏置,這使得其往往需要更多的參數(shù)與計(jì)算來(lái)學(xué)習(xí)相應(yīng)的視覺(jué)表示,從而使得它們難以在資源受限的邊緣端進(jìn)行部署。而卷積神經(jīng)網(wǎng)絡(luò)(convolutional?neural?netowrk,cnn)在計(jì)算機(jī)視覺(jué)領(lǐng)域長(zhǎng)期占據(jù)主導(dǎo)地位,發(fā)展相對(duì)成熟。
2、為利用transformer模型和cnn二者的優(yōu)點(diǎn),出現(xiàn)了一種多尺度vit模型,其采用混合網(wǎng)絡(luò)結(jié)構(gòu)及具備多變的層尺寸,混合結(jié)構(gòu)中包含了更多的卷積計(jì)算,而多變的層尺寸采用類(lèi)似現(xiàn)代cnn的多階段設(shè)計(jì)序列長(zhǎng)度與頭數(shù)隨著不同的階段變化。為了提高空間率用率,已有的cnn加速器通常能夠支持動(dòng)態(tài)數(shù)據(jù)流,能夠在計(jì)算過(guò)程中動(dòng)態(tài)調(diào)整計(jì)算陣列的并行度分配,以高效支持不同尺寸的卷積運(yùn)算;但是,這類(lèi)加速器并沒(méi)有針對(duì)transformer中的mha層進(jìn)行優(yōu)化,無(wú)法消除mha矩陣乘運(yùn)算時(shí)的額外中間數(shù)據(jù)搬運(yùn),因此,這種加速器并不能用于多尺度vit模型;而現(xiàn)有的transformer加速器設(shè)計(jì)時(shí)也未考慮與卷積計(jì)算兼容,不支持多變的卷積核形狀,而且由于transformer中mha中的softmax函數(shù)具有全局規(guī)約-廣播的性質(zhì),通常難以動(dòng)態(tài)地分配計(jì)算陣列的并行度,通常只適用于層尺寸固定的標(biāo)準(zhǔn)transformer,面對(duì)層尺寸多變的多尺度vit時(shí),存在資源利用率下降的風(fēng)險(xiǎn),而且有可能增大計(jì)算延遲。因此,現(xiàn)有的加速器不適用于多尺度vit,需要設(shè)計(jì)新的適于多尺度vit的加速器。
技術(shù)實(shí)現(xiàn)思路
1、為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種基于存內(nèi)計(jì)算的多尺度視覺(jué)transformer加速器架構(gòu)、邊緣芯片及設(shè)備,能夠適用卷積與mha兩者的動(dòng)態(tài)數(shù)據(jù)流,能夠根據(jù)不同的層尺寸動(dòng)態(tài)調(diào)整并行度以提高空間利用率,適合多尺度vit的部署。
2、本發(fā)明提供一種一種多尺度視覺(jué)transformer加速器架構(gòu),包括:
3、指令隊(duì)列和指令調(diào)度器,用于接收中央處理單元的指令,并分發(fā)給imc陣列或直接內(nèi)存訪(fǎng)問(wèn)引擎,以控制計(jì)算或數(shù)據(jù)傳輸;
4、統(tǒng)一緩存區(qū),用于存儲(chǔ)卷積的輸入特征和輸出特征,以及mha的query矩陣及輸出矩陣;
5、imc陣列,用于存儲(chǔ)卷積的權(quán)重或mha的key、value矩陣,以及執(zhí)行卷積與mha計(jì)算;
6、直接內(nèi)存訪(fǎng)問(wèn)引擎,用于加速器內(nèi)部存儲(chǔ),以及與加速器片外dram之間的數(shù)據(jù)傳輸;
7、前處理模塊,用于從統(tǒng)一緩沖區(qū)中讀取卷積的輸入特征或mha的query矩陣,將數(shù)據(jù)對(duì)齊后送往imc陣列;
8、后處理模塊,用于收集imc陣列的輸出結(jié)果,與統(tǒng)一緩沖區(qū)中的部分和進(jìn)行累加,執(zhí)行相應(yīng)的激活函數(shù)及量化操作。
9、本發(fā)明還提供一種邊緣芯片,包括上述的多尺度視覺(jué)transformer加速器架構(gòu)。
10、本發(fā)明還提供一種邊緣設(shè)備,包括上述的邊緣芯片。
11、本發(fā)明實(shí)施例中通過(guò)對(duì)mha引入流水線(xiàn)重排,設(shè)計(jì)三階段softmax函數(shù),避免了現(xiàn)有的計(jì)算方案中需要在計(jì)算塊之間進(jìn)行多次全局規(guī)約-廣播的通信開(kāi)銷(xiāo),提高了映射的靈活度;基于流水線(xiàn)重排設(shè)計(jì)了可重構(gòu)的imc引擎,通過(guò)不同的模式高效支持卷積與mha計(jì)算,對(duì)mha計(jì)算消除中間數(shù)據(jù)搬運(yùn)開(kāi)銷(xiāo),對(duì)多尺度vit的混合網(wǎng)絡(luò)結(jié)構(gòu)友好;基于流水線(xiàn)重排設(shè)計(jì)了可重構(gòu)的分發(fā)網(wǎng)絡(luò),高效支持卷積與mha的動(dòng)態(tài)數(shù)據(jù)流,支持不同層尺寸的卷積與mha的靈活映射,有效提高部署多尺度vit的空間利用率。相比現(xiàn)有技術(shù),本發(fā)明實(shí)現(xiàn)了卷積與mha兩者的動(dòng)態(tài)數(shù)據(jù)流,能夠根據(jù)不同的層尺寸動(dòng)態(tài)調(diào)整并行度以提高空間利用率,更加適合多尺度vit的部署。
1.一種多尺度視覺(jué)transformer加速器架構(gòu),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的加速器架構(gòu),其特征在于,所述mha計(jì)算采用三階段計(jì)算softmax函數(shù),第一階段在每個(gè)計(jì)算塊內(nèi)部進(jìn)行,完成取最大值、作差、求指數(shù)和求和運(yùn)算,在第二階段對(duì)來(lái)自不同計(jì)算塊的計(jì)算結(jié)果進(jìn)行縮放相加,在第三階段執(zhí)行除法。
3.根據(jù)權(quán)利要求2所述的加速器架構(gòu),其特征在于,所述imc陣列包括多個(gè)imc引擎及分發(fā)網(wǎng)絡(luò),每個(gè)imc引擎包括:兩個(gè)基于sram的數(shù)字imc宏。
4.根據(jù)權(quán)利要求3所述的加速器架構(gòu),其特征在于,imc引擎具有兩種工作模式:用于卷積計(jì)算的并行模式和用于注意力計(jì)算的流水線(xiàn)模式;當(dāng)工作在并行模式時(shí),同一imc引擎中的兩個(gè)imc宏同步接收輸入并進(jìn)行計(jì)算,計(jì)算結(jié)果進(jìn)行相加后輸出;當(dāng)工作在流水線(xiàn)模式時(shí),同一imc引擎中的兩個(gè)imc宏形成兩級(jí)流水線(xiàn),分別計(jì)算mha中的兩個(gè)矩陣乘法,第一imc宏接收輸入數(shù)據(jù)并進(jìn)行第一個(gè)矩陣乘法操作,計(jì)算結(jié)果進(jìn)行第一階段softmax處理后作為第二imc宏的輸入,進(jìn)行第二個(gè)矩陣乘法操作,第二imc宏的輸出作為該imc引擎的輸出。
5.根據(jù)權(quán)利要求3所述的加速器架構(gòu),其特征在于,所述分發(fā)網(wǎng)絡(luò)為可重構(gòu)分發(fā)網(wǎng)絡(luò),采用樹(shù)形分發(fā)網(wǎng)絡(luò)連接imc陣列中的各個(gè)imc引擎。
6.根據(jù)權(quán)利要求5所述的加速器架構(gòu),其特征在于,根據(jù)算子及并行度分配需要,分發(fā)網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)具有四個(gè)工作模式:用于卷積的切分-合并模式、用于卷積的復(fù)制-拼接模式、用于mha的切分-合并模式和用于mha的復(fù)制-拼接模式。
7.一種邊緣芯片,其特征在于,包括如權(quán)利要求1-6中任一項(xiàng)所述的多尺度視覺(jué)transformer加速器架構(gòu)。
8.一種邊緣設(shè)備,其特征在于,包括如權(quán)利要求7中的邊緣芯片。