• 正文
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

3500TOPS夠不夠,透視AI芯片算力數(shù)字游戲

2023/11/27
2971
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

智能駕駛是一個(gè)復(fù)雜的系統(tǒng),單單計(jì)算AI算力意義不大,并且AI算力數(shù)字有非常多的操作空間。汽車領(lǐng)域的算力通常是整數(shù)8位精度下的算力,這種算力也只是針對傳統(tǒng)CNN當(dāng)中計(jì)算量最大的卷積運(yùn)算,這種算力的取得不需要任何技術(shù)門檻,簡單堆砌MAC(乘積累加)陣列即可獲得。不計(jì)成本的話,任何廠家都可以取得數(shù)千TOPS的算力,但每個(gè)廠家有自己的市場定位,有成本考量,自然就有了算力高低。

圖片來源:Synopsys

上圖是Synopsys推出的一款I(lǐng)P,最高支持8個(gè)NPU,達(dá)到3500TOPS的算力,單個(gè)NPU也可達(dá)到440TOPS的算力,并且這個(gè)算力是不參雜任何水分的,完全靠MAC數(shù)量獲得。

衡量算力最客觀的數(shù)據(jù)應(yīng)該是MAC數(shù)量,用MAC數(shù)量和運(yùn)行頻率可以計(jì)算出算力值,這沒有任何弄虛作假的空間,比如谷歌TPU V1有65000個(gè)MAC,頻率為700MhHz,算力即為65000*700M*2=91TOPS(每個(gè)指令包含兩次計(jì)算);特斯拉初代FSD每個(gè)NN包含2*9216個(gè)MAC,頻率為2GHz,算力就是2*9216*2*2*2000=73.7TOPS。

智能駕駛領(lǐng)域早已不是傳統(tǒng)CNN的領(lǐng)域,Transformer相對CNN可謂有著翻天覆地的變化。芯片從設(shè)計(jì)到正式量產(chǎn)需經(jīng)過一個(gè)漫長的過程,可能是2-4年。因此現(xiàn)在市面上流行的嵌入式智能芯片基本上是源自于2年甚至更長時(shí)間之前的設(shè)計(jì),而那時(shí)候設(shè)計(jì)的嵌入式智能芯片很大概率未考慮Transformer的情況,因?yàn)楫?dāng)時(shí)可能大部分市面上流行的還是以CNN為主的模型,很難部署Transformer。

對AI模型來說,可分為浮點(diǎn)和整數(shù)兩大類,其中整數(shù)通常用于推理,浮點(diǎn)用于訓(xùn)練。根據(jù)IEEE二進(jìn)制浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE 754)的定義,浮點(diǎn)又可分為雙精度即FP64,單精度即FP32,半精度即FP16,浮點(diǎn)計(jì)數(shù)是利用浮動(dòng)小數(shù)點(diǎn)的方式使用不同長度的二進(jìn)制來表示一個(gè)數(shù)字,與之對應(yīng)的是定點(diǎn)數(shù)。同樣的長度下浮點(diǎn)數(shù)能表達(dá)的數(shù)字范圍相比定點(diǎn)數(shù)更大,但浮點(diǎn)數(shù)并不能精確表達(dá)所有實(shí)數(shù),而只能采用更加接近的不同精度來表達(dá)。單精度的浮點(diǎn)數(shù)中采用4個(gè)字節(jié)也就是32位二進(jìn)制來表達(dá)一個(gè)數(shù)字,雙精度浮點(diǎn)數(shù)采用8個(gè)字節(jié)也就是64bits來表達(dá),當(dāng)然半精度浮點(diǎn)數(shù)也就是采用16bits了。因?yàn)椴捎貌煌粩?shù)的浮點(diǎn)數(shù)的表達(dá)精度不一樣,所以造成的計(jì)算誤差也不同,對于需要處理的數(shù)字范圍大且需要精確計(jì)算的科學(xué)計(jì)算來說,就要求采用雙精度浮點(diǎn)數(shù);而對于常見的多媒體和圖形處理計(jì)算,32位的單精度浮點(diǎn)計(jì)算已經(jīng)足夠了;對于要求精度更低的機(jī)器學(xué)習(xí)等一些應(yīng)用來說,半精度16位浮點(diǎn)數(shù)就可以甚至8位浮點(diǎn)數(shù)就已經(jīng)夠用了。

