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