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

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

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

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

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

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

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