華爲Atlas人工智能計算平臺概述

人工智能的四大要素:數據、算力、算法、場景

AI芯片:也被稱爲AI加速器,即專門用於處理人工智能應用中的大量計算任務的功能模塊。

AI芯片分類

從技術架構來看,大致分爲四個類型:CPU、GPU、ASIC、FPGA。之前的博客中都有提到,這裏不做介紹。

從業務應用來看,可以分爲Training(訓練)和Inference(推理)兩個類型:

訓練環節通常需要通過大量的數據輸入,或者採取增強學習等非監督學習方法,訓練出複雜的深度神經網絡模型,訓練過程中,涉及到海量的訓練數據和複雜的深度神經網絡結構,運算量巨大,需要龐大的計算規模,對於處理器的計算能力,精度、可擴展性等性能要求很高,常用的例如:英偉達的GPU集羣、Google的TPU(張量處理單元)等。

推理環節指利用訓練好的模型,使用新的數據去推理出各種結論,比如視頻監控設備通過後臺的深度神經網絡模型,判斷一張抓拍的人臉是否屬於特定的目標,雖然推理的計算量相比於訓練環節要少很多,但是仍然會設計到很多的運算,在推理環節,GPU、FPGA和ASIC都有很多的應用價值。

所以說對於人工智能來說,對算力的要求很高。

AI芯片的現狀

CPU:早期的計算機性能會隨着摩爾定律逐年穩步提升;後來摩爾定律失效,就通過增加核數提升性能,但是功耗和成本會增加;後來就通過修改架構的方式來提升AI性能,比如在複雜指令集架構中加入AVX512等指令,在ALU計算模塊加入矢量運算模塊(FMA),或者是在精簡指令集架構中加入Cortex A等指令集並計算持續升級;然後通過提高頻率來提升性能,但是提升空間有限,高主頻會導致芯片出現功耗過大和過熱的問題。

GPU:在矩陣計算和並行計算上具有突出的性能,異構計算的主力,早期被作爲深度學習的加速芯片進入AI淋雨,並且,生態成熟(最早是爲了遊戲)

英偉達沿用了GPU的架構,在這個基礎上,在蛇毒學習的兩個方向上發力,一個方向是豐富生態,在這個方向上推出了cuDNN針對神經網絡的優化庫,提升易用性並優化GPU底層架構;另一個方向就是提升定製性,增加多數據類型支持,不再是隻堅持float32了,還增加了int8等數據類型,還添加了深度學習專用模塊,(如引入並配置了張量核的改進型架構,V100的TensorCore)

對於GPU來說,當前存在的主要問題就是成本高、能耗比低、延遲高。

TPU(Tensor Processing Unit)

谷歌從2006年起致力於將ASIC的設計理念應用到神經網絡領域,發佈了支持深度學習開源框架TensorFlow的人工智能定製芯片TPU(Tensor Processing Unit)。

利用大規模脈動陣列結合大容量片上存儲來高效加速深度神經網絡中最爲常見的卷積運算:脈動陣列可用來優化矩陣乘法和卷積運算,以達到提供更高算力和更低能耗的作用。

FPGA

採用HDL可編程方式,靈活性高,可以進行重構,可深度定製。

可以通過多片FPGA聯合將DNN模型加載到片上進行低時延計算,計算性能優於GPU,但由於需要考慮不斷的擦寫的過程,性能達不到最優(冗餘晶體管和連線,相同功能邏輯電路佔芯片面積更大)。

由於可以重構,供貨風險和研發風險較低,成本取決於購買的數量,相對自由。

設計、流片過程解耦,開發週期較長(通常半年),門檻高。

昇騰AI處理器

NPU(Neural-Network Processing Unit,神經網絡處理器):在電路層模擬人類神經元和突觸,並且用深度學習指令集直接處理大規模的神經元和突觸,一條指令完成一組神經元的處理。

NPU的典型代表-----華爲昇騰AI芯片(Ascend)、寒武紀芯片、IBM的TrueNorth。

對於華爲公司的昇騰AI芯片主要有兩款,昇騰310和昇騰910.

對於昇騰310來說,主要用於推理應用,昇騰910主要用於訓練,二者的功耗也有一定的差異,如下圖所示,

昇騰芯片硬件架構

昇騰芯片硬件架構由昇騰AI處理器邏輯架構和以及達芬奇架構。

昇騰處理器邏輯架構

昇騰AI處理器的主要架構組成:

