【華為昇騰】 序言:從昇騰AI軟硬體平臺聊起

HongmingYou發表於2021-11-21

2021年是很值得紀念的一年,從上半年開始跟隨導師編寫有關華為昇騰軟體棧CANN的教材,一年的時間反覆迭代 終於快要出版了。

這一系列部落格可以視作我從編者的角度,重新梳理的全書思路。明年入職商湯之後要做國產化相關的工作,還是要跟華為昇騰打交道,把腦中的知識記錄下來以備將來使用。

  開啟昇騰的官網,就能看到這張昇騰AI的全景圖。華為的大戰略始終做得很好,真正意義上的全鏈路自主可控。

    自底向上的看,共包括以下六個部分:

  • 硬體層:最底層是華為開發的昇騰AI處理器,訓練晶片Ascend 910和推理晶片Ascend 310,這兩款晶片都採用了華為原創的達芬奇架構(Davinci)。基於這兩種晶片 華為包裝推出了一系列硬體產品
    • 如我們常用的訓練伺服器 Atlas 800(型號9000),一臺機器上裝配了8個Ascend910。
    • 再比如我們常常使用Atlas 200DK開發板來做一些小demo,一個200DK當中包括了1個Ascend310。
    • Atlas系列的產品還有很多,比如常用於端側場景的Atlas500智慧小站,再比如常用作超算中心的Atlas 900,他們底層的算力都是昇騰系列的兩款晶片。
    • 昇騰系列的晶片還有一個昇騰710,但始終未正式對外發布。與另兩款相比,710的規格、執行流深度、運算元編譯指令等方面都不相同,也鮮有相關產品可供使用,故下文所有介紹都基於310和910展開。
  • 軟體層:“軟硬體協同設計”是AI行業內的美好願景,昇騰軟體棧CANN也揹負著最大程度上發揮硬體計算能力的使命,CANN的全稱為昇騰神經網路計算架構(Compute Architecture for Neural Networks)
    • 從框架的角度看,CANN支援TF、Pytorch、MindSpore等主流框架,它通過框架適配外掛(Adapter)和AscendIR中間表示隔離了上層框架的差異。
    • 從硬體的角度看,CANN對使用者遮蔽了不同晶片上的硬體差異,使用者也無需關注硬體上的具體實現,學習使用CANN提供的統一程式設計介面AscendCL直接進行推理開發。
    • 從執行的角度看,CANN將上層框架提供的計算圖和訓練任務轉化為可執行在硬體上的具體指令。這過程中包括了對計算圖的編譯和融合優化、資料流的處理與管理、任務的排程和執行時管理等等。
    • 從元件的角度看,CANN維護了高效能運算元庫來保障訓練過程的高效。使用者也可以通過DSL或TIK的方式進行自定義運算元的開發。
    • 而從架構本身的角度看,CANN被自頂向下的拆分為了 昇騰計算語言介面、服務層、編譯層、執行層、基礎層,後續將會展開介紹。
  • 框架層:深度學習框架是重要的AI基礎設施,它提供的功能主要包括三個:統一的API介面、自動微分和排程優化。這三者也對應了衡量深度學習框架的三個指標:表達能力、易用性和效能。
    • 華為推出了深度學習框架MindSpore,採用基於原始碼轉換的自動微分機制、基於IR的編譯優化和基於張量重排布的自動並行,具有較好的框架能力。
    • 從元件的角度看,MindSpore的許多能力其實與CANN內部的能力是相同的,只是展開的視角不同,作用域也不同。同樣是Runtime,Mindspore就需要考慮在gpu cpu npu等多硬體後端執行的情況。
    • 從使用的角度看,MindSpore還提供了動靜態圖快速轉換(通過set_context切換)和小的優化feature(如二階優化)。
    • MindSpore也積極探索了一些前沿的框架能力,例如可以增強模型可信度並實現隱私保護的mindArmour、實現服務化部署的mindspore serving等等。
    • 昇騰軟硬體體系也相容pytorch tensorflow等第三方框架,經過遷移後可執行在昇騰晶片上。
  • 應用層:AI產業的進一步發展需要綜合考慮其商業模式,標準化是行業發展的下一重點。除了從技術測對軟硬體體系進行標準化,作為一個解決方案提供商,如何將演算法服務標準化、工作流程標準化、基礎平臺標準化,才是真正讓AI賦能百業的重點。
    • 演算法服務標準化:一方面提供官方的開原始碼倉庫modelzoo,其中包含模型指令碼和預訓練模型;另一方面直接提供封裝好的mindx sdk,提供特定場景下的標準化服務。此外HiAI Service提供了適用於端側場景的服務平臺,通過呼叫API來使用AI能力。
    • 工作流程標準化:AI更多的是一種技術 而非產業,客戶場景也多是長尾場景。將AI演算法的生產流程進行標準化,讓使用者自行完成資料處理、模型開發訓練 部署、運維的全流程,或許是AI公司擺脫外包公司定位的關鍵路徑。華為也開發了modelarts一站式AI開發平臺來滿足企業使用者的需求。 
    • 基礎平臺標準化:算力機器如果不能被很好的組織會造成巨大的資源浪費。華為提供的MindX DL提供了基於k8s的昇騰裝置管理機制和叢集排程機制,MindX Edge提供了容器式部署和邊緣節點管理的能力。分別從訓練和推理的場景進行基礎資源平臺的標準化建設。
  • 工具層:軟體層、框架層和應用層其實也對應著昇騰軟硬體體系的三個主要使用場景:運算元開發、模型開發、應用開發。圍繞著這三個場景,華為推出了一系列的生態工具並整合到了統一的IDE中,取名為MindStudio
    • mindstudio是基於IntelliJ的IDE工具,提供了高亮、程式碼補全、自動提示等常見IDE功能
    • 針對訓練場景提供了 指令碼自動遷移、精度比對、效能調優、模型轉化、模型量化、訓練視覺化 等多種輔助工具;
    • 針對運算元開發提供了 Cube運算元自動調優、模擬除錯調優等自動能力。
    • 針對應用開發場景,MindStudio聯合FusionDirector、SmartKit等工具,實現了部署場景的協同管控,能夠進行實時的模型部署、裝置管理、日誌採集等能力。
  • 行業應用層:一切不能賺錢的產品都是在耍流氓,全套的軟硬體平臺需要落到垂直行業企業客戶的實際場景中才能真正的驗證價值。
    • 華為目前做的主要還是toG和to大B的專案,除了遠近聞名的“彭城雲腦Ⅱ”超算中心,華為主打的三個解決方案集中在智慧能源、智慧交通和智慧工業三個場景,還是很有想象空間的。

    

研究生階段始終受華為糟糕的使用者體驗摧殘,但我也不得不傾佩華為的戰略高度和全域性建設能力。

自從特斯拉的Andrej Karpathy提出 軟體2.0 以來,國內外就未停止過炒作和質疑。我們期待著AI Everywhere,我們也期待著AI模型服務能融入到微服務體系架構中,甚至產生出 以資料為驅動的下一代軟體工程和程式設計方式。

提前備好糧食和彈藥,撐住即將到來的AI寒冬,期待那一天的到來。

 

相關文章