《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 業(yè)界動態(tài) > 特斯拉,、高通,、華為AI處理器深度分析

特斯拉、高通,、華為AI處理器深度分析

2021-09-06
來源: 佐思產(chǎn)研
關(guān)鍵詞: CUDA 高通 特斯拉 華為 AI處理器

  很多人會問,,為什么沒有英偉達(dá)?目前所有主流深度學(xué)習(xí)運(yùn)算主流框架后端都是英偉達(dá)的CUDA,,包括TensorFlow,、Caffe、Caffe2,、PyTorch,、mxnet,、PaddlePaddle,,CUDA包括微架構(gòu)和指令集以及并行計(jì)算引擎。CUDA壟斷了深度學(xué)習(xí)或者也可以說壟斷了人工智能,,這一點(diǎn)類似ARM的微架構(gòu)和指令集,。CUDA強(qiáng)大的生態(tài)系統(tǒng),造就了英偉達(dá)牢不可破的霸主地位,。深度學(xué)習(xí)的理論基礎(chǔ)在上世紀(jì)五十年代就已經(jīng)齊備,,無法應(yīng)用的關(guān)鍵就是缺乏像GPU這樣的密集簡單運(yùn)算設(shè)備,是英偉達(dá)的GPU開創(chuàng)了人類的深度學(xué)習(xí)時(shí)代,,或者說人工智能時(shí)代,,CUDA強(qiáng)化了英偉達(dá)的地位。你可以不用英偉達(dá)的GPU,,但必須轉(zhuǎn)換格式來適應(yīng)CUDA,。

  CUDA開啟了并行計(jì)算或多核運(yùn)算時(shí)代,今天人工智能用的所有加速器都是多核或眾核處理器,,幾乎都離不開CUDA,。CUDA程序構(gòu)架分為兩部分:Host和Device。一般而言,,Host指的是CPU,,Device指的是GPU或者叫AI加速器。在CUDA程序構(gòu)架中,,主程序還是由CPU 來執(zhí)行,,而當(dāng)遇到數(shù)據(jù)并行處理的部分,CUDA 就會將程序編譯成 GPU能執(zhí)行的程序,,并傳送到GPU,。而這個程序在CUDA里稱做核(kernel)。CUDA允許程序員定義稱為核的C語言函數(shù),,從而擴(kuò)展了C語言,,在調(diào)用此類函數(shù)時(shí),,它將由N個不同的CUDA線程并行執(zhí)行N次,這與普通的C語言函數(shù)只執(zhí)行一次的方式不同,。執(zhí)行核的每個線程都會被分配一個獨(dú)特的線程ID,,可通過內(nèi)置的threadIdx變量在內(nèi)核中訪問此ID。在 CUDA 程序中,,主程序在調(diào)用任何 GPU內(nèi)核之前,,必須對核進(jìn)行執(zhí)行配置,即確定線程塊數(shù)和每個線程塊中的線程數(shù)以及共享內(nèi)存大小,。你可以不用英偉達(dá)的GPU,,但最終都離不開CUDA,也就是需要轉(zhuǎn)換成CUDA格式,,這就意味著效率的下降,。所以英偉達(dá)是參考級的存在。

  從CUDA的特性我們不難看出,,單獨(dú)的AI加速器是無法使用的。今天我們分析三款可用于智能駕駛領(lǐng)域的AI加速器,,分別是高通的AI100,,華為的昇騰,特斯拉的FSD,。這其中高通AI100比較少見,。

  高通AI100最早于2019年4月在深圳的高通AI開放日露面,2020年9月量產(chǎn),。AI100是高通目前唯一的AI推理運(yùn)算加速器,,定位四個方面的應(yīng)用:一是數(shù)據(jù)中心的邊緣計(jì)算,二是5G行動邊緣計(jì)算,,三是智能駕駛與智能交通,,四是5G基礎(chǔ)設(shè)施。

  AI100有兩個側(cè)重點(diǎn):一是5G游戲,,AI100發(fā)布當(dāng)天邀請了VIVO手機(jī),、騰訊王者榮耀開發(fā)團(tuán)隊(duì)利用AI100現(xiàn)場開了一場電玩競賽,即把部分運(yùn)算放到5G邊緣服務(wù)器上,,減輕手機(jī)端的負(fù)載,。二是智能交通和智能駕駛,高通自動駕駛Ride平臺的AI加速器很有可能就是AI100的車規(guī)翻版,。

  高通特別展示了AI100在智能交通/智能駕駛領(lǐng)域的應(yīng)用,。

  同時(shí)支持24路200萬像素幀率25Hz的圖像識別,特斯拉的FSD不過是同時(shí)8路130萬像素幀率30Hz的圖像識別,,性能至少是特斯拉FSD的3倍,。 AI100可以像刀片服務(wù)器那樣應(yīng)用,,用PCIe交換機(jī)最多16個級聯(lián)。

  最高每瓦有12.37TOPs的算力,,特斯拉FSD是36瓦的功耗,,AI部分估計(jì)大約為24瓦,每瓦只有大約3TOPs每瓦的算力,,英偉達(dá)的Orin大致為5.2TOPs每瓦的算力,。

  上圖為高通AI100內(nèi)部框架圖。設(shè)計(jì)很簡潔,,16個AI核,,內(nèi)核與內(nèi)核之間是第四代PCIe連接,帶寬有186GB/s,,8通道的PCIe網(wǎng)絡(luò),,然后再與各種片上網(wǎng)絡(luò)(NoC),包括存儲NoC,、運(yùn)算NoC和配置NoC通過PCIe總線連接,。片上存儲器容量高達(dá)144MB,帶寬136GB/s,。外圍存儲器為256Gb的LPDDR4,。支持汽車行業(yè)的ISO26262安全標(biāo)準(zhǔn),即ASIL,,達(dá)到B級,。

  NoC是多核AI處理器的核心技術(shù)之一,特斯拉FSD只有兩個NPU,,很可能用不到NoC而用比較落后的總線技術(shù),,不過高通和華為都用到了。

  NoC的詳細(xì)理論就不說了,,可以理解為一個運(yùn)行在PE與存儲之間的通訊網(wǎng)絡(luò),。NoC技術(shù)和網(wǎng)絡(luò)通信中的OSI(Open System Interconnection)技術(shù)有很多相似之處,NoC技術(shù)的提出也是因?yàn)榻梃b了并行計(jì)算機(jī)的互聯(lián)網(wǎng)絡(luò)和以太網(wǎng)絡(luò)的分層思想,,二者的相同點(diǎn)有:支持包交換,、路由協(xié)議、任務(wù)調(diào)度,、可擴(kuò)展等,。NoC更關(guān)注交換電路和緩存器的面積占用,在設(shè)計(jì)時(shí)主要考量的方面也是這些,。NoC的基本組成為:IP核,、路由器、網(wǎng)絡(luò)適配器以及網(wǎng)絡(luò)鏈路,IP核和路由器位于系統(tǒng)層,,網(wǎng)絡(luò)適配器位于網(wǎng)絡(luò)適配層,。針對NoC的這四個基本組成,也衍生出了許多的研究方向和優(yōu)化途徑,。

  常見AI加速器的NoC如上表,。需要指出高通和華為都用了Arteris,這家公司實(shí)際是高通的子公司,,高通在2013年11月收購了這家僅有43人的法國小公司,,今天中國幾乎所有的大中型芯片公司都是其客戶,包括瑞芯微,、國民技術(shù),、華為、全志,、炬力,、展訊等,可以說都在給高通打工,。英特爾在2019年收購了Netspeed,,F(xiàn)acebook在2019年收購了Sonics,這兩家的NoC使用面遠(yuǎn)不如高通的Arteris,。

  每個AI核內(nèi)部框架如上,,主要分4個部分,分別是標(biāo)量處理,、向量處理,、存儲處理和張量處理,。深度學(xué)習(xí)中經(jīng)常出現(xiàn)4種量,,標(biāo)量、向量,、矩陣和張量,。神經(jīng)網(wǎng)絡(luò)最基本的數(shù)據(jù)結(jié)構(gòu)就是向量和矩陣,神經(jīng)網(wǎng)絡(luò)的輸入是向量,,然后通過每個矩陣對向量進(jìn)行線性變換,,再經(jīng)過激活函數(shù)的非線性變換,通過層層計(jì)算最終使得損失函數(shù)的最小化,,完成模型的訓(xùn)練,。

  標(biāo)量(scalar):一個標(biāo)量就是一個單獨(dú)的數(shù)(整數(shù)或?qū)崝?shù)),不同于線性代數(shù)中研究的其他大部分對象(通常是多個數(shù)的數(shù)組),。標(biāo)量通常用斜體的小寫字母來表示,,標(biāo)量就相當(dāng)于Python中定義的x=1。

  向量(Vector),,一個向量表示一組有序排列的數(shù),,通過次序中的索引我們能夠找到每個單獨(dú)的數(shù),,向量通常用粗體的小寫字母表示,向量中的每個元素就是一個標(biāo)量,,向量相當(dāng)于Python中的一維數(shù)組,。

  矩陣(matrix),矩陣是一個二維數(shù)組,,其中的每一個元素由兩個索引來決定,,矩陣通常用加粗斜體的大寫字母表示,我們可以將矩陣看作是一個二維的數(shù)據(jù)表,,矩陣的每一行表示一個對象,,每一列表示一個特征。

  張量(Tensor),,超過二維的數(shù)組,,一般來說,一個數(shù)組中的元素分布在若干維坐標(biāo)的規(guī)則網(wǎng)格中,,被稱為張量,。如果一個張量是三維數(shù)組,那么我們就需要三個索引來決定元素的位置,,張量通常用加粗的大寫字母表示,。

  不太嚴(yán)謹(jǐn)?shù)卣f,標(biāo)量是0維空間中的一個點(diǎn),,向量是一維空間中的一條線,,矩陣是二維空間的一個面,三維張量是三維空間中的一個體,。也就是說,,向量是由標(biāo)量組成的,矩陣是向量組成的,,張量是矩陣組成的,。

  標(biāo)量運(yùn)算部分可以看作一個小CPU,控制整個AI Core的運(yùn)行,。標(biāo)量計(jì)算單元可以對程序中的循環(huán)進(jìn)行控制,,可以實(shí)現(xiàn)分支判斷,其結(jié)果可以通過在事件同步模塊中插入同步符的方式來控制AI Core中其它功能性單元的執(zhí)行流水,。它還為矩陣計(jì)算單元或向量計(jì)算單元提供數(shù)據(jù)地址和相關(guān)參數(shù)的計(jì)算,,并且能夠?qū)崿F(xiàn)基本的算術(shù)運(yùn)算。復(fù)雜度較高的標(biāo)量運(yùn)算如數(shù)據(jù)流量控制則由專門的AI CPU通過算子完成,,AI處理器是無法單獨(dú)工作的,,必須要外置的CPU給予配合。

  華為昇騰系列內(nèi)核架構(gòu)。圖片來源:互聯(lián)網(wǎng)

  華為的昇騰910即Davinci Max,,和高通AI100一樣,,也是8192個Int8,4096個FP16,。不過昇騰910是訓(xùn)練用的,,高通AI100是推理用的,但910不計(jì)成本使用HBM2代存儲,,性能遠(yuǎn)超AI100,。

  上圖為特斯拉FSD信號內(nèi)部流轉(zhuǎn),相干流量即深度學(xué)習(xí)的數(shù)據(jù)流量需要CPU控制,,當(dāng)然也不只是為深度學(xué)習(xí)服務(wù),。 圖像識別深度學(xué)習(xí)中運(yùn)算量最大的卷積部分實(shí)際就是矩陣的乘和累加??梢苑纸鉃?維的標(biāo)量或者叫算子(即權(quán)重)與2維的向量即輸入圖像乘和累加,。

  上圖為特斯拉FSD神經(jīng)網(wǎng)絡(luò)架構(gòu),特斯拉把矩陣的乘和累加簡單寫成了MulAccArray,。特斯拉做芯片剛剛?cè)腴T,,F(xiàn)SD上除了NPU是自己做的外,其余都是對外采購的IP,。NPU方面,,主要就是堆砌MAC乘和累加單元,在稍微有技術(shù)含量的標(biāo)量計(jì)算領(lǐng)域,,特斯拉沒有公布采用何種指令集,,應(yīng)該是沒什么特色。華為和高通都是采用了VLIW,。

  高通的向量處理器可以簡單看作一個DSP,。眾所周知,高通的AI技術(shù)來源于其DSP技術(shù),,高通對DSP非常青睞,,而已經(jīng)失去生命力的VLIW超長指令集非常適合用在深度學(xué)習(xí)上,,深度學(xué)習(xí)運(yùn)算算法非常單一且密集度極高,,并不需要通用場景下的實(shí)時(shí)控制。并且其程序運(yùn)行有嚴(yán)格的時(shí)間要求,,cache這種不可控時(shí)間的結(jié)構(gòu)就不適合了,,通常采用固定周期的TCM作為緩存,這樣內(nèi)存訪問時(shí)間就固定了,。有了上述的特征,,靜態(tài)編譯在通用場合下面臨的那些困難就不存在了,而DSP其更高效的并行運(yùn)算能力和簡化的硬件結(jié)構(gòu)被完全發(fā)揮出來。

  AI100為了考慮多種應(yīng)用場合,,有FP16和Int8兩種精度陣列,,Int8即8位整數(shù)精度是智能駕駛領(lǐng)域最常見的,F(xiàn)P16則是游戲,、AR/VR領(lǐng)域常用的,。Int8有8192個,F(xiàn)P16有4096,,特斯拉則是9216個Int8陣列,,如果AI100只考慮智能駕駛,在總面積(差不多可等同于成本)不變的情況下算力還可以再提高不少,。

  上圖為特斯拉NPU部分流程與裸晶分布,,算力理論峰值只是根據(jù)MAC數(shù)量簡單計(jì)算得出,實(shí)際存儲器是瓶頸,,存儲器能讓算力大打折扣,,這也是為什么訓(xùn)練用AI芯片都不惜成本用HBM內(nèi)存的原因。特斯拉的芯片上,,大部分都給了SRAM,,也是為了解決存儲器瓶頸問題。這里常見到兩個單位,,GiB和GB,,GB是十進(jìn)制,GiB是二進(jìn)制,,1GiB=(1024*1024*1024)B=1073741824B,,1GB=(1000*1000*1000)B=1000000000B,1GiB/1GB=1073741824/1000000000=1.073741824,。要求精度不高的話,,可以直接替換,高通AI100有144MB的片上存儲,,特斯拉只有32MiB,,高通顯然可以碾壓特斯拉的,此外外圍的LPDDR4存儲上,,高通也是碾壓特斯拉,,特斯拉帶寬只有63.58 GiB/s,高通AI100是136GB/s,。

  最后說算力,,AI處理器對比似乎離不開算力對比,實(shí)際單獨(dú)講算力數(shù)據(jù)毫無意義,,上圖是高通AI100在五個數(shù)據(jù)集上的表現(xiàn),,我們可以看到性能與效率差別巨大,,AI算力越強(qiáng),其適用面就越窄,,與深度學(xué)習(xí)模型的捆綁程度就越高,,換句話說,AI芯片只能在與其匹配的深度學(xué)習(xí)模型上才能發(fā)揮最大性能,,換一個模型,,可能只能發(fā)揮芯片10%的性能,所有AI芯片目前的算力數(shù)據(jù)都是理論峰值數(shù)據(jù),,實(shí)際應(yīng)用中都無法達(dá)到理論峰值,,某些情況下,可能只有峰值算力的10%甚至2%,。100TOPS的算力可能會萎縮到2TOPS,。

  在芯片領(lǐng)域,特斯拉只能算是小學(xué)生,,只要有意愿,,高通、英特爾,、英偉達(dá),、華為、AMD,、聯(lián)發(fā)科,、三星都能碾壓特斯拉。




mmexport1621241704608.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。