1.芯片系統控制CPU

2.AI計算引擎(包括AI Core和AI CPU)

3.多層級的片上系統緩存(Cache)或緩衝區(Buffer)

4.數字數據預處理模塊(Digital Vision Pre-Processing,DVPP)等

如下圖所示是昇騰AI處理器的邏輯架構

昇騰AI計算引擎---達芬奇架構

昇騰AI處理器的四大主要架構之一是AI計算引擎,AI計算引擎有包含了AI core (達芬奇架構)和AI CPU。因此達芬奇架構這一專門爲AI算力提升所研發的架構 也就是昇騰AI計算引擎和AI處理器的核心所在。

 達芬奇架構主要部分:

1.計算單元: 包含三種基礎計算資源(矩陣計算單元、向量計算單元、標量計算單元)

計算單元會跟傳統的CPU和GPU有一定的區別,它包含了三種基礎計算資源,將不同的數據類型放到不同的計算資源裏面,最大化的提升計算力度。

2. 存儲系統: AI Core的片上存儲單元和相應的數據通路構成了存儲系統。

3. 控制單元:整個計算過程提供了指令控制,相當於AI Core的司令部,負責整個AI Core的運行。

達芬奇架構(AI Core)— 計算單元

計算單元裏包含三種基礎計算資源,分別是:Cube Unit、Vector Unit和Scalar Unit,分別對應矩陣、向量和標量三種常見的計算模式。

1. 矩陣計算單元:矩陣計算單元和累加器主要完成矩陣相關運 算。一拍完成一個fp16的 16x16與16x16矩陣乘(4096); 如果是int8輸入,則一拍完成 16*32 與 32*16 矩陣乘 (8192);如圖像數據。

2.向量計算單元:實現向量和標量,或雙向量之間的計算,功 能覆蓋各種基本的計算類型和許多定製的計算類型,主要包 括FP16/FP32/Int32/Int8等數據類型的計算; 如一維。

3. 標量計算單元:相當於一個微型CPU,控制整個AI Core的運 行,完成整個程序的循環控制、分支判斷,可以爲 Cube/Vector提供數據地址和相關參數的計算,以及基本的 算術運算,如個位的數字。

達芬奇架構(AI Core)— 存儲系統


1.存儲系統由存儲單元和相應的數據通路,構成了AICore的存儲系統
2.存儲單元由存儲控制單元、緩衝區和寄存器組成 

3. 數據通路:是指AICore在完成一次計算任務時,數據在AICore中的流通路徑。

達芬奇架構數據通路的特點是多進單出,主要是考慮到神經網絡在計算過程中,輸入的數據種類繁多並且數量巨大, 可以通過並行輸入的方式來提高數據流入的效率。與此相反,將多種輸入數據處理完成後往往只生成輸出特徵矩陣, 數據種類相對單一,單輸出的數據通路,可以節約芯片硬件資源。
 

昇騰芯片的軟件架構,

 

昇騰芯片的軟件架構,包括:昇騰AI處理器軟件的邏輯架構以及昇騰AI 處理器神經網絡軟件流。

昇騰AI處理器軟件的邏輯架構可以分爲四層,分別是L3應用使能層、 L2執行框架層、 L1芯片使能層和 L0計算資源層,如下圖所示,

 L3應用使能層:是應用級封裝,面向特定的應用領域,提供不同的處理算法。爲各種領域提供具有計算和處 理能力的引擎可以直接使用下一層L2執行框架提供的框架調度能力,通過通用框架來生成相應的神經網絡而 實現具體的引擎功能。 ( 通用引擎:提供通用的神經網絡推理能力; 計算機視覺引擎:提供視頻或圖像處理的算法封裝;  語言文字引擎:提供語音、文本等數據的基礎處理算法封裝)

 L2執行框架層:是框架調用能力和離線模型生成能力的封裝。L3層將應用算法開發完並封裝成引 擎後,L2層會根據相關算法的特點進行合適深度學習框架的調用(如Caffe或TensorFlow),來得到 相應功能的神經網絡,再通過框架管理器生成離線模型。L2層將神經網絡的原始模型轉化成可在 昇騰AI芯片上運行的離線模型後,離線模型執行器將離線模型傳送給L1芯片使能層進行任務分配。

 L1芯片使能層:是離線模型通向昇騰AI芯片的橋樑。針對不同的計算任務,L1層通過加速庫 (Library)給離線模型計算提供加速功能。L1層是最接近底層計算資源的一層,負責給硬件輸出算 子層面的任務。

 L0計算資源層:是昇騰AI芯片的硬件算力基礎,提供計算資源,執行具體的計算任務。

