2022CANN訓練營新手模型開發課學習筆記
2022CANN訓練營新手模型開發課學習筆記
開營直播
模型相比應用的課程有些吃力,需要額外補充些知識。
Python 編程經驗
使用位置和關鍵字參數定義和調用函數
字典、列表、集合(創建、訪問和迭代)
for 循環, for 具有多個迭代器變量的循環(例如,for a, b in [(1,2), (3,4)])
if/else 條件塊和條件表達式
字符串格式(例如,’%.2f’ % 3.14)
變量、賦值、基本數據類型(int, float, bool, str 等)
深度學習和神經網絡
為了讓計算機掌握人類理解的知識,需要構筑一個由簡單概念組成的多層連接網絡來定義復雜對象,計算機通過對這個網絡的迭代計算與訓練后,可以掌握這個對象的特征,一般稱這種方法為深度學習(DeepLearning,DL)
TensorFlow AI 框架
昇騰AI全棧架構
昇騰AI 全棧可以分成四個大部分:
應用使能層面,此層面通常包含用于部署模型的軟硬件,例如API、SDK、部署平臺,模型庫等等。
AI 框架層面,此層面包含用于構建模型的訓練框架,例如昇思MindSpore、TensorFlow、Pytorch 等。
AI框架層:端、邊、云獨立協同的統一訓練和推理框架
異構計算架構CANN,偏底層、偏通用的計算框架,用于針對上層AI 框架的調用進行加速,力求向上支持多種AI 框架,并在硬件上進行加速。
芯片使能層:計算加速庫、芯片算子庫和高度自動化的算子開發工具。CANN
計算硬件,本層是AI 計算的底座,有了強力的芯片及硬件設備,上層的加速才有實施的基礎。
芯片層:基于統一、可擴展架構的系列化AI IP和芯片
異構計算架構CANN
華為公司面向計算機視覺、自然語言處理、推薦系統、類機器人等領域量身打造了基于“達芬奇(DaVinci)架構”的昇騰(Ascend)AI 處理器,開啟了智能之旅。為提升用戶開發效率和釋放昇騰AI 處理器澎湃算力,同步推出針對AI 場景的異構計算架構CANN(Compute Architecture for Neural Networks),CANN 通過提供多層次的編程接口,以全場景、低門檻、高性能的優勢,支持用戶快速構建基于Ascend 平臺的AI 應用和業務。
昇騰AI 異構計算架構(Compute Architecture for Neural Networks,CANN)被抽象成五層架構
昇騰計算語言接口(AscendCL)
昇騰計算語言(Ascend Computing Language,AscendCL)接口是昇騰計算開放編程框架,是對低層昇騰計算服務接口的封裝。它提供Device(設備)管理、Context(上下文)管理、Stream(流)管理、內存管理、模型加載與執行、算子加載與執行、媒體數據處理、Graph(圖)管理等API 庫,供用戶開發人工智能應用調用。
昇騰計算服務層
主要提供昇騰計算庫,例如神經網絡(Neural Network,NN)庫、線性代數計算庫(Basic Linear Algebra Subprograms,BLAS)等;昇騰計算調優引擎庫,例如算子調優、子圖調優、梯度調優、模型壓縮以及AI 框架適配器。
昇騰計算編譯引擎
主要提供圖編譯器(Graph Compiler)和TBE(Tensor Boost Engine)算子開發支持。前者將用戶輸入中間表達(Intermediate Representation,IR)的計算圖編譯成NPU 運行的模型。后者提供用戶開發自定義算子所需的工具。
昇騰計算執行引擎
負責模型和算子的執行,提供如運行時(Runtime)庫(執行內存分配、模型管理、數據收發等)、圖執行器(Graph Executor)、數字視覺預處理(Digital Vision Pre-Processing,DVPP)、人工智能預處理(Artificial Intelligence Pre-Processing,AIPP)、華為集合通信庫(Huawei Collective Communication Library,HCCL)等功能單元。
昇騰計算基礎層
主要為其上各層提供基礎服務,如共享虛擬內存(Shared Virtual Memory,SVM)、設備虛擬化(Virtual Machine,VM)、主機-設備通信(Host Device Communication,HDC)等。
基于CANN 的模型開發流程
模型遷移
除了昇思MindSpore 外,TensorFlow 等其他深度學習框架下的模型并不能直接在昇騰910 AI 處理器上訓練,為了使其充分利用昇騰910AI處理器的澎湃算力來提升訓練性能,我們需要借助異構計算架構CANN 的Plugin適配層轉換,使轉換后的模型能夠高效運行在昇騰910AI處理器上。
值得慶幸的是,目前,CANN 已經能夠支持多種主流AI 框架,包括昇思MindSpore、TensorFlow、PyTorch、飛漿、ONNX 等,并且開發者只需要非常少的改動,即可快速搞定算法移植,大大減少切換平臺的代價。
兩種模型遷移方式
自動遷移方式。通過遷移工具對原始腳本進行AST 語法樹掃描,可自動分析原生的TensorFlow API 在昇騰AI 處理器上的支持度,并將原始的TensorFlow訓練腳本自動遷移成昇騰AI 處理器支持的腳本,對于無法自動遷移的API,可以參考工具輸出的遷移報告,對訓練腳本進行相應的適配修改。
手工遷移方式。算法工程師需要人工分析TensorFlow 訓練腳本中的API 支持度情況,并且參照文檔逐一手工修改不支持的API,以便在昇騰AI 處理器上訓練,該種方式較為復雜,我們建議大家優先使用自動遷移方式。
AI 昇騰 機器學習
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。