深度解讀達芬奇架構:華為AI芯片的“秘密武器”
2019年6月,華為發布全新8系列手機SoC芯片麒麟810,首次採用華為自研達芬奇架構NPU,實現業界領先端側AI算力,在業界公認的蘇黎世聯邦理工學院推出的AI Benchmark榜單中,搭載麒麟810的手機霸榜TOP3,堪稱華為AI芯片的“秘密武器”,這其中華為自研的達芬奇架構舉足輕重。
2019年8月20日數據
那麼,達芬奇架構AI實力究竟怎麼樣?一起來深入了解下。
源起:為什麼要做達芬奇架構?
華為預測,到2025年全球的智能終端數量將會達到400億台,智能助理的普及率將達到90%,企業數據的使用率將達到86%。可以預見,在不久的將來,AI將作為一項通用技術極大地提高生產力,改變每個組織和每個行業。
基於這樣的願景,華為在2018全聯接大會上提出全棧全場景AI戰略。作為重要的技術基礎,AI芯片在其中發揮著重要作用,而華為也基於AI芯片提供了完整的解決方案,加速使能AI產業化。
為了實現AI在多平台多場景之間的協同,華為創新設計達芬奇計算架構,在不同體積和功耗條件下提供強勁的AI算力。
初見:達芬奇架構的核心優勢
達芬奇架構,是華為自研的面向AI計算特徵的全新計算架構,具備高算力、高能效、靈活可裁剪的特性,是實現萬物智能的重要基礎。
具體來說,達芬奇架構採用3D Cube針對矩陣運算做加速,大幅提升單位功耗下的AI算力,每個AI Core可以在一個時鐘週期內實現4096個MAC操作,相比傳統的CPU和GPU實現數量級的提升。
3D Cube
同時,為了提升AI計算的完備性和不同場景的計算效率,達芬奇架構還集成了向量、標量、硬件加速器等多種計算單元。同時支持多種精度計算,支撐訓練和推理兩種場景的數據精度要求,實現AI的全場景需求覆蓋。
深耕:達芬奇架構的AI硬實力
科普1:常見的AI運算類型有哪些?
在了解達芬奇架構的技術之前,我們先來弄清楚一下幾種AI運算數據對象:
- 標量(Scalar):由單獨一個數組成
- 向量(Vector):由一組一維有序數組成,每個數由一個索引(index)標識
- 矩陣(Matrix):由一組二維有序數組成,每個數由兩個索引(index)標識
- 張量(Tensor):由一組n維有序數組成,每個數由n個索引(index)標識
其中,AI計算的核心是矩陣乘法運算,計算時由左矩陣的一行和右矩陣的一列相乘,每個元素相乘之後的和輸出到結果矩陣。
在此計算過程中,標量(Scalar)、向量(Vector)、矩陣(Matrix)算力密度依次增加,對硬件的AI運算能力不斷提出更高要求。典型的神經網絡模型計算量都非常大,這其中99%的計算都需要用到矩陣乘,也就是說,如果提高矩陣乘的運算效率,就能最大程度上提升AI算力——這也是達芬奇架構設計的核心:以最小的計算代價增加矩陣乘的算力,實現更高的AI能效。科普2:各單元角色分工揭秘,Da Vinci Core是如何實現高效AI計算的?
在2018年全聯接大會上,華為推出AI芯片Ascend 310(昇騰310),這是達芬奇架構的首次亮相。
其中,Da Vinci Core只是NPU的一個部分,Da Vinci Core內部還細分成很多單元,包括核心的3D Cube、Vector向量計算單元、Scalar標量計算單元等,它們各自負責不同的運算任務實現並行化計算模型,共同保障AI計算的高效處理。
- 3D Cube矩陣乘法單元:算力擔當
剛才已經提到,矩陣乘是AI計算的核心,這部分運算由3D Cube完成,Buffer L0A、L0B、L0C則用於存儲輸入矩陣和輸出矩陣數據,負責向Cube計算單元輸送數據和存放計算結果。
- Vector向量計算單元:靈活的多面手
雖然Cube的算力很強大,但只能完成矩陣乘運算,還有很多計算類型要依靠Vector向量計算單元來完成。Vector的指令相對來說非常豐富,可以覆蓋各種基本的計算類型和許多定制的計算類型。
- Scalar標量計算單元:流程控制的管家
Scalar標量運算單元主要負責AI Core的標量運算,功能上可以看作一個小CPU,完成整個程序的循環控制,分支判斷,Cube、Vector等指令的地址和參數計算以及基本的算術運算等。科普3:3D Cube計算方式的獨特優勢是什麼?
不同於以往的標量、矢量運算模式,華為達芬奇架構以高性能3D Cube計算引擎為基礎,針對矩陣運算進行加速,大幅提高單位面積下的AI算力,充分激發端側AI的運算潛能。
以兩個N*N的矩陣A*B乘法為例:如果是N個1D 的MAC,需要N^2(即N的2次方)的cycle數;如果是1個N^2的2D MAC陣列,需要N個Cycle;如果是1個N維3D的Cube,只需要1個Cycle。
圖中計算單元的數量只是示意,實際可靈活設計
華為創新設計的達芬奇架構將大幅提升算力,16*16*16的3D Cube能夠顯著提升數據利用率,縮短運算週期,實現更快更強的AI運算。
這是什麼意思呢?舉例來說,同樣是完成4096次運算,2D結構需要64行*64列才能計算,3D Cube只需要16*16*16的結構就能算出。其中,64*64結構帶來的問題是:運算週期長、時延高、利用率低。達芬奇架構的這一特性也完美體現在麒麟810上。作為首款採用達芬奇架構NPU的手機 SoC芯片,麒麟810實現強勁的AI算力,在單位面積上實現最佳能效,FP16精度和INT8量化精度業界領先,搭載這款SoC芯片的華為Nova 5 、Nova 5i Pro及榮耀9X手機已上市,為廣大消費者提供多種精彩的AI應用體驗。同時,麒麟810再度賦能HiAI生態,支持自研中間算子格式IR開放,算子數量多達240+,處於業內領先水平。更多算子、開源框架的支持以及提供更加完備的工具鏈將助力開發者快速轉換集成基於不同AI框架開發出的模型,極大地增強了華為HiAI移動計算平台的兼容性、易用性,提高開發者的效率,節約時間成本,加速更多AI應用的落地。
預見:達芬奇架構解鎖AI無限可能
基於靈活可擴展的特性,達芬奇架構能夠滿足端側、邊緣側及雲端的應用場景,可用於小到幾十毫瓦,大到幾百瓦的訓練場景,橫跨全場景提供最優算力。
以Ascend芯片為例,Ascend-Nano可以用於耳機電話等IoT設備的使用場景;Ascend-Tiny和Ascend-Lite用於智能手機的AI運算處理;在筆記本電腦等算力需求更高的便攜設備上,由Ascend-Mini提供算力支持;而邊緣側服務器上則需要由Multi-Ascend 310完成AI計算;至於超複雜的雲端數據運算處理,則交由算力最高可達256 TFLOPS@FP16的Ascend- Max來完成。
正是由於達芬奇架構靈活可裁剪、高能效的特性,才能實現對上述多種複雜場景的AI運算處理。同時,選擇開發統一架構也是一個非常關鍵的決策。統一架構優勢很明顯,那就是對廣大開發者非常利好。基於達芬奇架構的統一性,開發者在面對雲端、邊緣側、端側等全場景應用開發時,只需要進行一次算子開發和調試,就可以應用於不同平台,大幅降低了遷移成本。
不僅開發平台語言統一,訓練和推理框架也是統一的,開發者可以將大量訓練模型放在本地和雲端服務器,再將輕量級的推理工作放在移動端設備上,獲得一致的開發體驗。
在算力和技術得到突破性提升後,AI將廣泛應用於智慧城市、自動駕駛、智慧新零售、機器人、工業製造、雲計算AI服務等場景。華為輪值董事長徐直軍在2018華為全聯接大會上表示,“全場景意味著可以實現智能無所不及,全棧意味著華為有能力為AI應用開發者提供強大的算力和應用開發平台;有能力提供大家用得起、用得好、用得放心的AI,實現普惠AI”。未來,AI將應用更加廣泛的領域,並逐漸覆蓋至生活的方方面面。達芬奇架構作為AI運算的重要技術基礎,將持續賦能AI應用探索,為各行各業的AI應用場景提供澎湃算力。
8月23日,採用達芬奇架構的又一款“巨無霸”——AI芯片Ascend 910,將正式商用發布,與之配套的新一代AI開源計算框架MindSpore也將同時亮相,今年9月的華為全聯接大會上,又將有哪些重量級新品呢?敬請關注!