昇騰AI處理器神經網絡軟件流

昇騰AI處理器神經網絡軟件流,是深度學習框架到昇騰AI芯片之間的一座橋樑,完成 一個神經網絡應用的實現和執行,並聚集了如下幾個功能模塊。
1.流程編排器:負責完成神經網絡在昇騰AI芯片上的落地與實現,統籌了整個神經網絡生 效的過程,控制離線模型的加載和執行過程;
2. 數字視覺預處理模塊:在輸入之前進行一次數據處理和修飾,來滿足計算的格式需求;
3. 張量加速引擎:作爲神經網絡算子兵工廠,爲神經網絡模型源源不斷提供功能強大的 計算算子;
4. 框架管理器:專門將原始神經網絡模型打造成昇騰AI芯片支持的形態,並且將塑造後的 模型與昇騰AI芯片相融合,引導神經網絡運行並高效發揮出性能;
5. 運行管理器:爲神經網絡的任務下發和分配提供了各種資源管理通道;

6. 任務調度器:作爲一個硬件執行的任務驅動者,爲昇騰AI芯片提供具體的目標任務;運 行管理器和任務調度器聯合互動,共同組成了神經網絡任務流通向硬件資源的大壩系統, 實時監控和有效分發不同類型的執行任務。

它們之間的邏輯關係如下圖所示

數字通過數字視覺預處理模塊進入到框架管理器,框架管理器將塑造好的魔心和芯片融合,接着通過運行管理器來下發人物,分配一些資源管理通道,進入任務調度器,任務調度器分發不同類型的執行任務,最後交給昇騰AI處理器。

昇騰AI處理器數據流程圖的一個典型應用就是人臉識別推理應用,

首先是Camera數據採集和處理 ,從攝像頭傳入壓縮視頻流,,通過PCIE存儲值DDR內存中。 DVPP將壓縮視頻流讀入緩存。  DVPP經過預處理,將解壓縮的幀寫入DDR內存。

接着對數據進行推理,通過 任務調度器(TS)向直接存儲訪問引擎(DMA)發送指令,將AI資源從DDR預加載到片上緩衝區。 任務調度器(TS) 配置AI Core以執行任務。 AI Core工作時,它將讀取特徵圖和權重並將結果寫入DDR或片上緩衝區。

最後 進行人臉識別結果輸出 , AI Core完成處理後,發送信號給任務調度器(TS),任務調度器檢查結果,如果需要會分配另一個任務, 並返回之前的步驟 。 當最後一個AI任務完成,任務調度器(TS)會將結果報告給Host。

Atlas人工智能計算平臺全景

芯片和硬件是最底層的部分,像芯片,和一些其他的部件。

CANN:基於昇騰AI處理器的芯片算子庫和高度自動化算子開發工具,兼具最優開發效率和算子最佳匹配昇騰芯片性能。

框架:各種開發框架,需要被使用,華爲的開發框架是MindDpore

應用使能:主要是智能邊緣平臺、深度學習的平臺,還包含了一些集羣的管理等。

對於Atals加速AI推理模塊方面,華爲推出了以下幾款基於昇騰310AI處理器的產品,

 

Atlas 200DK和Atlas 200是比較初級的設備,用於一些小型的推理應用,可以在一臺筆記本上搭建開發環境,本地獨立環境成本比較低,對於一些研究者,可以進行一些本地開發和雲端訓練,對於創業者來說,可以提供一些代碼級Demo,可以基於一些參考架構,完成算法的功能,對於一些商品產品進行無縫遷移;Atlas 300是業界最高密度的64路的視頻推理加速卡,可應用的場景非常多,比如高清視頻實時分析,語音識別,醫療影像分析;Atlas 500 是智能小站,可以完成一些實時的數據流的處理,Atlas 800是基於鯤鵬處理器的超強算例的AI推理平臺。

對於Atals加速AI訓練模塊方面,華爲推出了以下幾款基於昇騰910AI處理器的產品,

Atlas 900 AI集羣是全球最快的AI訓練集羣,算力是業界領先,擁有極致散熱系統。

Atlas深度學習系統加速AI模型訓練,構建豐富應用,端邊雲協同,打造極致開發、使用體驗。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章