【2023 · CANN訓(xùn)練營(yíng)第一季】昇騰AI入門課(TensorFlow)
昇騰AI全棧可以分成四個(gè)大部分:
[if !supportLists]1.?[endif]應(yīng)用使能層面,此層面通常包含用于部署模型的軟硬件瘫寝,例如API碴裙、SDK、部署平臺(tái)陶缺,模型庫(kù)等等钾挟。
[if !supportLists]2.?[endif]AI框架層面,此層面包含用于構(gòu)建模型的訓(xùn)練框架饱岸,例如華為的MindSpore掺出、TensorFlow、Pytorch等苫费。
[if !supportLists]3.?[endif]異構(gòu)計(jì)算架構(gòu)汤锨,偏底層、偏通用的計(jì)算框架百框,用于針對(duì)上層AI框架的調(diào)用進(jìn)行加速闲礼,力求向上支持多種AI框架,并在硬件上進(jìn)行加速铐维。
[if !supportLists]4.?[endif]計(jì)算硬件柬泽,本層是AI計(jì)算的底座,有了強(qiáng)力的芯片及硬件設(shè)備嫁蛇,上層的加速才有實(shí)施的基礎(chǔ)锨并。
華為公司面向計(jì)算機(jī)視覺、自然語(yǔ)言處理睬棚、推薦系統(tǒng)第煮、類機(jī)器人等領(lǐng)域量身打造了基于“達(dá)芬奇(DaVinci)架構(gòu)”的昇騰(Ascend)AI處理器,開啟了智能之旅抑党。為提升用戶開發(fā)效率和釋放昇騰AI處理器澎湃算力包警,同步推出針對(duì)AI場(chǎng)景的異構(gòu)計(jì)算架構(gòu)CANN(Compute Architecture for Neural Networks),CANN通過提供多層次的編程接口新荤,以全場(chǎng)景揽趾、低門檻、高性能的優(yōu)勢(shì)苛骨,支持用戶快速構(gòu)建基于Ascend平臺(tái)的AI應(yīng)用和業(yè)務(wù)篱瞎。
AscendCL(Ascend Computing Language苟呐,昇騰計(jì)算語(yǔ)言)是昇騰計(jì)算開放編程框架,是對(duì)底層昇騰計(jì)算服務(wù)接口的封裝俐筋,它提供運(yùn)行時(shí)資源(例如設(shè)備牵素、內(nèi)存等)管理、模型加載與執(zhí)行澄者、算子加載與執(zhí)行笆呆、圖片數(shù)據(jù)編解碼/裁剪/縮放處理等API庫(kù),實(shí)現(xiàn)在昇騰CANN平臺(tái)上進(jìn)行深度學(xué)習(xí)推理計(jì)算粱挡、圖形圖像預(yù)處理赠幕、單算子加速計(jì)算等能力。簡(jiǎn)單來說询筏,就是統(tǒng)一的API框架榕堰,實(shí)現(xiàn)對(duì)所有資源的調(diào)用。
昇騰910 AI處理器是華為在2019年發(fā)布的人工智能(AI)專用的神經(jīng)網(wǎng)絡(luò)處理器嫌套。當(dāng)前業(yè)界大多數(shù)訓(xùn)練腳本基于TensorFlow的Python API開發(fā)逆屡,默認(rèn)運(yùn)行在CPU/GPU/TPU上,為了使其能夠利用昇騰910 AI處理器的澎湃算力執(zhí)行訓(xùn)練踱讨,提升訓(xùn)練性能魏蔗,我們需要基于CANN對(duì)TensorFlow模型進(jìn)行適配和訓(xùn)練。
將TensorFlow網(wǎng)絡(luò)模型遷移到昇騰AI處理器執(zhí)行訓(xùn)練痹筛,主要有兩種方式:
[if !supportLists]1.?[endif]一種是自動(dòng)遷移方式莺治。通過遷移工具對(duì)原始腳本進(jìn)行AST語(yǔ)法樹掃描,可自動(dòng)分析原生的TensorFlow API在昇騰AI處理器上的支持度味混,并將原始的TensorFlow訓(xùn)練腳本自動(dòng)遷移成昇騰AI處理器支持的腳本产雹,對(duì)于無(wú)法自動(dòng)遷移的API,可以參考工具輸出的遷移報(bào)告翁锡,對(duì)訓(xùn)練腳本進(jìn)行相應(yīng)的適配修改蔓挖。
[if !supportLists]2.?[endif]一種是手工遷移方式。算法工程師需要人工分析TensorFlow訓(xùn)練腳本中的API支持度情況馆衔,并且參照文檔逐一手工修改不支持的API瘟判,以便在昇騰AI處理器上訓(xùn)練,該種方式較為復(fù)雜角溃,我們建議大家優(yōu)先使用自動(dòng)遷移方式拷获。
?
自動(dòng)遷移是通過工具對(duì)原始腳本進(jìn)行AST語(yǔ)法樹掃描,可自動(dòng)分析原生的TensorFlow API在昇騰AI處理器上的支持度减细,并將原始的TensorFlow訓(xùn)練腳本自動(dòng)遷移成昇騰AI處理器支持的腳本匆瓜,對(duì)于無(wú)法自動(dòng)遷移的API,可以參考工具輸出的遷移報(bào)告,對(duì)訓(xùn)練腳本進(jìn)行相應(yīng)的適配修改驮吱。
?
手工遷移需要算法工程師人工分析TensorFlow訓(xùn)練腳本中的API支持度情況茧妒,并且參照文檔逐一手工修改不支持的API,以便在昇騰AI處理器上訓(xùn)練左冬,該種方式較為復(fù)雜桐筏,我們建議大家優(yōu)先使用自動(dòng)遷移方式。