AI芯片來說,不同的精度,浮點(diǎn)或整數(shù)需要各自獨(dú)立的計(jì)算單元。要支持浮點(diǎn)運(yùn)算需要特殊的寄存器和單獨(dú)的浮點(diǎn)數(shù)據(jù)加載指令,通用型CPU需要單獨(dú)添加浮點(diǎn)運(yùn)算處理器即FPU來完成浮點(diǎn)運(yùn)算。早期車載領(lǐng)域主要是CNN模型,為簡化運(yùn)算,基本上都是只能做整數(shù)運(yùn)算,不能也不需要做浮點(diǎn)運(yùn)算,但Transformer不同,它的歸一化層和Softmax一般是半精度浮點(diǎn)數(shù)據(jù)格式即FP16,當(dāng)然工具鏈軟件可以做一個(gè)轉(zhuǎn)換,但這樣效率會(huì)下降很多甚至直接數(shù)據(jù)溢出報(bào)錯(cuò),遠(yuǎn)不如原生態(tài)支持的好。

浮點(diǎn)運(yùn)算不同的精度也需要設(shè)計(jì)不同的寄存器,CPU里的FPU可以同時(shí)支持不同精度的浮點(diǎn)運(yùn)算,但在GPU里針對單精度和雙精度就需要各自獨(dú)立的計(jì)算單元,不過半精度就不需要獨(dú)立的計(jì)算單元。例如英偉達(dá)的RTX3090單精度性能(FP32)達(dá)到35.7TFLOPS,遠(yuǎn)超A100的19.5TFLOPS,F(xiàn)P16性能達(dá)到285TFLOPS,也接近A100的312TFLOPS。但3090價(jià)格遠(yuǎn)低于A100 GPU,這是因?yàn)锳100定位于全面通用型AI加速,A100需要考慮雙精度運(yùn)算,因?yàn)橛邢拊南∈杈仃嚽蠼馄?,還有復(fù)雜表面流場的計(jì)算離不開雙精度,而同樣算力雙精度耗費(fèi)晶體管數(shù)量是單精度的4-8倍,換句話說同樣算力,雙精度運(yùn)算消耗的成本是單精度的4-8倍。而RTX3090是圖形領(lǐng)域的,主要是FP32數(shù)據(jù)格式,完全不考慮科學(xué)運(yùn)算的FP64,成本自然降低很多。

FP32可以兼容INT8,但FP32的成本相對INT8要高至少4倍,因此英偉達(dá)單獨(dú)搞出來張量計(jì)算單元即tensor core來應(yīng)對INT8,只留少量的FP32,向下兼容沒問題,但不能向上兼容。

圖片來源:英偉達(dá)

以英偉達(dá)Orin為例,包含2048個(gè)CUDA核心,這是針對FP32的,F(xiàn)P32精度下算力為5.2TOPS,INT8格式下算力為167TOPS,還包含64個(gè)張量核心,這是針對所謂DLA的,原生態(tài)INT8格式,算力為87TOPS,合計(jì)為275TOPS。如果英偉達(dá)放棄FP32,全改為張量核心,那么算力上1000TOPS易如反掌,但英偉達(dá)還是考慮Orin盡可能地覆蓋更大的市場,畢竟汽車市場太小了,所以添加了CUDA核心。

再以華為為例,華為每個(gè)計(jì)算核心里有三種運(yùn)算資源,分別是標(biāo)量、矢量和張量,張量基本可等同于AI運(yùn)算。

圖片來源:華為

