華為昇騰AI芯片,你了解多少?
今天我們來聊一聊華為的昇騰AI處理器。首先我們來簡單說一下為什么需要人工智能芯片。那么對于近年來人工智能技術(shù)的突破性發(fā)展,業(yè)界普遍認為有三個主要的推動力量,一個是海量數(shù)據(jù)的產(chǎn)生和累積;一個是理論算法的創(chuàng)新;還有一個就是計算技術(shù)的變革。那么數(shù)據(jù)、算力和算法這三點是相互結(jié)合,缺一不可的。如果我們把人工智能技術(shù)的發(fā)展比作是一個正在起飛的火箭,那么大數(shù)據(jù)就是它的燃料,算法和理論就是用來控制它的飛行軌跡和姿態(tài),計算技術(shù)則是它持續(xù)爆發(fā)的引擎。那么為了讓這個火箭飛得更高,飛得更遠,我們就需要不斷的獲取更多的數(shù)據(jù),并且不斷的創(chuàng)造和改進我們的算法模型和理論。來對這些數(shù)據(jù)進行更有效的處理、分析和利用。此外,我們還要不斷的升級計算的能力,從而在更短的時間內(nèi)處理更多的數(shù)據(jù)。那么承載這一切發(fā)展最重要的基礎(chǔ)就是芯片,特別是人工智能芯片。
接下來,我們重點看一下人工智能專用芯片,特別是華為的昇騰AI處理器的相關(guān)技術(shù)內(nèi)容。聊一聊昇騰系列處理器的一些技術(shù)特點,包括硬件架構(gòu)、軟件架構(gòu),以及圍繞這個昇騰處理器構(gòu)建的生態(tài)系統(tǒng)的一些內(nèi)容。
首先,我們來看一下昇騰AI芯片的硬件架構(gòu)。這里說的昇騰AI 處理器其實有兩個,一個是2018年發(fā)布的昇騰310,它主要針對的是推理應(yīng)用;另一個是2019年發(fā)布的針對訓練應(yīng)用的昇騰910。值得注意的是,作為人工智能專用芯片,它們都是為了特定的領(lǐng)域進行設(shè)計和深度優(yōu)化的。這也是像昇騰這樣的專用芯片,區(qū)別于CPU、GPU這些通用芯片的最主要的方面。那么在AI系統(tǒng)中,又繼續(xù)分成訓練和推斷這兩個過程。
比如昇騰910主要針對的就是在云端的AI訓練應(yīng)用,所以芯片的性能,也就是算力的大小,就是它優(yōu)化的重點。因此它使用7納米工藝進行制造。FP16算力可以達到256TFLOPS, INT8算力高達512 TOPS,同時支持128通道的全高清視頻解碼。這些性能呢其實都超過了同時期的GPU,比如英偉達的V100。那么為了實現(xiàn)這么高的算力,它最高的功耗是310瓦和GPU基本處于一個量級。相比之下昇騰310針對的是推理場景,主要是應(yīng)用在移動端。
所以這就需要對性能和功耗進行一定的平衡。因為我們基本不可能在部署智能攝像頭,無人駕駛車輛,或者是我們的手機或者手表里, 放一個有幾百瓦功耗的AI芯片,同時對于一些邊緣計算的場景,對芯片使用成本的限制,以及芯片本身的實時性、安全性等等也都是重要的考慮因素。所以結(jié)合這些需求呢,昇騰310采用的是12納米工藝進行制造,最大的功耗僅為8瓦。那么在性能方面,它的FP16算力達到了8TFLOPS,INT8算力可以達到16 TOPS,同時也集成了16通道的全高清視頻****。那么這些在邊緣計算領(lǐng)域其實已經(jīng)是很高的算力了。
現(xiàn)在很多芯片的結(jié)構(gòu)其實都是以片上系統(tǒng)的形式進行設(shè)計和開發(fā)的。我們拿蛋糕舉個例子。也就是在一個盒子里裝了很多不同的小蛋糕,而不是直接做一個特別大的蛋糕。比如每個小蛋糕都可以分別做,還可以做不同的口味、大小,最后呢整合在一起就行了,這樣既節(jié)省了制作的時間,也降低了制作的風險和成本。那么同樣的華為昇騰AI芯片,它的本質(zhì)也是一個片上系統(tǒng)。在芯片上有很多不同的模塊,也就是前面說的這些小蛋糕組成的。他們有的負責數(shù)據(jù)存儲,有的負責接口和通信,有的負責任務(wù)的調(diào)度和控制。當然還有最重要的就是負責AI運算的這些計算核心。
那么從硬件結(jié)構(gòu)來看昇騰AI芯片,最主要的特點就是它的AI核心采用了華為自研的達芬奇架構(gòu)。包括昇騰910和昇騰310。其實都是使用了基于達芬奇架構(gòu)的AI核心??傮w來說,達芬奇架構(gòu)可以分為三個主要的組成部分,分別對應(yīng)數(shù)據(jù)的計算、存儲和控制。那么拿這個計算單元來說,它可以執(zhí)行標量、向量和張量三種基礎(chǔ)的運算。比如張量運算就是專門用來加速AI應(yīng)用中的矩陣運算。它也就叫做所謂的3D Cube 單元,它可以用一條指令完成兩個16乘16的矩陣的相乘運算。
那么除了芯片的硬件結(jié)構(gòu)之外,同樣非常重要的就是芯片編程的方法和軟件架構(gòu)的設(shè)計和實現(xiàn)。英偉達GPU之所以在人工智能領(lǐng)域大放異彩,并且得到非常廣泛的應(yīng)用,GPU芯片的性能提升固然重要。但是更重要的是,它推出了成熟且易用的編程框架CUDA。相比之下FPGA的編程難度極大,這也在很大程度上限制了FPGA的廣泛使用。那么對于這種AI專用芯片,昇騰AI處理器也提供了一個多層的軟件棧和開發(fā)工具鏈,來幫助開發(fā)者更好的使用昇騰。通過軟件的多樣性,也能在很大程度上彌補專用芯片靈活性不足的劣勢。
這個軟件棧可以分為4層,最底下的是處理器的計算資源。比如前面提到的AI核心、CPU,還有負責數(shù)字視覺的計算模塊等等;再往上是一些標準的加速庫,負責給硬件輸出算子層面的任務(wù),此外還有任務(wù)調(diào)度器和一些預(yù)處理的模塊;然后再往上就是框架層,顧名思義它就是用來調(diào)度和管理深度學習框架,并且生成離線模型用的。值得注意的是昇騰AI處理器不僅支持主流的深度學習框架,還支持華為自研的名叫MindSpore的深度學習框架。那么通過MindSpore的深度學習框架產(chǎn)生的神經(jīng)網(wǎng)絡(luò)模型,可以直接運行在昇騰AI芯片上,而無需進行硬件的適配和轉(zhuǎn)換,這就極大的提升了開發(fā)效率。這個軟件棧的最后一層就是應(yīng)用層,它的抽象程度最高,封裝集成了很多專用領(lǐng)域的計算引擎,比如針對計算機視覺,還有針對語言文字處理的算法封裝等等。用戶也可以直接拿過來進行調(diào)用。那么除了這幾個大的邏輯層次之外呢,昇騰的軟件棧還提供了一個完整的開發(fā)工具鏈MindStudio ,包括編譯、調(diào)試、性能分析、模型轉(zhuǎn)換等等。
介紹了硬件架構(gòu)和軟件棧,我們還需要最后一個大的環(huán)節(jié)來完成整個生態(tài)的閉環(huán),那就是提供結(jié)合軟硬件的系統(tǒng)級解決方案。這個其實是一個目前芯片界的發(fā)展趨勢。那么不管你是CPU、GPU、FPGA,還是像這樣的AI專用芯片,其實都是在遵循這個規(guī)律進行發(fā)展。簡單來說呢,就是芯片公司不僅要提供牛逼的芯片,除此之外他們還需要提供好用的軟件和開發(fā)工具。 就像前面介紹的軟件棧,再然后呢,你最好還要提供完整的參考設(shè)計以及軟硬件系統(tǒng),讓大家拿過來就能用。同樣的昇騰也提供了一系列的硬件產(chǎn)品。從最小的加速模塊到推理或者是訓練用的加速卡,再到專用的服務(wù)器,甚至是由多個服務(wù)器陣列組成的計算集群,這樣也構(gòu)建了一個涵蓋終端邊緣以及云計算產(chǎn)品的產(chǎn)品組合,使得用戶可以根據(jù)自身的實際需要選擇合適的硬件產(chǎn)品。這個也就是華為所說的全場景覆蓋。
最后來總結(jié)一下今天的主要內(nèi)容。我們從硬件、軟件和生態(tài)三個角度介紹了華為的昇騰AI芯片。我們還深入的探討了華為自研的達芬奇架構(gòu)以及MindSpore 深度學習框架的一些技術(shù)特點。同時我們也看了一些業(yè)界的發(fā)展趨勢,也就是以硬件為基礎(chǔ),通過軟件擴展靈活性和易用性。然后圍繞軟硬件去打造系統(tǒng)級的解決方案,并且由此構(gòu)建一個完整的生態(tài)系統(tǒng)。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。