華為昇騰AI芯片,你了解多少?

今天我們來聊一聊華為的昇騰AI處理器。首先我們來簡單說一下為什么需要人工智能芯片。那么對于近年來人工智能技術的突破性發展,業界普遍認為有三個主要的推動力量,一個是海量數據的產生和累積;一個是理論算法的創新;還有一個就是計算技術的變革。那么數據、算力和算法這三點是相互結合,缺一不可的。如果我們把人工智能技術的發展比作是一個正在起飛的火箭,那么大數據就是它的燃料,算法和理論就是用來控制它的飛行軌跡和姿態,計算技術則是它持續爆發的引擎。那么為了讓這個火箭飛得更高,飛得更遠,我們就需要不斷的獲取更多的數據,并且不斷的創造和改進我們的算法模型和理論。來對這些數據進行更有效的處理、分析和利用。此外,我們還要不斷的升級計算的能力,從而在更短的時間內處理更多的數據。那么承載這一切發展最重要的基礎就是芯片,特別是人工智能芯片。

接下來,我們重點看一下人工智能專用芯片,特別是華為的昇騰AI處理器的相關技術內容。聊一聊昇騰系列處理器的一些技術特點,包括硬件架構、軟件架構,以及圍繞這個昇騰處理器構建的生態系統的一些內容。
首先,我們來看一下昇騰AI芯片的硬件架構。這里說的昇騰AI 處理器其實有兩個,一個是2018年發布的昇騰310,它主要針對的是推理應用;另一個是2019年發布的針對訓練應用的昇騰910。值得注意的是,作為人工智能專用芯片,它們都是為了特定的領域進行設計和深度優化的。這也是像昇騰這樣的專用芯片,區別于CPU、GPU這些通用芯片的最主要的方面。那么在AI系統中,又繼續分成訓練和推斷這兩個過程。

比如昇騰910主要針對的就是在云端的AI訓練應用,所以芯片的性能,也就是算力的大小,就是它優化的重點。因此它使用7納米工藝進行制造。FP16算力可以達到256TFLOPS, INT8算力高達512 TOPS,同時支持128通道的全高清視頻解碼。這些性能呢其實都超過了同時期的GPU,比如英偉達的V100。那么為了實現這么高的算力,它最高的功耗是310瓦和GPU基本處于一個量級。相比之下昇騰310針對的是推理場景,主要是應用在移動端。
所以這就需要對性能和功耗進行一定的平衡。因為我們基本不可能在部署智能攝像頭,無人駕駛車輛,或者是我們的手機或者手表里, 放一個有幾百瓦功耗的AI芯片,同時對于一些邊緣計算的場景,對芯片使用成本的限制,以及芯片本身的實時性、安全性等等也都是重要的考慮因素。所以結合這些需求呢,昇騰310采用的是12納米工藝進行制造,最大的功耗僅為8瓦。那么在性能方面,它的FP16算力達到了8TFLOPS,INT8算力可以達到16 TOPS,同時也集成了16通道的全高清視頻****。那么這些在邊緣計算領域其實已經是很高的算力了。

現在很多芯片的結構其實都是以片上系統的形式進行設計和開發的。我們拿蛋糕舉個例子。也就是在一個盒子里裝了很多不同的小蛋糕,而不是直接做一個特別大的蛋糕。比如每個小蛋糕都可以分別做,還可以做不同的口味、大小,最后呢整合在一起就行了,這樣既節省了制作的時間,也降低了制作的風險和成本。那么同樣的華為昇騰AI芯片,它的本質也是一個片上系統。在芯片上有很多不同的模塊,也就是前面說的這些小蛋糕組成的。他們有的負責數據存儲,有的負責接口和通信,有的負責任務的調度和控制。當然還有最重要的就是負責AI運算的這些計算核心。
那么從硬件結構來看昇騰AI芯片,最主要的特點就是它的AI核心采用了華為自研的達芬奇架構。包括昇騰910和昇騰310。其實都是使用了基于達芬奇架構的AI核心。總體來說,達芬奇架構可以分為三個主要的組成部分,分別對應數據的計算、存儲和控制。那么拿這個計算單元來說,它可以執行標量、向量和張量三種基礎的運算。比如張量運算就是專門用來加速AI應用中的矩陣運算。它也就叫做所謂的3D Cube 單元,它可以用一條指令完成兩個16乘16的矩陣的相乘運算。
那么除了芯片的硬件結構之外,同樣非常重要的就是芯片編程的方法和軟件架構的設計和實現。英偉達GPU之所以在人工智能領域大放異彩,并且得到非常廣泛的應用,GPU芯片的性能提升固然重要。但是更重要的是,它推出了成熟且易用的編程框架CUDA。相比之下FPGA的編程難度極大,這也在很大程度上限制了FPGA的廣泛使用。那么對于這種AI專用芯片,昇騰AI處理器也提供了一個多層的軟件棧和開發工具鏈,來幫助開發者更好的使用昇騰。通過軟件的多樣性,也能在很大程度上彌補專用芯片靈活性不足的劣勢。

這個軟件棧可以分為4層,最底下的是處理器的計算資源。比如前面提到的AI核心、CPU,還有負責數字視覺的計算模塊等等;再往上是一些標準的加速庫,負責給硬件輸出算子層面的任務,此外還有任務調度器和一些預處理的模塊;然后再往上就是框架層,顧名思義它就是用來調度和管理深度學習框架,并且生成離線模型用的。值得注意的是昇騰AI處理器不僅支持主流的深度學習框架,還支持華為自研的名叫MindSpore的深度學習框架。那么通過MindSpore的深度學習框架產生的神經網絡模型,可以直接運行在昇騰AI芯片上,而無需進行硬件的適配和轉換,這就極大的提升了開發效率。這個軟件棧的最后一層就是應用層,它的抽象程度最高,封裝集成了很多專用領域的計算引擎,比如針對計算機視覺,還有針對語言文字處理的算法封裝等等。用戶也可以直接拿過來進行調用。那么除了這幾個大的邏輯層次之外呢,昇騰的軟件棧還提供了一個完整的開發工具鏈MindStudio ,包括編譯、調試、性能分析、模型轉換等等。

介紹了硬件架構和軟件棧,我們還需要最后一個大的環節來完成整個生態的閉環,那就是提供結合軟硬件的系統級解決方案。這個其實是一個目前芯片界的發展趨勢。那么不管你是CPU、GPU、FPGA,還是像這樣的AI專用芯片,其實都是在遵循這個規律進行發展。簡單來說呢,就是芯片公司不僅要提供牛逼的芯片,除此之外他們還需要提供好用的軟件和開發工具。 就像前面介紹的軟件棧,再然后呢,你最好還要提供完整的參考設計以及軟硬件系統,讓大家拿過來就能用。同樣的昇騰也提供了一系列的硬件產品。從最小的加速模塊到推理或者是訓練用的加速卡,再到專用的服務器,甚至是由多個服務器陣列組成的計算集群,這樣也構建了一個涵蓋終端邊緣以及云計算產品的產品組合,使得用戶可以根據自身的實際需要選擇合適的硬件產品。這個也就是華為所說的全場景覆蓋。
最后來總結一下今天的主要內容。我們從硬件、軟件和生態三個角度介紹了華為的昇騰AI芯片。我們還深入的探討了華為自研的達芬奇架構以及MindSpore 深度學習框架的一些技術特點。同時我們也看了一些業界的發展趨勢,也就是以硬件為基礎,通過軟件擴展靈活性和易用性。然后圍繞軟硬件去打造系統級的解決方案,并且由此構建一個完整的生態系統。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。