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