其中張量計(jì)算即圖中的3D CUBE,每個(gè)CUBE包含4096個(gè)FP16 MACs,8192個(gè)INT8 MACs,一個(gè)MAC是包含兩個(gè)Ops,因此如果運(yùn)行頻率是1GHz,那FP16算力就是1G*2*4096=8TOPS。INT8算力就是16TOPS。FP16也可以在INT8下運(yùn)算,此時(shí)算力翻倍,合計(jì)就是32TOPS算力。

AI芯片嚴(yán)格來講,AI加速器和GPU都是針對并行計(jì)算設(shè)計(jì)的,在CNN時(shí)代非常合適,但在后CNN時(shí)代,出現(xiàn)了很多串行計(jì)算,對AI加速器非常不友好,對CPU和DSP非常友好。例如NMS。Transformer就是如此,它不僅需要串行計(jì)算算力,還需要足夠的存儲(chǔ)帶寬支持,單純的AI算力數(shù)值在Transformer面前毫無意義。實(shí)際不僅Transformer,很多CNN的變種也是如此,如目前主流的YOLOV4、YOLOV5、RESNET50。

我們把AI算子分為串行型和并行型,其中串行型通常都是逐點(diǎn)元素型element-wise,它有兩個(gè)特點(diǎn),一是通常是串行運(yùn)算,二是有大量的存儲(chǔ)數(shù)據(jù)動(dòng)作,非常消耗存儲(chǔ)帶寬。它們對算力需求很低,但存儲(chǔ)要求很高,最適合此類運(yùn)算的是DSP,因?yàn)镈SP是哈佛架構(gòu),數(shù)據(jù)和指令總線分開,效率高。但DSP編譯器非常難搞,只能用在汽車這種封閉體系內(nèi)。其次是CPU,通用性很強(qiáng),針對并行計(jì)算的GPU和AI芯片不適合此類逐點(diǎn)運(yùn)算,遇到此類計(jì)算,通常都是退回到CPU中運(yùn)算,這也是為何英偉達(dá)和微軟都要費(fèi)盡心機(jī)自研CPU的主要原因。

微軟剛剛發(fā)布的自研CPU:Cobalt 100,采用128核心ARM NeoverseN2架構(gòu)。

Transformer的計(jì)算過程

上圖是Transformer的計(jì)算過程,在此計(jì)算過程中,矩陣乘法是典型的計(jì)算密集型算子,也叫GEMM,通用矩陣乘法。存儲(chǔ)密集型算子分兩種,一種是矢量或張量的神經(jīng)激活,多非線性運(yùn)算,也叫GEMV,也就是通用矩陣矢量乘法。另一種是上面說的逐點(diǎn)元素型element-wise。

圖片來源:Samsung

上圖是三星對GPT大模型workload分析,在運(yùn)算操作數(shù)量上,GEMV所占的比例高達(dá)86.53%,在大模型運(yùn)算延遲分析上,82.27%的延遲都來自GEMV,GEMM所占只有2.12%,非線性運(yùn)算也就是神經(jīng)元激活部分占的比例也遠(yuǎn)高于GEMM。

圖片來源:Samsung

上圖是三星對GPU利用率的分析,可以看出在GEMV算子時(shí),GPU的利用率很低,一般不超過20%,換句話說80%的時(shí)間GPU都是在等待存儲(chǔ)數(shù)據(jù)的搬運(yùn)。還有如矩陣反轉(zhuǎn),嚴(yán)格地說沒有任何運(yùn)算,只是存儲(chǔ)行列對調(diào),完全是存儲(chǔ)器和CPU在忙活。解決辦法很簡單且只有一個(gè),就是用HBM高寬帶內(nèi)存,缺點(diǎn)很明顯,很貴,完全無法用在汽車領(lǐng)域。

