【2023 · CANN訓(xùn)練營第一季】初識(shí)昇騰AI基礎(chǔ)知識(shí)
【2023 · CANN訓(xùn)練營第一季】初識(shí)昇騰AI基礎(chǔ)知識(shí)
一、昇騰AI架構(gòu)
1.芯片層
?芯片層為AI構(gòu)架中的算力基礎(chǔ),本層主要是指昇騰的一系列硬件芯片。
?eg:如集成到其他芯片中的Nano,Tiny,Lite
?其中昇騰310主要用在推理場(chǎng)景,昇騰910用在訓(xùn)練場(chǎng)景
2.芯片使能層
?昇騰AI計(jì)算平臺(tái)CANN,其中包含計(jì)算加速庫、芯片算子庫、高度自動(dòng)化算子開發(fā)工具等。用于針對(duì)上層AI框架的調(diào)用進(jìn)行加速,力求向上支持多種AI框架,并在硬件上進(jìn)行加速。
3.AI框架層
?包含用于構(gòu)建模型的訓(xùn)練框架,例如華為的MindSpore、 TensorFlow、Pytorch等
4.應(yīng)用使能層
?此層面通常包含用于部署模型的軟硬件,例如API、SDK、部署平臺(tái),模型庫等等。其中,ModelArts是華為云上的訓(xùn)練資源平臺(tái),可以在上面找到自己需要的服務(wù)器平臺(tái)進(jìn)行學(xué)習(xí)
二、CANN邏輯架構(gòu)
1.異騰計(jì)算語言接口
?異騰計(jì)算語言 (Ascend Computing Language,AscendCL) 接口是異騰計(jì)算開放編程框架,是對(duì)低層異騰計(jì)算服務(wù)接口的封裝。
?它提供Device (設(shè)備) 管理、Context (上下文)管理、Stream (流)管理、內(nèi)存管理、模型加載與執(zhí)行、算子加載與執(zhí)行、媒體數(shù)據(jù)處理Graph (圖) 管理等API庫,并且在文檔中也提供了各種場(chǎng)景下的API庫調(diào)用流程,方便用戶開發(fā)人工智能應(yīng)用。
2.異騰計(jì)算服務(wù)層
?本層主要提供異騰計(jì)算庫,例如神經(jīng)網(wǎng)絡(luò) (Neural Network,NN) 庫、線性代數(shù)計(jì)算庫(Basic Linear Algebra Subprograms,BLAS) 等;異騰計(jì)算調(diào)優(yōu)引擎庫,例如算子調(diào)優(yōu)、子圖調(diào)優(yōu)、梯度調(diào)優(yōu)、模型壓縮以及AI框架適配器

3.異騰計(jì)算編譯引擎
?本層主要提供圖編譯器 (Graph Compiler) 和TBE (Tensor Boost Engine) 算子開發(fā)支持前者將用戶輸入中間表達(dá) (Intermediate Representation,IR)的計(jì)算圖編譯成NPU運(yùn)行的模型。后者提供用戶開發(fā)自定義算子所需的工具。

4.異騰計(jì)算執(zhí)行引擎
?本層負(fù)責(zé)模型和算子的執(zhí)行,提供如運(yùn)行時(shí) (Runtime) 庫(執(zhí)行內(nèi)存分配、模型管理、數(shù)據(jù)收發(fā)等)、圖執(zhí)行器 (Graph Executor) 、數(shù)字視覺預(yù)處理 (Digital Vision Pre-Processing,DVPP)、人工智能預(yù)處理 (Artificial lntelligence Pre-Processing,AIPP)、華為集合通信庫 (Huawei Collective Communication Library,HCCL) 等功能單元。

?AIPP可以將預(yù)處理部分放在模型中進(jìn)行,大大縮短了前處理時(shí)間
?視頻處理,圖像處理等則離不開DVPP大作用
5.異騰計(jì)算基礎(chǔ)層
?本層主要為其上各層提供基礎(chǔ)服務(wù),如共享虛擬內(nèi)存 (Shared Virtual Memory,SVM)設(shè)備虛擬化 (Virtual Machine,VM) 、主機(jī)-設(shè)備通信 (Host Device Communication,HD
c) 等。

三、AscendCL簡(jiǎn)單認(rèn)識(shí)
?AscendCL是一個(gè)各類功能的封裝API庫,它提供運(yùn)行時(shí)資源(例如設(shè)備、內(nèi)存等)管理、模型加載與執(zhí)行、算子加載與執(zhí)行、圖片數(shù)據(jù)編解碼/裁剪/縮放處理等功能。
?實(shí)現(xiàn)在異騰CANN平臺(tái)上進(jìn)行深度學(xué)習(xí)推理計(jì)算圖形圖像預(yù)處理、單算子加速計(jì)算等能力。簡(jiǎn)單來說,就是統(tǒng)一的API框架,實(shí)現(xiàn)對(duì)所有資源的調(diào)用。其框架如下:

AscendCL的優(yōu)勢(shì)如下:
1.高度抽象: 算子編譯、加載、執(zhí)行的API歸一,相比每個(gè)算子一個(gè)API,AscendCL大幅減少API數(shù)量,降低復(fù)雜度
2.向后兼容: AscendCL具備向后兼容,確保軟件升級(jí)后,基于舊版本編譯的程序依然可以在新版本上運(yùn)行。
3.零感知芯片: 一套AscendCL接口可以實(shí)現(xiàn)應(yīng)用代碼統(tǒng)一,多款異騰處理器無差異.
AscendCL的主要應(yīng)用場(chǎng)景如下:
1.開發(fā)應(yīng)用: 用戶可以直接調(diào)用AscendCL提供的接口開發(fā)圖片分類應(yīng)用、目標(biāo)識(shí)別應(yīng)用0
2.供第三方框架調(diào)用: 用戶可以通過第三方框架調(diào)用AscendCL接口,以便使用異騰AI處理器的計(jì)算能力。
3.供第三方開發(fā)lib庫: 用戶還可以使用AscendCL封裝實(shí)現(xiàn)第三方lib庫,以便提供異騰AI處理器的運(yùn)行管理、資源管理等能力。
ps:該文僅是為了記錄CANN訓(xùn)練營的學(xué)習(xí)過程所用,不參與任何商業(yè)用途