袁沂
(睿馭汽車(北京)有限公司,北京 100015)
主題詞:智能駕駛 車載計算機 ASIC GPU FPGA 加速器 深度學(xué)習(xí)
縮略語
ADAS Advanced Driver Assistance System
(先進駕駛輔助系統(tǒng))
CPU Centre Processing Units(中央處理器)
GPUGraphics Processing Unit(圖形處理器)
FPGA Field-Programmable Gate Arrays
(現(xiàn)場可編程門陣列)
ASIC Application-Specific Integrated Circuit
(專門應(yīng)用的集成電路)
ODD Operational Design Domain
(設(shè)計運行范圍)
DDT Dynamic Driving Task(動態(tài)駕駛?cè)蝿?wù))
OEDR Object﹠Event Detection and Response
(物體、事件探測和反應(yīng))
ADS Automated Driving System
(自動駕駛系統(tǒng))
DET Object Detection Engine(目標(biāo)探測引擎)
TRA Object Tracking Engine(目標(biāo)跟蹤引擎)
LOC Localization engine(定位引擎)
DNNs Deep Neural Networks(深度神經(jīng)網(wǎng)絡(luò))
RISC Reduced Instruction Set Computing
(指令集)
SoC System on Chips(系統(tǒng)級芯片)
LUT Look Up Table(查表法)
DSP Digital Signal Processors
(數(shù)字信號處理器)
AD Autonomous driving Domain
(自動駕駛域)
NPU Neuronal network Processing Units
(神經(jīng)網(wǎng)絡(luò)處理單元)
VMP Vector Microcode Processor
(矢量微碼處理器)
TOPs Trillion Operations Per Second
(每秒萬億次運算)
近幾年隨著深度學(xué)習(xí)、機器視覺、車聯(lián)網(wǎng)和傳感器等技術(shù)的蓬勃發(fā)展,使得高級輔助駕駛,甚至全自主無人駕駛汽車的商用化成為可能。目前不同的科技公司都在加緊向這個產(chǎn)業(yè)鏈的相關(guān)領(lǐng)域進行持續(xù)的科研和產(chǎn)業(yè)化投入。其中,既有大力推廣云服務(wù)的Google、Uber、Baidu等互聯(lián)網(wǎng)翹楚,也有老牌的通用、造車新銳、特斯拉(Tesla)等這樣的整車制造商,更沒有缺席像Inter、NVIDIA這樣的半導(dǎo)體巨頭。為了實現(xiàn)更高級的輔助和自動駕駛,廠商們將各種最新科技集合到一臺汽車終端上,并陸續(xù)推出了不同技術(shù)路線的自動駕駛平臺和服務(wù)方案。
互聯(lián)網(wǎng)公司將更希望占據(jù)在業(yè)務(wù)整合上的頂端優(yōu)勢,通過高精度地圖云服務(wù)和強大的無線網(wǎng)絡(luò),構(gòu)建一個人與車、車與車、物(基礎(chǔ)設(shè)施)與車之間的有機互連,以提供一個安全智能化的自動駕駛方案。整車廠商則更著眼于當(dāng)前相對成熟的技術(shù),通過集成各種傳感器和裝載高性能的本地計算機,并通過產(chǎn)品的快速迭代實現(xiàn)從高級輔助駕駛到全自動駕駛的快速進化。而已經(jīng)投身相關(guān)領(lǐng)域的各半導(dǎo)體公司,作為車載超級計算機和硬件加速器的提供商,其技術(shù)路線之競爭則愈演愈烈,從未停止。
本文將從原理框架、性能對比和商用實例三個角度,對三種主流自動駕駛加速器方案GPU、FPGA和ASIC進行論述和對比,以對未來的技術(shù)方向進行有依據(jù)的預(yù)測。
根據(jù)SAE美國機動車工程師協(xié)會最新發(fā)布的標(biāo)準(zhǔn)SAE J3016TMJUN2018,從駕駛員參與車輛駕駛控制的程度,將其分為6個等級,即從Level 0到Level 5[1]。
Level 0:無自動駕駛,駕駛員必須獨立完成駕駛的全部操作任務(wù);
Level 1:駕駛輔助,自動駕駛系統(tǒng)和駕駛員可以分享對汽車運行的控制,自動駕駛系統(tǒng)在設(shè)計運行范圍內(nèi)(ODD)可以持續(xù)的執(zhí)行動態(tài)駕駛(DDT)任務(wù),包括縱向和側(cè)向運行控制,但不能同時進行縱向和側(cè)向控制,駕駛員需要完成其余的設(shè)計運行范圍內(nèi)的汽車運行控制,如在限定路段可實現(xiàn)自動巡航,駕駛員需保持對車輛的控制并完成如車道變換等任務(wù)(駕駛員雙手不可以離開方向盤)。
Level 2:部分自動駕駛,自動駕駛系統(tǒng)在設(shè)計運行范圍內(nèi)(ODD)可以持續(xù)的執(zhí)行動態(tài)駕駛(DDT)任務(wù),包括同時進行縱向和側(cè)向運行控制,自動駕駛系統(tǒng)可以在限制路段完全控制方向盤、加速和制動踏板。同時,駕駛員保留對車輛的控制權(quán)(駕駛員雙手不可以離開方向盤)。駕駛員要保持對車輛周圍物體和事件探測和反應(yīng)(OEDR)。
Level 3:有條件自動駕駛,自動駕駛系統(tǒng)(ADS)在ODD持續(xù)執(zhí)行全部的動態(tài)駕駛?cè)蝿?wù)(DDT),即ADS可以完全接管駕駛控制權(quán)。當(dāng)駕駛員被系統(tǒng)要求介入駕駛控制的時候,駕駛員必須要介入控制(在限定路段,如封閉高速路開啟自動駕駛模式,駕駛員可以釋放方向盤),包括其它車輛出現(xiàn)故障時駕駛員能做出適當(dāng)?shù)姆磻?yīng)。
Level 4:高級自動駕駛,ADS系統(tǒng)在限定路段可以完全接管駕駛控制權(quán),持續(xù)完成ODD范圍內(nèi)的動態(tài)駕駛?cè)蝿?wù)(DDT),駕駛?cè)藛T對動態(tài)駕駛?cè)蝿?wù)不需要進行響應(yīng),可繼續(xù)實施自動執(zhí)行動態(tài)駕駛?cè)蝿?wù),當(dāng)需要時駕駛員要對ADS進行干預(yù)。
Level 5:全自動駕駛,自動駕駛系統(tǒng)可以在全路段、路況條件下執(zhí)行動態(tài)駕駛?cè)蝿?wù)(即不限ODD),無需駕駛員介入,當(dāng)需要時駕駛員要對ADS進行干預(yù)。
這6個級別通常被定義為L-0無自動駕駛,L-1輔助駕駛,L-2部分自動駕駛,L-3有條件自動駕駛,L-4高級自動駕駛,L-5全自動駕駛。
在這里舉例說明,Tesla的Auto-pilot 2.5功能是介于L-2和L-3之間的自動駕駛模式,并未達到L3的要求,從法規(guī)角度駕駛員的雙手是不可以離開方向盤的。
自動駕駛系統(tǒng)屬于一種“端到端”的控制系統(tǒng),即系統(tǒng)需要對輸入進行實時處理和響應(yīng)(輸出)。從安全性和商用性的角度來看,該系統(tǒng)對響應(yīng)速度、可預(yù)測性、能耗效益等方面有嚴格要求。當(dāng)前最廣泛采用的自動駕駛系統(tǒng),其輸入是從車上多種不同類型傳感器獲取的周圍環(huán)境空間量化的物理信息和視覺數(shù)據(jù)流,在自主行駛過程中不斷傳遞給車載計算機。數(shù)據(jù)再通過結(jié)構(gòu)化和流程化的算法實現(xiàn)對車輛周圍環(huán)境和物體的感知、定位和跟蹤。標(biāo)定數(shù)據(jù)再通過熔合算法建立一個厘米級精度的實時3D地圖,并結(jié)合頂層的平面地圖導(dǎo)航應(yīng)用,制定車輛行進路線和運動軌跡。并最終控制車輛行駛的執(zhí)行機構(gòu),實現(xiàn)精確運動和緊急情況快速反應(yīng)。Shih-CHieh Lin總結(jié)了當(dāng)今全球最先進的自動駕駛系統(tǒng)[2],如圖1。
圖1 確定車輛行進路線和運動軌的自動駕駛系統(tǒng)[2]
圖1 是一種基于攝像頭圖像傳感器的端到端自動駕駛方案。首先,車輛攝像頭獲取連續(xù)幀圖像,其數(shù)據(jù)流同時提供給系統(tǒng)內(nèi)的物體識別引擎(Detector Engine)和物體定位引擎(Localizer Engine)。識別引擎用算法提取圖像中的相關(guān)物體,如車輛、行人、標(biāo)志標(biāo)線或其他基礎(chǔ)設(shè)施等。后續(xù)的跟蹤引擎(Tracker Engine)會對識別出的物體進行持續(xù)跟蹤。與此同時,定位引擎會根據(jù)前后幀圖像的相關(guān)性來判定車輛自身位置是否變化,并通過量化算法確定相對位置,進而實現(xiàn)車輛的自我定位。定位信息和周圍物體信息經(jīng)過融合后,一個包含各種物理環(huán)境數(shù)據(jù)的3D坐標(biāo)空間在融合引擎(Fusion)中建立起來。接下來的車輛動作規(guī)劃程序(Motion Planner)根據(jù)空間環(huán)境情況,制定行駛路徑,優(yōu)化行駛動作,并通過行車控制器對車輛的方向機、加速器和制動器進行一系列的操縱,完成車輛的行進、轉(zhuǎn)向和控速等運動組合。
而路徑規(guī)劃(Mission Planner)軟件使用網(wǎng)絡(luò)地圖(Google或Baidu地圖等),結(jié)合實時交通信息和GPS技術(shù),規(guī)劃從當(dāng)前位置到終點的全徑路線。且在車輛偏離導(dǎo)航路線時,告知動作規(guī)劃控制器,修正或者重新制定新的路線。
上述流程可以看作一個最基本的通過機器視覺和深度學(xué)習(xí)算法實現(xiàn)自動駕駛的模型。但實際上最新的L2以上的自動方案需要包含前向窄角遠焦攝像頭、前向中距攝像頭、前向廣角近焦攝像頭、左前和右前廣角攝像頭、左后和右后廣角攝像頭,以及后看攝像頭等多個以上的圖像傳感器來實現(xiàn)360度的環(huán)境探測,并且還需要多個毫米波和超聲波雷達提供周圍物體的精度距離,包括角度和速度等信息需要輸入融合引擎,以支持高精度3D地圖的建立和控制動作的準(zhǔn)確性,進而確保行駛安全(圖2)。由此,可以看出吞吐和處理如此海量的傳感器數(shù)據(jù)(特別是攝像頭的圖像數(shù)據(jù))對自動駕駛計算機的處理能力挑戰(zhàn)可謂空前。即使是現(xiàn)在最優(yōu)化的算法和硬件架構(gòu),系統(tǒng)不可避免的產(chǎn)生一定的延時。基于人車安全的要求,自動駕駛系統(tǒng)響應(yīng)的延時要求是非??量痰?。隨著高級自動駕駛技術(shù)的發(fā)展,對自動駕駛計算機的各種性能提出了極大的挑戰(zhàn),高性能的車載計算機技術(shù)也推動了自動駕駛汽車的發(fā)展。
圖2 智能駕駛汽車感知系統(tǒng)[3]
對于自動駕駛系統(tǒng)主要有4個約束項目:
(1)計算機性能約束;
(2)可預(yù)測性延遲約束;
(3)散熱性能約束;
(4)電力功耗約束。
3.1.1 AD計算機性能約束
自動駕駛計算機的性能主要體現(xiàn)在系統(tǒng)對實時路況的響應(yīng)速度上。系統(tǒng)必須能參與交通,比如對路上的標(biāo)牌、地標(biāo)和標(biāo)線的識別,對突發(fā)情況的處理,避讓行人、車輛或其他物體。以攝像頭為例,其響應(yīng)速度體現(xiàn)在每秒鐘輸入給計算機的幀率上。典型的駕駛員放開加速踏板要用960 ms,踩死剎車要用2.2 s,用方向盤避讓物體反應(yīng)平均在1.64 s[4],最快的專業(yè)賽車手在緊急狀況下的反應(yīng)也需要100 ms~150 ms以上[5]。所以自動駕駛對攝像頭刷新率的最低需要是不能小于10幀/s。為了應(yīng)對不斷變化的交通環(huán)境,對每個相關(guān)幀從獲取到分析,再到?jīng)Q策控制,其總延時不能超過這個幀周期,這樣才能保障相鄰幀圖像的分割處理,同時不產(chǎn)生控制延遲或者決策覆蓋等問題。
基于以上可以做一個小計算,如果一個自動駕駛系統(tǒng)有8個1 080×1 920分辨率的8 bit RGB攝像頭,每秒要10幀。系統(tǒng)共8個攝像頭,這個計算機需要1 080×1 920×3×8×10×8=3.8 Gb/s的數(shù)據(jù)吞吐和處理能力。這還不包括其他傳感器或更高的幀率要求的情況。
所以在響應(yīng)時間約束和處理數(shù)據(jù)數(shù)量級的要求下,選擇一個處理能力符合要求的硬件系統(tǒng)是實現(xiàn)自動駕駛計算性能的關(guān)鍵之一。
3.1.2 可預(yù)測性延遲約束
在自動駕駛各種數(shù)據(jù)處理和運算中,機器視覺算法占用系統(tǒng)資源最大,而對周圍物體的識別DET、跟蹤TRA和自身定位LOC占用了車載計算機99.4%的算力[2]。在攝像頭捕獲連續(xù)幀圖像的同時,計算機幾乎全力在做各種運算處理。無論采用什么硬件平臺和串行還是并行架構(gòu),從一幀圖像輸入到執(zhí)行動作,都會產(chǎn)生尾延遲。車輛周圍的環(huán)境、物體、氣候狀況是極為多樣和隨機的,所以評估一個系統(tǒng)的可預(yù)測性的處理延遲,可以定義為平均延遲和統(tǒng)計上的99.99%占比可能性的可測延遲兩個參數(shù)[2]。比如,一個系統(tǒng)執(zhí)行TRA算法時,其平均延遲可能是50 ms,但是其99.99%占比時,其延遲可能要到達近300 ms[2]。從上文定義的自動駕駛汽車響應(yīng)速度來講,300 ms顯然高于100 ms的基本要求[2]。這就是對車載自動駕駛計算機執(zhí)行一系列算法時的可預(yù)測性約束評估。
3.1.3 散熱性能約束
一般工業(yè)標(biāo)準(zhǔn)的電子元件額定工作環(huán)境溫度上限為85℃,而車載電子元件則要求到105℃[6]。因為發(fā)動機艙的電控單元ECU需要忍耐這種極限環(huán)境??墒菍τ谄毡榈墓I(yè)級計算機其工作環(huán)溫是不可超過75℃。這就意味著當(dāng)前無論那種自動駕駛計算機平臺都只能設(shè)置在乘員艙,即車上環(huán)境溫度一般在60℃以內(nèi)。
同時因為巨大的計算量會使半導(dǎo)體處理器持續(xù)發(fā)熱,所以用散熱裝置為芯片降溫是非常必要的。通過導(dǎo)出芯片表面熱量,確保處理器內(nèi)部結(jié)溫在安全范圍可控。這樣才能保證自動駕駛計算機的安全運行,防止處理錯誤,甚至系統(tǒng)崩潰導(dǎo)致的行車安全問題和事故。
散熱約束聚焦在這兩個方面,一是保證芯片工作的環(huán)境溫度,二是將大功率IC(如處理器、功率放大器等)降溫。當(dāng)前汽車上散熱設(shè)計是個非常重要而獨立的系統(tǒng),而自動駕駛計算機多采用個體風(fēng)冷或中央水冷系統(tǒng)。
同時,散熱也是需要電能和制造成本,而這又與下文所述的電力功耗約束產(chǎn)生了矛盾。在后續(xù)章節(jié),會討論不同硬件平臺的功耗,實例說明散熱方法。
3.1.4 電力功耗約束
對于汽油轎車,其發(fā)電機工作時典型功率消耗在1~2 kW[7]。如果增加一個400 W左右的自動駕駛計算機負載,它每加侖汽油行駛里程會減少3.23%[8]。而對于執(zhí)行L4及以上自動駕駛功能的插電式新能源汽車(PHEV),其自動駕駛計算機也會使單次充電的行駛里程減少11.5%[2]。對于電動車,續(xù)駛里程參數(shù)非常重要,是消費者選擇電動車品牌時的重要指標(biāo)。而不同結(jié)構(gòu)自動駕駛平臺其功耗差異非常大,計算能力、散熱和功耗之間的平衡是未來硬件平臺協(xié)調(diào)發(fā)展的主題。
在對比不同自動駕駛硬件方案之前,可以先簡單討論一下當(dāng)前自動駕駛的幾個重要算法。從軟件定義硬件的思路,反應(yīng)了要解決一個實際的應(yīng)用,首先要確定軟件架構(gòu),采用何種算法,然后基于特定算法,從性能和成本的角度設(shè)計出相對平衡的硬件執(zhí)行結(jié)構(gòu)和配置。
自動駕駛技術(shù)是要實現(xiàn)一種端到端的控制系統(tǒng)。一端是從周圍環(huán)境獲取各種物理信息的傳感器,一端是根據(jù)系列運算做出決策和動作執(zhí)行的機構(gòu)。中間則是對各種傳感器數(shù)據(jù)進行組織和融合,進而重構(gòu)一個空間地圖,為決策和動作提供依據(jù)。
自動駕駛的主要任務(wù)包括對周圍物體探測(DET)、跟蹤(TR)、自身相對位置的定位(LOC)、以及3D地圖融合(Fusion)、動作的規(guī)劃和任務(wù)的規(guī)劃。盡管近年來對其算法不斷優(yōu)化,但DET、TRA和LOC仍然占用整個系統(tǒng)85.9%~99.4%的計算資源。
其中DET和TRA可以采用最新的DNNs(Deep Neural Networks)算法,而特征提?。‵eature Extraction,F(xiàn)E)算法則是LOC的基礎(chǔ)。其中DNNs算法在通用計算機上有非常大的延遲,比如DET的性能約束要求延遲不能大于100 ms[2],但是通過特定測試,傳統(tǒng)多核計算機還是要消耗7 734 ms。即便是相對接近約束條件的LOC FE算法也高出最低標(biāo)準(zhǔn)近200 ms,在294 ms以上[2]。這可以看出多核通用CPU是無法支撐商用的自動駕駛方案的。究其原因,是因為傳統(tǒng)計算機都是基于單線程任務(wù)的,即使采用多核CPU,也僅是×2、×4、×8之類的倍增。但深度學(xué)習(xí)需要計算處理模型偏向于多層網(wǎng)絡(luò)陣列結(jié)構(gòu),是對大規(guī)模的并行結(jié)構(gòu)的需求。這是傳統(tǒng)CPU,包括X86、RISC結(jié)構(gòu)無法適應(yīng)的。就像人們要玩高渲染要求的3D游戲一樣,需要通過加一塊高性能的顯卡一樣,最好的解決方案就是給自動駕駛計算機也加一塊有強大并行處理能力的加速器,即采用CPU+加速器(Accelerator)的硬件結(jié)構(gòu)。
同時從配置的角度,主要是從采用單核CPU轉(zhuǎn)向采用多核CPU。還有CPU能提供的最大工作時鐘或運算速率需要加強。加速器采用的方案也很重要,目前FPGA方案還是基于嵌入式SoC的內(nèi)嵌硬核IP加速器。同時還要根據(jù)軟件的要求來評估內(nèi)存的容量和速度等參數(shù)。
當(dāng)今有三種主流的“自動駕駛”或是說“深度學(xué)習(xí)”硬件加速器的方案和它們的實現(xiàn)方法,即GPU圖形加速器、FPGA可編程邏輯門陣列和專用的深度學(xué)習(xí)“神經(jīng)網(wǎng)”絡(luò)嵌入式ASIC加速器,他們都在并行處理方面有自己的獨特的技術(shù)訣竅。
既然是加速器,它們是執(zhí)行專有的算法,極大的提高系統(tǒng)在處理感知、跟蹤和定位等運算的速度,進而達到自動駕駛苛刻的性能約束要求。從CPU分類角度,既有支持MIPS+Accelerator的廠商,如Intel的Mobileye EyeQx,也有ARM+Accelerator的廠商高通最新的8195系列(2018年),還有Intel的Xeon+FPGA Accelerator的自動駕駛解決方案。當(dāng)然Tesla Model3的Auto-pilot 2.5采用的是Nvidia DRIVE PX2的自動駕駛平臺的定制版本,即Parker CPU+Pascal GPU,它屬于ARM+Accelerator的范疇。Tesla的Auto-pilot 2.5從功能上屬于L2到L3的過度產(chǎn)品,是增強版的ADAS高級自動駕駛輔助系統(tǒng),由于在任何情況下,駕駛員的雙手不能離開方向盤,所以不能算是自動駕駛的范圍。表1是全球最新的自動駕駛加速器方案。
表1 全球最新的自動駕駛加速器方案
從表1可以看出,從加速器的角度,可以分為基于CPU+GPU專用圖形加速器的自動駕駛平臺、CPU+FPGA現(xiàn)場可編程邏輯門陣列的加速器的自動駕駛平臺和基于ASIC化的NPU神經(jīng)網(wǎng)絡(luò)處理器的多核處理器的SoC自動駕駛硬件平臺。
對應(yīng)不同的硬件平臺,其處理探測(DET)、跟蹤(TRA)和定位(LOC)的算法庫也不同,如表2所示。
表2 加速器平臺算法庫[2]
針對DET和TRA算法,雖然說FPGA和ASIC的邏輯都采用硬件化的深度神經(jīng)網(wǎng)絡(luò)單元,但是其電路的實現(xiàn)方法是不同的。定制化的ASIC采用的多個DNNs固化的電路,而FPGA是采用可重復(fù)配置的內(nèi)部邏輯DNN IP核。而GPU作為通用的圖形處理器,其應(yīng)用首先要基于有由GPU廠商提供的算法庫或基于原廠庫的第三方程序。從開發(fā)者的角度來說,GPU自動駕駛平臺的主要工作重心是應(yīng)用的開發(fā)與機器學(xué)習(xí)的樣本庫的積累。如果原廠,如Nvidia,能提供大量成熟的樣本庫,甚至直接導(dǎo)入大量的成熟的樣本庫,其平臺的成熟度和開發(fā)周期短的優(yōu)勢就非常明顯。這就是在特斯拉Model系列車型中已經(jīng)大量采用GPU的Auto-pilot 2.5的原因。雖然距離L3的自動駕駛還有半代,但是已經(jīng)是大量出貨的落地產(chǎn)品,而且在客戶的實際路上行駛過程中,其樣本庫會進一步擴充和完善。但是GPU有一個致命的弱點,就是為了實現(xiàn)L3級的應(yīng)用中其功耗極大,高至200~300 W以上。如果加之為給GPU降溫的風(fēng)扇或水冷設(shè)備的功耗,單就油耗或電動車的行駛里程也是一個巨大的挑戰(zhàn)。同時,GPU平臺的整車成本也非常高,例如,Tesla從Auto-pilot 2升級到Auto-pilot 2.5,為了滿足GPU的散熱要求,將低成本的風(fēng)冷器升級成水冷系統(tǒng)。雖然說自動駕駛模塊僅是其整車水冷系統(tǒng)的一個節(jié)點。但是為了滿足這個要求就,就要升級這車的冷卻系統(tǒng),其成本壓力可謂不小。
FPGA和ASIC從內(nèi)部電路角度,都是實現(xiàn)某種專用功能的組合或者時序邏輯的硬件電路。ASIC是為了實現(xiàn)這個邏輯而定制化的半導(dǎo)體電路,它是專用且高效的設(shè)計。而FPGA是由數(shù)量巨大的LUT(查表)小邏輯單和DSP構(gòu)成的陣列網(wǎng)絡(luò)。從邏輯實現(xiàn)的效率來講,ASIC更高,從功耗上說,F(xiàn)PGA內(nèi)部邏輯是類似RAM動態(tài)存儲器結(jié)構(gòu),需要保持上電,加上邏輯效率相對低,占用的電路資源和消耗的電流更多。這樣在功耗和散熱方面FPGA比ASIC要求更多。但是即使這樣,F(xiàn)PGA和ASIC的熱功耗也遠低于GPU。甚至Mobileye的eyeQ5號稱可以在10 W的功耗下實現(xiàn)L4級自動駕駛。但是Mobileye現(xiàn)在只做到L2~L3的商用化應(yīng)用[9]。
當(dāng)前在自動駕駛業(yè)內(nèi),沒有一種硬件架構(gòu)和深度學(xué)習(xí)算法被認為是最優(yōu)的,還有很多沒有解決的問題。這樣FPGA的可重復(fù)配置,邏輯設(shè)計非常靈活的優(yōu)勢就有了一定的窗口期。而且多傳感器融合,需要一種能提供靈活接口的計算機結(jié)構(gòu),這些都是ASIC在短期內(nèi)阻礙其大規(guī)模的投入量產(chǎn)和芯片迭代的原因。所以,從商業(yè)化角度,自動駕駛平臺的ASIC化是目標(biāo),而GPU和FPGA因為各種局限,在不久的將來會最終會讓渡于ASIC。同時FPGA有助在現(xiàn)階段測試和驗證各種算法和結(jié)構(gòu),為最終自動駕駛平臺的ASIC化提供非常有力的積累,在L3以上的自動駕駛應(yīng)用上有一定的空間和需要。
當(dāng)前全球有4套3種不同方案的L2~L3自動駕駛計算機平臺技術(shù)應(yīng)用,具體說明各自的硬件架構(gòu)特點和外圍傳感器配置。
(1)Tesla的Auto-pilot 2.5 GPU加速器方案;
(2)Xilinx的ZNYQ ultrascale+FPGA加速器方案;
(3)Qualcomm 的 8195和 Mobileye EyeQ4 ASIC SoC平臺。
Tesla采用了Auto-pilot 2.5 GPU加速器方案,Auto-pilot 2.5車載計算機是Model系列車型中的ADAS/AD自動駕駛的核心部件。它是繼2016年10月推出Auto-pilot 2.0車載超級計算機后,應(yīng)用深度學(xué)習(xí)和高級輔助駕駛功能的最新升級版本。因為特斯拉是最早將L2~L3的高級輔助駕駛作為標(biāo)準(zhǔn)配置的整車廠,作為商用化產(chǎn)品,其采用了當(dāng)時能力和成熟度最高的Nvidia英偉達CPU+GPU方案。Auto-pilot 2.5對外圍傳感器特別是攝像頭的數(shù)量進行了縮減,同時雙GPU方案的功耗和散熱對于純電汽車也是增加了負荷。同時,Auto-pilot 2.5也分兩個版本,針對Model X和Model S采用的風(fēng)冷散熱系統(tǒng),而Model 3采用水冷方式,這極大的提高了Auto-pilot的可靠性,但是整車成本壓力相應(yīng)增加。
Auto-pilot有8個環(huán)視攝像頭和一個車內(nèi)監(jiān)視攝像頭,詳見表3和圖3(根據(jù)逆向工程整理)。
表3 Auto-pilot 2.5自動駕駛系統(tǒng)配置
這8個攝像頭構(gòu)成了360度無死角的環(huán)視圖像采集。車內(nèi)的攝像頭主要是監(jiān)視駕駛員防止疲勞駕駛等突發(fā)情況。
圖3 Auto pilot 2.5自動駕駛系統(tǒng)架構(gòu)
首先,Parker CPU A單元和GPU構(gòu)成了深度學(xué)習(xí)基本模組。行駛過程中,8個攝像頭圖像流,通過2個HUB多端口轉(zhuǎn)發(fā)器輸入給了Parker A。作為媒體處理器,Parker A可以將CSI接口標(biāo)準(zhǔn)的圖像數(shù)據(jù)進行轉(zhuǎn)碼生成位圖流,通過PCIe高速接口傳遞給AI芯片(GPU),進行DET識別、TRA跟蹤、LOC定位和FRUZE融合等算法計算。而各種專業(yè)應(yīng)用及導(dǎo)航路徑規(guī)劃等程序則在Parker B的CPU上運行。Parker A和Parker B兩個CPU的分工可以從其外圍模組的功能得到佐證。比如GPS模塊接到了Parker B上,說明其需要執(zhí)行較高層級的任務(wù)應(yīng)用,如路徑規(guī)劃導(dǎo)航。而如警報和提示音的音頻編解碼器也連接在Parker B上,說明人機交互應(yīng)用會在這顆處理器上執(zhí)行。對于Parker A它更多是為GPU提供數(shù)據(jù)預(yù)處理功能,GPU專注于深度學(xué)習(xí)算法,作為加速器它不直接提供類似攝像頭之類的多媒體接口。所以從架構(gòu)上看Parker A+GPU更多執(zhí)行Accelerator(加速器)之功能,而Parker B則執(zhí)行上位機的任務(wù)。
于此同時車輛行駛的控制命令需要透過車載微控制器通過CAN總線發(fā)給執(zhí)行控制器,如動力電機、轉(zhuǎn)向控制器和制動控制器等。
Xilinx采用了ZNYQ ultrascale+FPGA加速器方案。
雖然GPU作為深度學(xué)習(xí)加速器在ADAS和L3級自動駕駛系統(tǒng)市場上已經(jīng)暫露頭角,也被一些大的廠商采用,但是其200~300 W的功耗和苛刻的散熱要求,一直被自動駕駛業(yè)界所詬病。隨著L3以上的自動駕駛平臺需求與日俱增,GPU的算力和功耗之間的矛盾越來越突出。預(yù)計特斯拉在其下一代自動駕駛平臺將會采用其專為自己設(shè)計的專用車載計算機處理器。但是其實一直以來,另一位有力的競爭者從未停止對自動駕駛領(lǐng)域的窺探。它就是有在應(yīng)用上極為靈活的可編程邏輯器件中的FPGA現(xiàn)場可編程邏輯門陣列。FPGA設(shè)計的靈活性在自動駕駛和深度學(xué)習(xí)領(lǐng)域有一定的優(yōu)勢。
第一:當(dāng)前的深度學(xué)習(xí)都是基于DNN深度神經(jīng)網(wǎng)絡(luò)或CNN卷積神經(jīng)網(wǎng)絡(luò),它對矩陣化的并行計算有非常高的要求,F(xiàn)PGA硬件化的并行結(jié)構(gòu)優(yōu)勢明顯。
第二:當(dāng)前深度學(xué)習(xí)的算法的優(yōu)化和迭代非常頻繁,如果不是基于軟件的平臺,就需要硬件有可重構(gòu)或靈活配置的能力,F(xiàn)PGA恰好以此為基本特性。
第三:由于所有的邏輯是并行處理的,不同于CPU需要提高其時鐘頻率提高運算能力,所以其功耗較GPU大大降低,在幾十瓦的水平。
第四:其豐富IO和內(nèi)部IP資源,可以靈活的集成各種傳感器物理接口和大帶寬總線。實現(xiàn)分布式處理器的互聯(lián)。
圖4就是基于Xilinx最新的FPGA Zynq-ultrascale+的自動駕駛計算機方案。
圖4 最新的FPGA Zynq-ultrascale+的自動駕駛系統(tǒng)構(gòu)架[10]
如圖4所示,雖然3個前向攝像頭(遠、中、近)布置給AD自動駕駛計算提供輸入,而360環(huán)視6個攝像頭布置用于ADAS計算輸入。但是融合(Fusion)算法是在一個FPGA中實現(xiàn)的,ADAS環(huán)視攝像頭可以將物體動態(tài)特征通過AXI總線轉(zhuǎn)遞給AD域FPGA,并進行3D地圖的建立。如果FPGA的內(nèi)部資源允許,這6個攝像頭也可配置在FPGA上。而SoC+PFGA架構(gòu)中的SoC已經(jīng)集成在FPGA芯片里。這也是FPGA行業(yè)的一個趨勢,為了縮短開發(fā)產(chǎn)品周期,將嵌入式系統(tǒng)和FPGA的可編程邏輯網(wǎng)格結(jié)合。FPGA的邏輯作為整個系統(tǒng)的一個組件,在操作系統(tǒng)的統(tǒng)籌下執(zhí)行特定的工作。對于L3以上的自動駕駛方案,除了攝像頭之類的圖像傳感器,77/79G毫米波雷達、超聲波雷達、甚至激光雷達都需要豐富的接口,F(xiàn)PGA廠商一般會直接提供如CAN、LIN或以太網(wǎng)等接口的硬核IP或軟核IP。從散熱角度,風(fēng)冷系統(tǒng)完全可以保證其工作安全的結(jié)溫要求。
但是FPGA某些性能在自動駕駛領(lǐng)域廣泛的應(yīng)用中仍有不足,需要持續(xù)改進。從行業(yè)來說FPGA的開發(fā)專業(yè)性更高,需要專業(yè)使用Verlog HDL或VHDL硬件描述語言進行系統(tǒng)集成,即使很多基于FPGA的深度學(xué)習(xí)算法都是由第三方提供的。還有不同于GPU的深度學(xué)習(xí)算法庫都是由廠商提供,基于GPU的自動駕駛功能實現(xiàn)主要集中在應(yīng)用層軟件開發(fā),F(xiàn)PGA的底層代碼開發(fā)量非常大,需要很長期的積累,門檻較高。
Qualcomm開發(fā)了8195和Mobileye開發(fā)的EyeQ4 ASIC SoC平臺。CPU+GPU、CPU+FPGA和嵌入式的ASIC自動駕駛平臺是一種異構(gòu)計算機,就是將某一部分的特定任務(wù)放在專用的子處理器上,加速器其執(zhí)行運算,這樣來最大限度的提高計算機的整體性能和效率。Qualcomm的8195和Mobileye EyeQ4都是在內(nèi)嵌深度學(xué)習(xí)處理器的嵌入式SoC平臺基礎(chǔ)上開發(fā)的,從內(nèi)部結(jié)構(gòu)來說并沒有太大的差異。不同于FPGA和GPU+CPU這種異構(gòu)計算機,嵌入式的有非常高效的內(nèi)部總線,將CPU、內(nèi)存和深度學(xué)習(xí)處理器鏈接起來。而CPU和FPGA通過復(fù)雜的外部總線與CPU進行對傳,而且還不能與CPU共享內(nèi)存,系統(tǒng)的復(fù)雜性和成本都更高。
同時GPU和FPGA都是通用器件,并不是專為深度學(xué)習(xí)來設(shè)計的,其運行效率比ASIC低很多,為了實現(xiàn)相同的任務(wù),以上兩種加速器的系統(tǒng)時鐘頻率也遠高于AISC的專用處理器,自然功耗和發(fā)熱也就高一個數(shù)量級。從官方獲取的信息EyeQ4的滿載功率在5 W以內(nèi),支持L3級的自動駕駛。
圖5和圖6展示的分別是Qualcomm的8195車載計算機和Intel的Mobileye EyeQ4自動駕駛計算機處理器的系統(tǒng)構(gòu)架。
圖5 Qualcomm 8195車載計算機系統(tǒng)構(gòu)架[11]
圖6 Intel的Mobileye EyeQ4自動駕駛計算機系統(tǒng)構(gòu)架[12]
從圖5可以看出8195采用的是8核的ARMv8 CPU和一個NPU神經(jīng)網(wǎng)絡(luò)處理器,而EyeQ4采用的是4核MIPS CPU和6核的相量微碼處理器VMP負責(zé)深度學(xué)習(xí)。
從圖5~6我們還可以看出2種計算機都提供了豐富的外設(shè)接口,支持8路以上的環(huán)視攝像頭Camera接口,毫米波雷達CAN接口和LIDAR激光雷達100 M以太網(wǎng)接口等。但是考慮到探測、跟蹤和定位都需要占用深度學(xué)習(xí)處理器,CPU的對NPU或VMP的管理有特殊的要求,也限制了當(dāng)前SoC自動駕駛計算機的能力。
表4是多種加速器架構(gòu)的自動駕駛計算機性能,其中有最為搶眼的是Tesla近日發(fā)布的FSD自動駕駛平臺,其最高到144 TOPs性能可支持L4+自動駕駛功能。相比GPU加速器方案的Xavier的250 W功耗,F(xiàn)SD在100 W以內(nèi)的功耗優(yōu)勢明顯。從單位功率算力角度,ASIC方案普遍較GPU和FPGA有較大優(yōu)勢。
表4 加速器架構(gòu)的自動駕駛計算機性能
隨著自動駕駛汽車技術(shù)的繁榮發(fā)展,對自動駕駛計算機會提出了更高、更苛刻的要求,包括更高計算速度的優(yōu)異性能、更低的能耗、更苛刻的應(yīng)用環(huán)境和更低的成本。同時,隨著計算機的發(fā)展,自動駕駛計算機的競爭將大力推進自動駕駛汽車的發(fā)展,按照全球主機廠的日程實現(xiàn)L4~L5級自動駕駛。因為GPU開發(fā)更快,F(xiàn)PGA結(jié)構(gòu)更靈活,ASIC成本功耗效益最高。但是隨著深度學(xué)習(xí)硬件的持續(xù)發(fā)展,在可預(yù)見的未來ASIC將占領(lǐng)L4~L5級自動駕駛計算機市場的較大份額,隨著全球自動駕駛技術(shù)競爭的加劇,汽車強國將在這一領(lǐng)域處于領(lǐng)先地位,這將大力促進相關(guān)半導(dǎo)體廠商的研發(fā)和投產(chǎn)速度。從商用化的角度,自動駕駛計算機會做的更便宜和功耗更低,從而全面促進自動駕駛汽車和智慧移動出行社會的實現(xiàn)。
這里還要考慮一個非常重要的背景,就是車聯(lián)網(wǎng)和5G的全面覆蓋,因為新的商業(yè)模式,特別是共享汽車和多種個性化的云服務(wù)才是自動駕駛和智慧移動出行生態(tài)的最大亮點和推動力量。在此之前的幾年里,GPU、FPGA這樣的硬件加速器方案還會繼續(xù)存在,其技術(shù)路線還會在不同的整車和科技公司向前延展。但是殊途同歸,最終的ASIC化的自動駕駛方案一定會融合了前輩的優(yōu)勢和技術(shù)積累,并在商用化之路上走到最后。
未來,人類駕駛員這個角色將會成為歷史,就像伴隨1886年第一輛汽車的誕生、第一位駕駛員的出現(xiàn)一樣,具有人工智能的自主駕駛計算機會在不久的未來逐步取代人類駕駛員,機器駕駛員的時代一定會到來,人們可以期待未來人類社會的移動出行會出現(xiàn)翻天覆地的變化。