除了Transformer外,還有一些新技術(shù),典型的有NMS和Depthwise,后者在移動(dòng)領(lǐng)域如手機(jī)上非常常見,如MobileNets架構(gòu)。NMS則在車載領(lǐng)域流行,是Non-Maximum Suppression的縮寫,即非極大值抑制。其思想是搜索局部最大值,抑制非極大值。NMS算法在不同應(yīng)用中的具體實(shí)現(xiàn)不太一樣,但思想相同。NMS在計(jì)算機(jī)視覺任務(wù)中得到了廣泛的應(yīng)用,例如邊緣檢測、人臉檢測、目標(biāo)檢測(DPM,YOLO,SSD,F(xiàn)aster R-CNN)等。NMS對傳統(tǒng)的卷積加速或者說AI專用芯片就很不友好。

非極大值抑制的流程如下:根據(jù)置信度得分進(jìn)行排序,選擇置信度最高的比邊界框添加到最終輸出列表中,將其從邊界框列表中刪除,計(jì)算所有邊界框的面積,計(jì)算置信度最高的邊界框與其它候選框的IoU。刪除IoU大于閾值的邊界框,重復(fù)上述過程,直至邊界框列表為空。排序部分是典型的串行計(jì)算,AI芯片完全無法加速。實(shí)際類似NMS的計(jì)算不少,這類計(jì)算用DSP加速是最合適的。

Synopsys提出一種新方法,就是給NPU增加一個(gè)矢量DSP來處理此類計(jì)算。Depthwise也適合用DSP處理,手機(jī)上流行的Mobilenets是Depthwise典型代表,對NPU來說不合適,這也是高通手機(jī)AI特別強(qiáng)的地方,高通一直是堅(jiān)持用DSP的,當(dāng)然DSP不適合做并行計(jì)算。

AWS兩代Inferentia對比

上圖是亞馬遜兩代Inferentia的對比,二代Inferentia是在2023年4月發(fā)布的,針對Transformer做了優(yōu)化,每個(gè)NeuronCore-v2都是一個(gè)獨(dú)立的異構(gòu)計(jì)算單元,具有四個(gè)主要引擎:張量(Tensor)、向量(Vector)、標(biāo)量(Scalar)和GPSIMD引擎。張量引擎針對矩陣運(yùn)算(基本可等同于卷積運(yùn)算甚至傳統(tǒng)AI運(yùn)算)進(jìn)行了優(yōu)化。標(biāo)量引擎針對ReLU(整流線性單元)函數(shù)等元素運(yùn)算進(jìn)行了優(yōu)化。向量引擎針對非元素向量操作進(jìn)行了優(yōu)化,包括批量歸一化或池化。GPSIMD類似于DSP,不過主要做控制流運(yùn)算符。

Transformer時(shí)代,傳統(tǒng)的AI芯片難以生存,某種意義上講,傳統(tǒng)的AI芯片不存在了,因?yàn)門ransformer需要標(biāo)量(CPU)、向量(矢量,GPU)、張量、逐點(diǎn)矢量(DSP)運(yùn)算資源,把這么多資源整合在一起,顯然不能叫AI芯片了。

免責(zé)說明:本文觀點(diǎn)和數(shù)據(jù)僅供參考,和實(shí)際情況可能存在偏差。本文不構(gòu)成投資建議,文中所有觀點(diǎn)、數(shù)據(jù)僅代表筆者立場,不具有任何指導(dǎo)、投資和決策意見。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
DRV8825PWP 1 Texas Instruments 45-V, 2.5-A bipolar stepper motor driver with current regulation and 1/32 microstepping ? 28-HTSSOP -40 to 85

ECAD模型

下載ECAD模型
$6.46 查看
NE555DRG4 1 Texas Instruments Single Precision Timer 8-SOIC 0 to 70

ECAD模型

下載ECAD模型
$0.39 查看
DG412DY-T1-E3 1 Vishay Intertechnologies Analog Switch Quad SPST 16-Pin SOIC N T/R

ECAD模型

下載ECAD模型
$2.86 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

佐思汽車研究:致力于汽車、TMT、新能源(特別是新能源汽車、智能汽車、車聯(lián)網(wǎng))領(lǐng)域的產(chǎn)業(yè)研究、專項(xiàng)調(diào)研、戰(zhàn)略規(guī)劃和投資咨詢服務(wù)。