華為智能汽車部門IntelligentAutomotive Solutions(IAS)下設包括提供應用算法的AutonomousDriving Solution (ADS)部門、提供域控制器的Mobile Data Center(MDC)和提供傳感器系統的集成感知事業部。其中,ADS負責算法研究,下分很多小組,分得特別精細,比如有Obstacle Detection Team障礙物探測、Prediction and Decision預測與決策;MDC類似于Tier1,前身為中央計算部門,主要為華為ARM服務器業務提供硬件。華為智能駕駛使用的芯片由海思提供,華為ARM服務器芯片也由海思提供,智能駕駛和ARM服務器芯片共用大部分研發成果。
圖片來源:https://ggim.un.org/meetings/2019/Deqing/documents/1-3%20Huawei%20slides.pdf
海思AI產品線規劃有四條,分別為鯤鵬、昇騰、麒麟和鴻鵠。其中,鯤鵬系列主要是CPU,昇騰是AI加速器,麒麟主要是針對手機,鴻鵠針對電視。智能駕駛是昇騰產品線的延伸。此外基于麒麟990的麒麟990A則是華為汽車座艙芯片。
華為智能駕駛芯片主要有昇騰310、昇騰610和昇騰620,這三款芯片還可以級聯增加性能。https://www-file.huawei.com/-/media/corp2020/pdf/publications/huawei-research/2022/huawei-research-issue1-en.pdf,這個文檔里有華為昇騰系列芯片的詳細解釋,本文主要資料來源就是這個文檔。
昇騰610的內部框架圖
圖片來源:華為
昇騰910內部框架圖
圖片來源:華為
華為設計芯片是模塊形式,盡量復用研發成果,昇騰系列芯片的CPU和AI核心基本是相同的,只是核心數量不同。
華為昇騰核心特性一覽表
圖片來源:華為
昇騰核心即AI核,分原始、Max、Mini、Lite、Tiny幾個版本,針對不同的應用使用不同的核心和數量配置,如針對手機領域的麒麟990,是兩個Lite和一個Tiny核心,三個加起來是6.88TOPS@INT8算力。昇騰310則是兩個Mini核心,昇騰610則是10個原始核心,昇騰910是32個Max核心。昇騰620可能是10個Max核心。每個核心基本是相同的,主要是緩存配置和頻率配置不同。
不同的核心對應不同的算法網絡
圖片來源:華為
昇騰Max核心內部框架
圖片來源:華為
上圖為Max核心內部框架,主要包括標量Scalar、矢量Vector和張量Tensor三個運算單元。標量單元負責任務調度,矢量單元負責深度學習最后的激活階段,張量負責卷積矩陣乘法。
三種運算單元的計算模式
圖片來源:華為
標量基本近似CPU,靈活性最高,但針對AI運算力最低。1D矢量近似于GPU,靈活性居中,AI算力中等,CUBE針對2D矩陣,也就是一般意義上的張量。
如果按照嚴格數學的定義,那么矢量是一階張量,矩陣是二階張量,CUBE核跟英偉達的所謂張量核Tensor基本一致。
英偉達自Turing架構開始用的張量核架構和華為的CUBE基本一致,都是三維架構。
三種運算核心的對比
圖片來源:華為
一個CUBE核是8TOPS@FP16的算力,注意是FP16不是常見的INT8,車載領域一般是INT8。一個CUBE內部包含4096個FP16 MACs,8192個INT8 MACs,而一個MAC是包含兩個Ops,因此如果運行頻率是1GHz,那FP16算力就是1G*2*4096=8T。
同樣,谷歌的TPU V1是65000個FP16 MAC,運行頻率0.7GHz,那么算力就是65000*0.7G*2=91T。特斯拉第一代FSD兩個NPU,每個NPU是9216個INT8 MAC,運行頻率是2GHz,算力就是2*2*2G*9216=73TOPS。所謂算力基本就是MAC數量的堆砌,堆的越多,算力越高,面積也越大,成本就越高。
算力這個數字不用較真。
幾個手機芯片的AI算力對比
來源:華為
高通驍龍865標稱最高,有8TOPS,但AI得分很低,遠低于4.5TOPS的聯發科天璣1000,更低于華為的麒麟990,顯然高通的水分很大,聯發科則太老實了,標稱比實際低了至少1TOPS。
華為在2019年在IEEE上發表論文《Kunpeng 920: The First 7-nm Chiplet-Based 64-Core ARM SoC for CloudServices》,鏈接為https://ieeexplore.ieee.org/document/9444893,這可是要付費瀏覽的論文,不是ARXIV那種只要你投就發表的論文,IEEE的論文是要嚴格審核的。
華為的論文主要說了LLC,即最后一級緩存。鯤鵬920的設計中,將SoC的全局LLC切片到各個CPU Cluster中,使LLC與CPU Cluster形成NUMA關系。因此,需要仔細考慮如何選擇每個集群的適當大小,以最大限度地發揮其效益。綜合考慮多種因素,選擇每個集群4個CPU核心,以獲得當前進程節點的最佳PPA分數。
LLC采用私有模式或共享模式:私有模式通常用于每個CPU核心承載相對獨立的任務數據時;當SoC內的任務共享大量數據時,通常使用共享模式。
在私有模式下,每個CPU集群和對應的LLC切片組成一個私有組,可以避免集群訪問高延遲的緩存切片。
在共享模式下,所有 LLC切片組合在一起充當一個塊,以提高 SoC 內部數據的重用率。
再來看CPU部分,昇騰610里是16核心的CPU,按照慣例這里的CPU核心很可能就是鯤鵬里的CPU核心,即《Kunpeng 920: The First 7-nm Chiplet-Based 64-Core ARM SoC for CloudServices》里所說的TAISHAN V110,眾所周知,泰山也是華為服務器的產品線名稱。TAISHAN V110是ARM系列的魔改,因為TAISHAN V120內核是基于ARM Cortex-A76的魔改,https://www.huaweicentral.com/kirin-990a-huaweis-first-auto-chipset-installed-in-arcfox-alpha-s-smart-car/,這里提到了麒麟990A的CPU是TAISHAN V120的lite版,而https://www.hisilicon.com/en/products/Kirin/Kirin-flagship-chips/Kirin-990-5G,則直接承認麒麟990的CPU就是ARM Cortex-A76,因此TAISHANV110很可能是ARM Cortex-A75或A73或者是ARM服務器系列的N1。和英偉達的Orin使用的ARM Cortex-A78AE差距很大,但華為用數量彌補了這一差距,基本與英偉達旗鼓相當。
NoC方面是2D的4*6 MESH網格,節點間工作頻率2GHz,帶寬1024位即256GB/s,這個在2019年是比較高端的配置,但現在是2023年了,只能是中等配置。
華為與其他智能駕駛芯片的對比
圖片來源:華為
華為最后也做了與其他智能駕駛芯片的對比,從中也可以看出昇騰610的die size尺寸很大,有401平方毫米。根據TechanaLye的分析,英偉達Orin的die size是455平方毫米,不過英偉達是三星的8納米工藝,如果用和昇騰一樣的臺積電7納米工藝,那么面積應該與昇騰610差不多,也就是說昇騰610的硬件成本和英偉達Orin是基本一致的。依照昇騰610的功率,水冷散熱是少不了的。
算力實際上很難對比,英偉達的一般都是稀疏算力,而華為據說是稠密,通常兩者會差一倍。英偉達Orin有多個版本,最頂級版本的275TOPS@稀疏INT8,算力實際上是兩部分:一部分由2048個CUDA貢獻,最高頻率1.3GHz,貢獻170TOPS@稀疏INT8算力;另一部分是64個張量核貢獻,最高頻率1.6GHz,貢獻105TOPS@INT8稀疏算力,如果是FP32稠密格式那么算力僅為5.3TOPS(此時只有CUDA能處理FP32數據),并且CUDA核和張量核很難同時達到最大化性能。張量核主要做矩陣乘法,CUDA主要做矩陣與矢量乘法,矢量與矢量之間乘法,CPU會根據數據和任務的不同安排誰來工作。
此外稀疏和稠密有三種不同的定義,一種稀疏是計算稀疏,稀疏指計算密度低,谷歌第四代TPU就特設稀疏核,就是針對稀疏計算部分如transformer的嵌入部分。另一種是輸入數據本身就是稀疏矩陣,還有一種是密集權重模型經過剪枝后的稀疏模型。天然稀疏矩陣指原始數據就包含很多0的矩陣,激光雷達的信息矩陣就是典型的稀疏矩陣,RGB攝像頭一般是稠密矩陣。
在汽車這種嵌入式領域,算力和存儲帶寬限制需要盡可能地降低權重規模,對模型進行剪枝或者說蒸餾,這種屬于主動將模型稀疏化,通常有四級,分別是Fine-grained、Vector、Kernel和Filter,分別對應單個權重、行或列、通道和卷積核。
英偉達對于最高級的fine grained做了特別優化,相對稠密模型,計算速度提高一倍,也就是算力數值高了一倍,英偉達公布的算力數值,一般默認是稀疏。如果沒有針對fine grained優化,那么計算速度還是與稠密模型時一致。順便說一句,對于激光雷達這種稀疏矩陣,人類目前沒有找到好的優化加速的方法。
算力數值實際和算法高度捆綁。若算法不匹配,最糟糕的情況下,算力只能發揮1%不到,也就是如果是100TOPS的算力,那么實際只發揮了不到1TOPS,這種情況不算罕見。
昇騰的軟件開發棧
圖片來源:華為
上圖是昇騰的軟件開發棧,CUDA還是必須使用,算子庫還是常見的cuBLAS,英偉達的GPU此時會更占優勢。
Transformer時代,存儲帶寬比算力數值更有價值。CNN時代,卷積之類的稠密算子占了90%以上的計算,而Transformer時代稠密算子所占的部分大幅下降,對存儲帶寬要求高的存儲密集型算子大幅增加數倍,80-90%的計算延遲都是由這些算子造成的。
存儲帶寬方面,昇騰910不計成本使用了HBM,不過2019年只有HBM一代,昇騰910的存儲帶寬是1TB/s,和目前主流AI加速器比差距較大;昇騰610自然無法用昂貴的HBM,只能是LPDDR4/5,估計是100-200GB/s之間;昇騰310考慮成本,存儲帶寬只有47.8GB/s。特斯拉二代FSD用了GDDR6做存儲,可輕易超過400GB/s。
考慮到華為的智能駕駛芯片是2019年確定設計框架的,這在2019年毫無疑問是全球最先進的,沒有之一,即便到了2023年,這個設計仍然不算落伍,但與英偉達和高通的下一代相比,難免出現差距。特別是Transformer對AI運算有非常大的改變,必須做出對應的修改。
-
華為
+關注
關注
216文章
34411瀏覽量
251496 -
智能駕駛
+關注
關注
3文章
2505瀏覽量
48736 -
cnn
+關注
關注
3文章
352瀏覽量
22203
原文標題:華為智能駕駛芯片深度分析
文章出處:【微信號:zuosiqiche,微信公眾號:佐思汽車研究】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論