「無 AI,不科技」。在AI 產(chǎn)業(yè)逐步落地成熟的今天,AI 人才的爭奪戰(zhàn)已打響,甚至有不少網(wǎng)友預(yù)測,未來AI 開發(fā)將成為人人必備的技能之一。不過,現(xiàn)實(shí)來看,無論是 AI 三駕馬車中的數(shù)據(jù)、算力、算法,還是細(xì)分而論的深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)處理與統(tǒng)計(jì)、神經(jīng)網(wǎng)絡(luò)等,每一項(xiàng)技術(shù)的入門都需要花費(fèi)大量的時間進(jìn)行研究與實(shí)踐,這無疑也對新時代下的開發(fā)者們提出了更高的挑戰(zhàn)。
時下,為了助力高校人工智能領(lǐng)域人才培養(yǎng)及學(xué)科建設(shè),并為業(yè)界百萬的AI 專業(yè)人才缺口提供可持續(xù)性地輸入,作為走在技術(shù)前沿的科技巨頭華為,特發(fā)起《華為昇騰師資培訓(xùn)沙龍》系列活動,面向廣大高校教師提供昇騰全棧全場景AI技術(shù)知識點(diǎn)培訓(xùn),通過理論講解和案例實(shí)操,希望能夠更好地幫助未來的開發(fā)者群體降低 AI的入門門檻,也讓智能無所不及。
日前,在昇騰師資培訓(xùn)沙龍·武漢場上,華為武漢研究所所長張繼超表示,百萬級AI 人才缺口的當(dāng)下,AI 生態(tài)的構(gòu)建不僅需要產(chǎn)業(yè)界的合作,同時也需要高校強(qiáng)有力的人才培養(yǎng)支持,華為將基于“沃土計(jì)算”2.0 計(jì)劃與眾多高校合作,構(gòu)建智能基座。同時,華為也將秉持硬件開放,軟件開源初心,使能合作伙伴。
華為武漢研究所所長 張繼超
武漢理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院院長熊盛武表示,在教育部、國家發(fā)展改革委、財(cái)政部印發(fā)的《關(guān)于“雙一流”建設(shè)高校促進(jìn)學(xué)科融合 加快人工智能領(lǐng)域研究所培養(yǎng)的若干建議》下,武漢理工大學(xué)實(shí)現(xiàn)了“兩融合”即教科產(chǎn)融合和多學(xué)科融合,建設(shè)三院一體,以人工智能理論及算法為基礎(chǔ),服務(wù)于智能網(wǎng)聯(lián)汽車、人工智能船舶與智能化長江航運(yùn)、智能機(jī)器人與人工智能裝備、康復(fù)機(jī)器人、人工智能新材料五大應(yīng)用方向。
武漢理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院院長 熊盛武
華為昇騰生態(tài)發(fā)展部部長劉鑫認(rèn)為 AI 作為新的通用目的技術(shù)(GPT),將深刻推動社會發(fā)展進(jìn)程。人工智能與任何行業(yè)的結(jié)合均可以催生一個新的產(chǎn)業(yè)誕生,本質(zhì)上,人工智能的最終比拼的是科研能力和人才培養(yǎng)。在華為的 AI 戰(zhàn)略中,高校生態(tài)是華為 AI 戰(zhàn)略的關(guān)鍵組成部分,其構(gòu)建昇騰知識體系,與高校聯(lián)合課程開發(fā),支撐專業(yè)必修課的改革,幫助更多的高校基于鯤鵬和昇騰進(jìn)行教學(xué)。
華為昇騰生態(tài)發(fā)展部部長 劉鑫
人工智能時代已至
在為期兩天的沙龍活動中,尤其值得開發(fā)者關(guān)注的是,在以 AI 戰(zhàn)略賦能行業(yè) AI 能力的同時,圖靈解決方案架構(gòu)師符秋杰也帶來了《華為昇騰AI處理器架構(gòu)》的主題分享,從華為AI 全棧解決方案、AI 處理器的軟硬件架構(gòu)及應(yīng)用維度出發(fā),全面剖析華為AI 強(qiáng)大計(jì)算力背后的技術(shù)。
圖靈解決方案架構(gòu)師 符秋杰
接下來,我們將一探華為全棧全場景 AI 解決方案背后的那些“秘密”硬核技術(shù)。
華為 AI 全棧解決方案全解析
還記得在第三屆HUAWEI CONNECT 2018(華為全聯(lián)接大會)上,首次發(fā)布華為 AI 戰(zhàn)略與全棧全場景AI 解決方案,其中包含全球首個覆蓋全場景人工智能的華為 Ascend(昇騰)系列處理器以及基于華為Ascend(昇騰)全棧技術(shù)的產(chǎn)品和云服務(wù)。
從技術(shù)角度來看,華為 AI全棧解決方案圍繞端、邊、云進(jìn)行了全面的布局,主要可分為四大層面:
芯片層:Ascend處理器采用了面向張量計(jì)算的達(dá)芬奇架構(gòu),通過獨(dú)創(chuàng)的16*16*16的3D Cube設(shè)計(jì),每時鐘周期可以進(jìn)行4096個16位半精度浮點(diǎn)MAC運(yùn)算,為人工智能提供強(qiáng)大的算力支持?;诮y(tǒng)一的達(dá)芬奇架構(gòu),可以支持Ascend-Nano、Ascend-Tiny、Ascend-Lite、Ascend-Mini、Ascend-Max等芯片規(guī)格,具備從幾十毫瓦IP到幾百瓦芯片的平滑擴(kuò)展,天然覆蓋了端、邊、云的全場景部署的能力。
芯片使能層:其核心部分為CANN ,在2020年8月10日的HAI大會上華為重點(diǎn)發(fā)布了CANN3.0,統(tǒng)一了編程架構(gòu),支持多種計(jì)算架構(gòu)和計(jì)算體系,支持后向兼容,具備極強(qiáng)的伸縮性和適應(yīng)性,做到了端邊云全場景協(xié)同。CANN3.0包含芯片算子庫、高度自動化算子開發(fā)工具、TBE 算子開發(fā)方式等多項(xiàng)內(nèi)容。
框架層:2020年3月份,華為開源了支持全場景AI計(jì)算的框架MindSpore,其具有自主知識產(chǎn)權(quán),核心優(yōu)勢可以降低 20% 核心代碼,開發(fā)效率能提升50%,因其開源的特性,MindSpore 也擁有豐富的生態(tài)資源,同時兼容主流的TensorFlow、PyTorch、PaddlePaddle 等框架。
應(yīng)用層:作為一站式 AI 開發(fā)平臺,ModelArts 覆蓋機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)應(yīng)用全流程,它支持零AI 基礎(chǔ)編碼、可視化、秒級調(diào)度,能夠幫助開發(fā)者快速定制化 AI 模型。
華為 AI 全棧解決方案
昇騰 AI 處理器硬件架構(gòu)
在硬件層面上,華為于 2018年發(fā)布了推理AI處理器Ascend 310,2019年發(fā)布了訓(xùn)練 AI 處理器Ascend910。
時下,Ascend310 常被用于推理場景中,其整數(shù)精度為 16 Tera-OPS,功耗 8W,制程為 12nm。相比之下,訓(xùn)練場景中處理器Ascend 910,整數(shù)精度為 512 Tera-OPS,功耗為 310W,制程是7nm。
彼時,Ascend910帶著“全球已發(fā)布的單芯片計(jì)算密度最大的 AI 芯片”、 以及Ascend 310作為“面向計(jì)算場景最強(qiáng)算力的 AI SoC” 光環(huán)面世,那么,它們在硬件上究竟是如何實(shí)現(xiàn)的,軟件上又有哪些技術(shù)領(lǐng)先性?
Ascend 310 硬件邏輯架構(gòu)
細(xì)分來看,Ascend310 硬件邏輯架構(gòu)由五大核心構(gòu)成:
Ascend 310硬件邏輯架構(gòu)圖
AICore:作為昇騰 AI 芯片的計(jì)算核心,AI Core 負(fù)責(zé)執(zhí)行矩陣、向量、標(biāo)量計(jì)算密集的算子任務(wù)。Ascend 310 集成了2 個 AI Core。
ARMCPU:Ascend 310 -集成了8個 ARM A55處理器。A55 主要分為兩個部分,一部分為 AI CPU,負(fù)責(zé)執(zhí)行不適合跑在AI Core上的算子(承擔(dān)非矩陣類復(fù)雜計(jì)算);一部分部署為專用于控制芯片整體運(yùn)行的控制CPU。兩類任務(wù)占用的CPU核數(shù)可由軟件根據(jù)系統(tǒng)實(shí)際運(yùn)行情況動態(tài)分配。
DVPP:在音視頻編解碼方面,Ascend 310 內(nèi)部搭載了 DVPP 數(shù)字視覺預(yù)處理模塊,進(jìn)行編解碼、壓縮等預(yù)處理操作。
Cache&Buffer:如果想要支撐 AI CPU和控制 CPU的正常工作,當(dāng)然也離不開 Cache&Buffer 模塊。其中,SoC片上有8MB L2 buffer,專用于AI Core、AI CPU,提供高帶寬、低延遲的memory訪問。芯片還集成了LPDDR4x控制器,為芯片提供更大容量的DDR內(nèi)存。
互連總線:Ascend 310 不僅支持PCIE3.0、RGMII、USB3.0等高速接口,也支持GPIO、UART、I2C、SPI等低速接口。
Ascend 910硬件邏輯架構(gòu)
Ascend 910 具備領(lǐng)先性,不僅是因?yàn)樗闪?32 個 AI Core,而且它的 CPU 也有增強(qiáng),使用的是 16個TaishanV110 Core(4個Core構(gòu)成一個Cluster)。
Ascend 910硬件邏輯架構(gòu)圖
在 TS CPU 層面,Ascend 910 除了有一個 4 核的 A55 Cluster作為軟核 之外,還有一個HardwareTS,專門給AI Core 使用。簡而言之,軟硬核結(jié)合模式為性能帶來極大地提升。
相比 Ascend310,在 SoC片上,Ascend 910存儲有所不同,除了擁有64 MB L2 buffer之外,Virtruvian還連接了4個HBM 2.0顆粒。另外,Ascend910 的 Nimbus 部分集成了 1 個A53 CPU核,用來執(zhí)行啟動、功耗控制等硬件管理任務(wù)。在硬件上,這相當(dāng)于是黑匣子功能,不僅可以提供軟件異常定位手段,而且可以記錄硬件異常場景的關(guān)鍵信息。
值得注意的是,通過兩張架構(gòu)圖的對比,我們也不難看出 Ascend 310 和 Ascend 910 實(shí)際上是共架構(gòu)。即它們的 SoC 只有處理器版本,以及 AI Core、計(jì)算單元、存儲單元、帶寬資源的不同,其他任務(wù)功能都非常類似。
那么,這個共同的架構(gòu)——DaVinci達(dá)芬奇架構(gòu),它的內(nèi)部構(gòu)成又是什么樣的呢?別急,我們將一探究竟。
Da Vinci達(dá)芬奇架構(gòu)
對于達(dá)芬奇架構(gòu)的工作機(jī)制,通過上圖,我們可進(jìn)行速覽。首先通過總線接口單元(內(nèi)置高速總線),將數(shù)據(jù)搬到輸入緩沖區(qū),進(jìn)而基于存儲轉(zhuǎn)換單元分別將左右矩陣填滿,再送入矩陣乘加的累加器運(yùn)算,運(yùn)算結(jié)果判斷是否需要做ReLu,如果需要 ReLu,送入向量計(jì)算單元隨路處理,并將最終結(jié)果回傳到輸出緩沖區(qū)。
在該過程中,DaVinci Core內(nèi)部被細(xì)分成很多單元,其中有三個重要部分:計(jì)算單元、存儲系統(tǒng),控制單元。
計(jì)算單元
計(jì)算單元又包含了三種基礎(chǔ)計(jì)算資源,分別為矩陣計(jì)算單元、向量計(jì)算單元和標(biāo)量計(jì)算單元,而它們對應(yīng)的是矩陣、向量和標(biāo)量三種常見的計(jì)算模式。
矩陣計(jì)算單元
在達(dá)芬奇架構(gòu)中,矩陣計(jì)算單元和累加器主要完成矩陣相關(guān)運(yùn)算。一拍完成一個fp16 的 16x16 與 16x16 矩陣乘(4096),如果是int8輸入,則一拍完成 16*32 與32*16 矩陣乘(8192)。
向量計(jì)算單元
向量計(jì)算單元主要包含F(xiàn)P16/FP32/Int32/Int8等數(shù)據(jù)類型的計(jì)算。一拍可以完成兩個128長度fp16類型的向量相加/乘, 或者64個fp32/int32類型的向量相加/乘。
標(biāo)量計(jì)算單元
標(biāo)量計(jì)算單元相當(dāng)于一個微型 CPU,控制整個 AI Core 的運(yùn)行,完成整個程序的循環(huán)控制、分支判斷,可以為Cube/Vector 提供數(shù)據(jù)地址和相關(guān)參數(shù)的計(jì)算,以及基本的算術(shù)運(yùn)算。
簡而言之,標(biāo)量計(jì)算單元非常靈活,向量計(jì)算單元相對高效,矩陣計(jì)算單元具有高密性的計(jì)算。
存儲系統(tǒng)
AI Core 的存儲系統(tǒng)由存儲單元和相應(yīng)的數(shù)據(jù)通路構(gòu)成,即可以把片外資源和片內(nèi)資源形成一個通路。在存儲單元部分,由存儲控制單元、緩沖區(qū)和寄存器組成。其中輸入緩沖區(qū)用來暫時保留需要頻繁重復(fù)使用的數(shù)據(jù),不需要每次都通過總線接口到AI Core的外部讀取,從而在減少總線上數(shù)據(jù)訪問頻次的同時也降低了總線上產(chǎn)生擁堵的風(fēng)險,達(dá)到節(jié)省功耗、提高性能的效果;而輸出緩沖區(qū),可以用來用來存放神經(jīng)網(wǎng)絡(luò)中每層計(jì)算的中間結(jié)果,從而在進(jìn)入下一層計(jì)算時方便地獲取數(shù)據(jù)。這也是該存儲系統(tǒng)的兩大優(yōu)勢所在。
控制單元
控制單元的作用就是為了保證整個片上的資源得到一個最優(yōu)的性能。它主要由系統(tǒng)控制模塊、指令緩存、標(biāo)量指令處理隊(duì)列、指令發(fā)射模塊、矩陣運(yùn)算隊(duì)列、向量運(yùn)算隊(duì)列、存儲轉(zhuǎn)換隊(duì)列和事件同步模塊構(gòu)成。
昇騰 AI 處理器軟件架構(gòu)
昇騰 AI 處理器的軟件為硬件性能提升打下了扎實(shí)的基礎(chǔ),且為開發(fā)者提供了計(jì)算資源、性能調(diào)優(yōu)等運(yùn)行框架以及功能豐富的工具。從昇騰 AI 處理器軟件邏輯架構(gòu)方面,可將其分為三層:
計(jì)算資源層,主要是實(shí)現(xiàn)系統(tǒng)對數(shù)據(jù)的處理和對數(shù)據(jù)的運(yùn)算執(zhí)行。
在計(jì)算資源層中,有幾類不同的可執(zhí)行的硬件單元,如 AICore,可執(zhí)行 NN 類算子;AI CPU,可執(zhí)行CPU算子;DVPP,可進(jìn)行視頻/圖像編解碼、預(yù)處理。除了計(jì)算設(shè)備之外,其實(shí)還有通信鏈路的存在。從上文可知,昇騰處理器其實(shí)是共架構(gòu)的,而這不僅是芯片架構(gòu)是公共的,在訓(xùn)練和推理的軟件架構(gòu)也是一致的,因此,雖然在面向不同場景處理器所執(zhí)行的邏輯不同,但是在設(shè)計(jì)整個架構(gòu)時,華為進(jìn)行了統(tǒng)一,由此在計(jì)算資源層也加入了PCle、HCCS、RoCE通信鏈路。
芯片使能層,實(shí)現(xiàn)解決方案對外能力開放,以及基于計(jì)算圖的業(yè)務(wù)流的控制和運(yùn)行。
這實(shí)際上是對應(yīng)的是上文提到的 CANN 3.0,包含了開放編程框架AscendCL 昇騰計(jì)算語言庫,其提供Device/Context/Stream/內(nèi)存等的管理、模型及算子的加載與執(zhí)行、媒體數(shù)據(jù)處理、Graph管理等API庫,供用戶開發(fā)深度神經(jīng)網(wǎng)絡(luò)應(yīng)用;圖優(yōu)化和編譯;算子編譯和算子庫,其中算子庫有兩種,一種是CCE,一種是 TBE;數(shù)字視覺預(yù)處理;以及執(zhí)行引擎等能力。
應(yīng)用層,包括基于 Ascend 平臺開發(fā)的各種應(yīng)用,以及 Ascend 提供給用戶進(jìn)行算法開發(fā)、調(diào)優(yōu)的應(yīng)用類工具。
在華為 AI 全棧的軟件解決方案上,昇騰AI 處理器的軟件架構(gòu)由若干子系統(tǒng)組成,如:
ACL 子系統(tǒng):提供Device管理、Context管理、Stream管理、內(nèi)存管理、模型加載與執(zhí)行、算子加載與執(zhí)行、媒體數(shù)據(jù)處理等C++ API庫供用戶開發(fā)深度神經(jīng)網(wǎng)絡(luò)應(yīng)用,通過加載模型推理實(shí)現(xiàn)目標(biāo)識別、圖像分類等功能;
GE 子系統(tǒng):GE作為圖編譯和運(yùn)行的控制中心,提供運(yùn)行環(huán)境管理、執(zhí)行引擎管理、算子庫管理、子圖優(yōu)化管理、圖操作管理和圖執(zhí)行控制。
FE子系統(tǒng):為了業(yè)務(wù)的編排,抽象出執(zhí)行引擎FE。它是一個邏輯概念,里面分三個部件:控制引擎、計(jì)算引擎、IO引擎,每個部件中都包含有算子庫。
AICPU子系統(tǒng):主要提供了AICPU算子編譯(部署在Host)和AICPU(部署在Device)兩大功能。其中Host 是指昇騰AI處理器所在硬件設(shè)備相連的x86服務(wù)器、ARM服務(wù)器或者 WindowsPC。Device是指集成了昇騰 AI 處理器的設(shè)備。Host和Device可以在一個硬件實(shí)體上,也可以分布在不同的硬件實(shí)體上,此處是邏輯概念。
HCCL子系統(tǒng):集合通信對外提供集合通信算子,支持網(wǎng)卡及集群不同節(jié)點(diǎn)間的RoCE 傳輸功能,為分布式訓(xùn)練中不同 NPU 之間提供高效的數(shù)據(jù)傳輸能力。
TBE子系統(tǒng):提供了基于TVM 框架的自定義算子開發(fā)能力,通過TBE提供的API和自定義算子編程開發(fā)界面可以完成相應(yīng)神經(jīng)網(wǎng)絡(luò)算子的開發(fā)。
Runtime&TS 子系統(tǒng):Runtime 為神經(jīng)網(wǎng)絡(luò)的任務(wù)分配提供了資源管理通道;TS 負(fù)責(zé)將 Runtime 分發(fā)的具體任務(wù)進(jìn)一步分發(fā)到 AICPU 上。
DVPP子系統(tǒng):數(shù)字視覺預(yù)處理模塊(DVPP)作為整個軟件流執(zhí)行過程中的編解碼和圖像轉(zhuǎn)換模塊,為神經(jīng)網(wǎng)絡(luò)發(fā)揮著預(yù)處理輔助功能。
在應(yīng)用開發(fā)實(shí)踐中,開發(fā)流程具體可參考如下:
華為旨在為開發(fā)者打破 AI壁壘,幫助業(yè)界構(gòu)筑更強(qiáng) AI 算力平臺
對于想要入門 AI 的開發(fā)者及從業(yè)者而言,可以通過MindX DL深度學(xué)習(xí)和MindX Edge智能邊緣等平臺,結(jié)合 Atlas 200、Atlas 200DK(開發(fā)者套件)、Atlas 900 AI訓(xùn)練集群等AI解決方案能夠?qū)崿F(xiàn)快速上手。與此同時,華為還推出了支撐全流程開發(fā)的工具鏈 MindStudio,方便更多的開發(fā)者進(jìn)行算子開發(fā)、模型訓(xùn)練與模型推理等應(yīng)用開發(fā)。
如果覺得內(nèi)容還沒有吃透,亦或是想要了解更多華為昇騰相關(guān)技術(shù)實(shí)踐,別擔(dān)心,“華為昇騰師資培訓(xùn)沙龍”還將在上海、南京、成都分別展開,歡迎點(diǎn)擊鏈接https://bss.csdn.net/m/topic/hwst_live,即刻報(bào)名。
分享到微信 ×
打開微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。