一、圖像識別是錦上添花而非不可或缺
自動駕駛領域首先要保證的是安全,其次才是智能。 在無人車環(huán)境感知問題中,必須要知道自動駕駛車輛與目標間的距離、方位角,目標移動的速度,目標位置按時間序列的的預測(目標追蹤),只有知道這些才能避免碰撞。傳統(tǒng)的做法是先獲得目標的三維Bounding Box,再與毫米波雷達的數(shù)據(jù)融合,獲得目標的速度和方位角,再通過激光雷達做目標追蹤。我們并不需要對目標進行精確的語義分割,只需將目標以一個三維的Bounding Box準確框出即可(即Detection)。 最后才是識別目標,才是圖像識別。
通常有兩種做法獲得3D Bounding Box,第一種如上圖,采用激光雷達與攝像頭融合的方法,這是目前業(yè)內的主流。這種密集PointFusion體系結構有兩個特征提取器:一個處理原始點云數(shù)據(jù)的PointNet變體(A),以及一個從輸入圖像中提取視覺特征的CNN(B)。之后有兩種融合,一種是預測8個角中每個角相對于輸入點的空間偏移,如(C)所示:對于每個輸入點,網(wǎng)絡預測從角落(紅點)到輸入點(藍色)的空間偏移(白色箭頭),并選擇具有最高分數(shù)的預測作為最終預測(E)。另外一種直接回歸盒角位置的香草全局結構(D)。
另一種是只使用激光雷達,以蘋果為代表,使用VoxelNet。VoxelNet是一個端到端的點云目標檢測網(wǎng)絡,VoxelNet的網(wǎng)絡結構主要包含三個功能模塊:(1)特征學習層;(2)卷積中間層;(3) 區(qū)域提出網(wǎng)絡( Region Proposal Network,RPN)。
特征學習網(wǎng)絡的結構如上圖所示,包括體素分塊(Voxel Partition),點云分組(Grouping),隨機采樣(Random Sampling),多層的體素特征編碼(Stacked Voxel Feature Encoding),稀疏張量表示(Sparse Tensor Representation)等步驟。卷積層相對簡單,每一個卷積中間層包含一個3維卷積,一個BN層(批標準化),一個非線性層(ReLU)。
RPN 是目標檢測網(wǎng)絡中常用的一種網(wǎng)絡,該網(wǎng)絡包含三個全卷積層塊(Block),每個塊的第一層通過步長為2的卷積將特征圖采樣為一半,之后是三個步長為1的卷積層,每個卷積層都包含BN層和ReLU操作。將每一個塊的輸出都上采樣到一個固定的尺寸并串聯(lián)構造高分辨率的特征圖。
這種只使用激光雷達的方法效果要比傳感器融合效果更好,蘋果的論文里有對比,如上表。缺點是點云密度要求高,最好是128線,最低也要是64線。
無論哪一種方法,所需的運算資源都遠小于圖像識別類深度學習或語義分割類深度學習。按照ISO26262 功能安全的思路,安全關聯(lián)度高的領域要投入盡量多的資源,安全關聯(lián)度低的領域要盡量減少資源的浪費,這樣既保證安全,又降低成本。
雙目也可以獲得自動駕駛車輛與目標間的距離、方位角,目標移動的速度。目標位置按時間序列的預測(用光流法的目標追蹤),但是要獲得精確的3D Bounding Box,雙目是不大可能的,雙目的深度數(shù)據(jù)不夠精確。
雙目的好處是不使用復雜的傳感器融合,也不使用昂貴的激光雷達,消耗運算資源相對較低,整體成本是最低的,缺點是無法做到全天候。雙目對劇烈變化的光線無法適應,當然單目也有同樣的問題。此外,雙目使用傳統(tǒng)的線性算法,可解釋性、確定性遠高于深度學習,更符合ISO26262對安全的要求。對于深度學習這種黑盒子,即便是最低的ISO26262 ASILA級都無法達到,因為ISO26262最基本的要求就包括確定性和可解釋性。
反過來說,如果選擇雙目,那么所需要的運算資源會大大減少。目前英偉達的Xavier、瑞薩的V3H、NXP的S32V3都有對雙目的硬核支持。通常都用硬核來完成雙目視差和光流的計算,因為雙目的視差和光流是多任務的并行計算。
來源:博世
博世和大陸都堅持全面使用雙目,浮點運算4TOPS即可。
長期以來有個誤解,那就是 GPU擅長并行計算,實際GPU擅長的是單一任務的并行計算,而非多任務的并行計算,多任務的并行計算還是要靠CPU,不過CPU確實不擅長并行計算。所以通常都用硬核來完成雙目視差和光流的計算,硬核的缺點是毫無靈活性可言,并且成本偏高。
所以自動駕駛的主芯片,要比拼不是單一任務的浮點運算的算力,只有圖像識別,語義分割才是真正消耗單一任務的浮點運算的地方,而這些不是必須的,只是錦上添花。自動駕駛主芯片要比拼的還是多任務的處理能力。
二、卷積與MAC,DSP最適合做深度學習的推理
圖像識別是自動駕駛芯片計算力消耗最大的部分,通常核心的算法都是基于CNN的,也就是基于卷積的。卷積是什么?如果純粹從算法的角度,卷積就是乘積累加算法,即MAC(Multiply Accumulate)。
第二個等號右邊每個括號里的系數(shù)構成的序列 (14,34,14,4),實際上就是序列 (2,4) 和 (7,3,1) 的卷積。這就是個典型的MAC,通常MAC是DSP的核心運算方式,衡量DSP性能最常用的數(shù)據(jù)就是GMAC/s,即每秒十億次乘積累加。
DSP主要的工作也是做MAC的,理論上講DSP是最適合做卷積運算的,是卷積運算效率最高的硬件,但是我們看到DSP在卷積領域幾乎無人提及,即便德州儀器也很少發(fā)聲。原因在于DSP不是并行處理的架構,也就是說,DSP一般是單核的,而GPU是多核的,單核的DSP遠不是GPU的對手。不過DSP的好兄弟FPGA上場了,F(xiàn)PGA天生的并行處理架構,自2010年后,F(xiàn)PGA將多核DSP引入系統(tǒng),今天幾乎所有的中高端FPGA都或多或少擁有數(shù)十乃至數(shù)百個DSP核,通常這種FPGA可以在 4 瓦的功率電力預算下實現(xiàn) 200 G-ops/s 的速度,也即 50 G-ops/s/W,這個結果幾乎是 GPU 效能的 10 倍。
不僅天生更適合做卷積運算,DSP和FPGA在架構上也具備壓倒性優(yōu)勢。GPU同CPU一樣,都是馮諾伊曼架構,也就是指令執(zhí)行過程:取指令->指令譯碼->指令執(zhí)行,只有在指令執(zhí)行的時候,計算單元才發(fā)揮作用,大部分時候,計算單元是空閑無事可做的。馮諾伊曼架構數(shù)據(jù)和程序放在同一個地方,不用花銷太多的資源就能取到數(shù)據(jù)和程序。這也算是馮氏結構的優(yōu)點。可是由于程序和數(shù)據(jù)存放在同一存儲區(qū),存取程序和數(shù)據(jù)間時共享同一總線,導致了馮諾依曼瓶頸。
與馮氏結構相對的是哈佛結構,即將程序和數(shù)據(jù)分開存儲的結構。其過程CPU首先到程序指令儲存器中讀取程序指令內容,解碼后得到數(shù)據(jù)地址,再到相應的數(shù)據(jù)儲存器中讀取數(shù)據(jù),并進行下一步的操作(通常是執(zhí)行)。程序指令儲存和數(shù)據(jù)儲存分開,數(shù)據(jù)和指令的儲存可以同時進行,可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度。哈佛結構能夠完成指令和數(shù)據(jù)的并發(fā)操作,DSP處理器的指令集通常都允許程序員在一個指令內說明若干個并行的操作,減輕了程序運行時的訪存瓶頸,也就是提高了吞吐量,是一種并行結構。而馮氏結構只能是順序操作,是一種串行的處理方式。原始的馮·諾依曼體系結構,如GPU就通過引入管線技術(Pipeline)提高吞吐量。與哈佛架構比,做并行計算是要吃虧的。但哈佛架構也有缺點,那就是指令既不直觀,也不容易使用,通用型的編譯器很難做。
對馮諾伊曼架構來說,芯片本身運算速度不是瓶頸,瓶頸在于內存的帶寬,換句話說,你看到的計算性能參數(shù)都要被內存打折扣,大部分時候運算部分都在等待內存響應?,F(xiàn)在一顆手機中處理器的性能已經(jīng)比20年前超級計算機中的處理器還要強。另一方面,計算機的主要內存使用的是DRAM方案,DRAM是基于電容充放電實現(xiàn)的高密度存儲方案,其性能(速度)取決于兩方面,即內存中電容充放電的讀?。瘜懭胨俣纫约癉RAM與處理器之間的接口帶寬。DRAM電容充放電的讀?。瘜懭胨俣入S著摩爾定律有一定提升,但是速度并不如處理器這么快。另一方面DRAM與處理器之間的接口屬于混合信號電路,其帶寬提升速度主要是受到PCB板上走線的信號完整性所限制,因此從摩爾定律晶體管尺寸縮小所獲得的益處并不大。這也造成了DRAM的性能提升速度遠遠慢于處理器速度,目前DRAM的性能已經(jīng)成為了整體計算機性能的一個重要瓶頸,即所謂阻礙性能提升的“內存墻”。
除了性能之外,內存對于能效比的限制也成了傳統(tǒng)馮諾伊曼體系計算機的一個瓶頸。這個瓶頸在人工智能應用快速普及的今天尤其顯著。這一代人工智能基于的是神經(jīng)網(wǎng)絡模型,而神經(jīng)網(wǎng)絡模型的一個重要特點就是計算量大,而且計算過程中涉及到的數(shù)據(jù)量也很大,使用傳統(tǒng)馮諾伊曼架構會需要頻繁讀寫內存。目前的DRAM一次讀寫32bit數(shù)據(jù)消耗的能量比起32bit數(shù)據(jù)計算消耗的能量要大兩到三個數(shù)量級,因此成為了總體計算設備中的能效比瓶頸。如果想讓人工智能應用也走入對于能效比有嚴格要求的移動端和嵌入式設備以實現(xiàn)“人工智能無處不在”,那么內存訪問瓶頸就是一個不得不解決的問題。
為了解決“內存墻”問題,一個最近得到越來越多關注的思路就是做內存內計算。2018年的國際固態(tài)半導體會議(ISSCC,全球最頂尖的芯片設計會議,發(fā)表最領先的芯片設計成果,稱為“芯片界的奧林匹克”)有專門一個議程,其中的論文全部討論內存內計算;今年早些時候,IBM發(fā)布了基于相變內存(PCM)的內存內計算,在此之后基于Flash內存內計算的初創(chuàng)公司Mythic獲得了來自軟銀領投的高達4000萬美元的B輪融資,而在中國,初創(chuàng)公司知存科技也在做內存內計算的嘗試。
另外一種解決思路基于目前的技術,就是3D PoP內存,在處理器內部用TSV技術堆疊內存,與傳統(tǒng)的芯片外置內存相比,這種方式可以提高10倍的存取效率,但這需要與內存廠家通力合作,三星在這方面具備天然優(yōu)勢,所以三星也在開發(fā)人工智能芯片,將來會是英特爾和英偉達的強勁對手。
對哈佛架構的FPGA來說,內存瓶頸的問題要小得多,幾乎可以忽略,F(xiàn)PGA可以做片內SRAM,本質上FPGA就是一片SRAM。
FPGA雖然優(yōu)勢極為明顯,然而卻有致命缺點。那就是與GPU相比,F(xiàn)PGA都是硬線設計,die面積大,成本高,加上應用面窄,出貨量低進而導致性價比太低。GPU的通用性很強,產品IP可以復用,等于出貨量很高,所以性價比很高。
三、AUTOSAR
在自動駕駛時代,軟件的工作量是驚人的,因此AUTOSAR成為不可或缺的支持,AUTOSAR的好處一言以蔽之就是軟件和硬件分離,提高軟件的復用性,降低軟件開發(fā)成本。同時AUTOSAR也是ISO26262 ASIL的關鍵元素。
只有使用AUTOSAR,才有可能進入主流車廠的供應鏈,才可能通過ISO 26262的嚴苛安全標準。因此全球主要芯片廠家如英特爾、英偉達、NXP、瑞薩和意法半導體,中國的華為也于近期加入AUTOSAR聯(lián)盟。
-
芯片
+關注
關注
460文章
52505瀏覽量
440808 -
圖像識別
+關注
關注
9文章
527瀏覽量
39109 -
自動駕駛
+關注
關注
789文章
14318瀏覽量
170620
原文標題:自動駕駛芯片之爭(一)
文章出處:【微信號:zuosiqiche,微信公眾號:佐思汽車研究】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
評論