張量加速引擎(Tensor Boost Engine)作為算子的兵工廠,為基于昇騰AI處理器運(yùn)行的神經(jīng)網(wǎng)絡(luò)提供算子開發(fā)能力,用TBE語(yǔ)言編寫的TBE算子來(lái)構(gòu)建各種神經(jīng)網(wǎng)絡(luò)模型。同時(shí),TBE對(duì)算子也提供了封裝調(diào)用能力。在TBE中有一個(gè)優(yōu)化過(guò)的神經(jīng)網(wǎng)絡(luò)TBE標(biāo)準(zhǔn)算子庫(kù),開發(fā)者可以直接利用標(biāo)準(zhǔn)算子庫(kù)中的算子實(shí)現(xiàn)高性能的神經(jīng)網(wǎng)絡(luò)計(jì)算。除此之外,TBE也提供了TBE算子的融合能力,為神經(jīng)網(wǎng)絡(luò)的優(yōu)化開辟一條獨(dú)特的路徑。
張量加速引擎TBE的三種應(yīng)用場(chǎng)景
用場(chǎng)景.jpg)
1、一般情況下,通過(guò)深度學(xué)習(xí)框架中的標(biāo)準(zhǔn)算子實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)模型已經(jīng)通過(guò)GPU或者其它類型神經(jīng)網(wǎng)絡(luò)芯片做過(guò)訓(xùn)練。如果將這個(gè)神經(jīng)網(wǎng)絡(luò)模型繼續(xù)運(yùn)行在昇騰AI處理器上時(shí),希望盡量在不改變?cè)即a的前提下,在昇騰AI處理器上能發(fā)揮最大性能。因此TBE提供了一套完整的TBE算子加速庫(kù),庫(kù)中的算子功能與神經(jīng)網(wǎng)絡(luò)中的常見標(biāo)準(zhǔn)算子保持了一一對(duì)應(yīng)關(guān)系,并且由軟件棧提供了編程接口供調(diào)用算子使用,為上層深度學(xué)習(xí)中各種框架或者應(yīng)用提供了加速的同時(shí)盡量避免了開發(fā)昇騰AI處理器底層的適配代碼。
2、如果在神經(jīng)網(wǎng)絡(luò)模型構(gòu)造中,出現(xiàn)了新的算子,這時(shí)TBE中提供的標(biāo)準(zhǔn)算子庫(kù)無(wú)法滿足開發(fā)需求。此時(shí)需要通過(guò)TBE語(yǔ)言進(jìn)行自定義算子開發(fā),這種開發(fā)方式和GPU上利用CUDA C++的方式相似,可以實(shí)現(xiàn)更多功能的算子,靈活編寫各種網(wǎng)絡(luò)模型。編寫完成的算子會(huì)交給編譯器進(jìn)行編譯,最終執(zhí)行在AI Core或AI CPU上發(fā)揮出芯片的加速能力。
3、在合適的場(chǎng)景下,TBE提供的算子融合能力會(huì)促進(jìn)算子性能的提升,讓神經(jīng)網(wǎng)絡(luò)算子可以基于不同層級(jí)的緩沖器進(jìn)行多級(jí)別的緩存融合,使得昇騰AI處理器在執(zhí)行融合后的算子時(shí)片上資源利用率獲得顯著提升。
綜上,由于TBE在提供算子開發(fā)能力的同時(shí)也提供了標(biāo)準(zhǔn)算子調(diào)用以及算子融合優(yōu)化的能力,使得昇騰AI處理器在實(shí)際的神經(jīng)網(wǎng)絡(luò)應(yīng)用中,可以滿足功能多樣化的需求,構(gòu)建網(wǎng)絡(luò)的方法也會(huì)更加方便靈活,融合優(yōu)化能力也會(huì)更好的提高運(yùn)行性能。