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

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

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

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

圖片來源:Synopsys

上圖是Synopsys推出的一款IP,最高支持8個NPU,達到3500TOPS的算力,單個NPU也可達到440TOPS的算力,并且這個算力是不參雜任何水分的,完全靠MAC數量獲得。

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

智能駕駛領域早已不是傳統CNN的領域,Transformer相對CNN可謂有著翻天覆地的變化。芯片從設計到正式量產需經過一個漫長的過程,可能是2-4年。因此現在市面上流行的嵌入式智能芯片基本上是源自于2年甚至更長時間之前的設計,而那時候設計的嵌入式智能芯片很大概率未考慮Transformer的情況,因為當時可能大部分市面上流行的還是以CNN為主的模型,很難部署Transformer。

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

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

浮點運算不同的精度也需要設計不同的寄存器,CPU里的FPU可以同時支持不同精度的浮點運算,但在GPU里針對單精度和雙精度就需要各自獨立的計算單元,不過半精度就不需要獨立的計算單元。例如英偉達的RTX3090單精度性能(FP32)達到35.7TFLOPS,遠超A100的19.5TFLOPS,FP16性能達到285TFLOPS,也接近A100的312TFLOPS。但3090價格遠低于A100 GPU,這是因為A100定位于全面通用型AI加速,A100需要考慮雙精度運算,因為有限元的稀疏矩陣求解器,還有復雜表面流場的計算離不開雙精度,而同樣算力雙精度耗費晶體管數量是單精度的4-8倍,換句話說同樣算力,雙精度運算消耗的成本是單精度的4-8倍。而RTX3090是圖形領域的,主要是FP32數據格式,完全不考慮科學運算的FP64,成本自然降低很多。

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

圖片來源:英偉達

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

再以華為為例,華為每個計算核心里有三種運算資源,分別是標量、矢量和張量,張量基本可等同于AI運算。

圖片來源:華為

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

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

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

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

Transformer的計算過程

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

圖片來源:Samsung

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

圖片來源:Samsung

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

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

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

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

AWS兩代Inferentia對比

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

Transformer時代,傳統的AI芯片難以生存,某種意義上講,傳統的AI芯片不存在了,因為Transformer需要標量(CPU)、向量(矢量,GPU)、張量、逐點矢量(DSP)運算資源,把這么多資源整合在一起,顯然不能叫AI芯片了。

免責說明:本文觀點和數據僅供參考,和實際情況可能存在偏差。本文不構成投資建議,文中所有觀點、數據僅代表筆者立場,不具有任何指導、投資和決策意見。

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
LMC555CMX/NOPB 1 National Semiconductor Corporation IC PULSE; RECTANGULAR, 3 MHz, TIMER, PDSO8, ROHS COMPLIANT, SOP-8, Analog Waveform Generation Function
$1.42 查看
PSS15S92F6-AG 1 Mitsubishi Electric AC Motor Controller, 30A, DIP-25/24

ECAD模型

下載ECAD模型
$22.26 查看
XTR111AIDGQT 1 Texas Instruments Voltage-to-current converter/transmitter with 3-V to 15-V regulator and resistor set I/O ratio 10-HVSSOP -40 to 125

ECAD模型

下載ECAD模型
$2.88 查看

相關推薦

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

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