四、挑戰(zhàn)英偉達(dá)
GPU在深度學(xué)習(xí)訓(xùn)練階段擁有壓倒性的效能優(yōu)勢(shì),但是在推理階段效能不及MAC為核心的DSP器件,同時(shí)GPU還是馮諾伊曼架構(gòu),在并行計(jì)算方面,效能與哈佛架構(gòu)有明顯差距。深度學(xué)習(xí)分訓(xùn)練和推理兩部分,推理用在嵌入式系統(tǒng),訓(xùn)練只能在服務(wù)器上完成,故自動(dòng)駕駛在推理端的應(yīng)用數(shù)量比訓(xùn)練端要廣闊的多,因此出現(xiàn)一大批廠家挑戰(zhàn)英偉達(dá)的霸主地位。
GPU主要針對(duì)圖像,靈活性也不算高,所有運(yùn)算都是浮點(diǎn)運(yùn)算,沒有直接的整數(shù)運(yùn)算,雖然近期有所改善,但效能肯定不如CPU。CPU處理一次標(biāo)量乘法只要一次標(biāo)量乘法指令,GPU卻把標(biāo)量先轉(zhuǎn)換成向量 然后用一條SIMD指令。GPU的存儲(chǔ)系統(tǒng)是一個(gè)二維的分段存儲(chǔ)空間,包括一個(gè)區(qū)段號(hào)(從中讀取圖像)和二維地址(圖像中的X、Y坐標(biāo))。沒有任何間接寫指令。輸出寫地址不能由程序改變。這對(duì)于自然分布在存儲(chǔ)器之中的算法而言是極大的挑戰(zhàn)。所以要求輸入數(shù)據(jù)高度對(duì)齊。最后一點(diǎn),不同碎片Slice的處理過程間不允許通信。
靈活性和高性能是矛盾的,必須做出妥協(xié)。靈活性高一般代表著使用面廣,出貨量高,性價(jià)比高。高性能一般代表使用面窄,出貨量低,而高性能芯片必備先進(jìn)制造工藝,最好是7納米或5納米,這樣的芯片流片成本高達(dá)近億美元,性價(jià)比自然很低。對(duì)于初創(chuàng)廠家,要挑戰(zhàn)的對(duì)手主要是英偉達(dá),想要從靈活性、性價(jià)比方面挑戰(zhàn)英偉達(dá)是完全不可能的,所以初創(chuàng)廠家和Mobileye無一例外都選擇高性能或高效能。
挑戰(zhàn)英偉達(dá)主要從四個(gè)方面入手
一是運(yùn)算架構(gòu),以DSP為核心,用傳統(tǒng)SIMD/DSP架構(gòu)來適配神經(jīng)網(wǎng)絡(luò)的技術(shù)思想在國(guó)際上已有不少先例,甚至有成熟的產(chǎn)品,例如CEVA公司的XM4處理器、Cadence公司的Tensilica Vision P5處理器、Synopsys公司的EV處理器等。他們多以IP核方式出售,用做卷積加速處理,如CEVA在瑞芯微RV1108的應(yīng)用。踏實(shí)淳樸的廠家會(huì)直接說使用了多少個(gè)MAC,如已經(jīng)被Xilinx收購(gòu)的深鑒預(yù)定在2018年推出的ASIC版芯片“聽濤”。28nm,2個(gè)DPU core,每個(gè)2048個(gè)MAC,總體算力4.1TOPS(4096個(gè)MAC @500MHz),核心部分功耗1.1W,整體3W。2016年6月中星微電子發(fā)布的號(hào)稱中國(guó)首款嵌入式NPU(神經(jīng)網(wǎng)絡(luò)處理器)芯片也是典型的多核DSP。 這種芯片將傳統(tǒng)的面向數(shù)字信號(hào)處理的DSP處理器架構(gòu)用于處理神經(jīng)網(wǎng)絡(luò),基本上只能對(duì)應(yīng)卷積運(yùn)算,對(duì)RNN和LSTM幾乎無能為力。
二是針對(duì)存儲(chǔ)器和運(yùn)算單元之間的瓶頸加以改進(jìn),將片外內(nèi)存訪問降低,提高吞吐量。典型代表是寒武紀(jì)的DianNaoYu指令集。在計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域,常用的提升訪存性能的方案是緩存Cache機(jī)制的引入,CNN算法會(huì)引入大量的訪存行為,這個(gè)訪存行為的頻繁度會(huì)隨著參考取樣集合的增加而增加(原因很簡(jiǎn)單,緩存無法裝下所有的參考取樣,所以,即便這些參考取樣會(huì)不斷地被重復(fù)訪問,也無法充分挖掘數(shù)據(jù)本地化所帶來的cache收益)。針對(duì)這種應(yīng)用類型,實(shí)際上存在成熟的優(yōu)化范式——Loop tiling。Loop tiling的基本思想是,對(duì)于循環(huán)邏輯,通過將大塊的循環(huán)迭代拆解成若干個(gè)較小的循環(huán)迭代塊,減少一個(gè)內(nèi)存元素的復(fù)用距離,換句話說,也就是確保當(dāng)這個(gè)內(nèi)存元素被加載到cache以后,盡可能保留在cache中,直到被再次訪問,這樣就達(dá)到了減少了昂貴的片外訪存的開銷的目的。 使用Loop tiling,片外訪存減少了 90%。這就是將訪存邏輯定制在硬件層面,通過引入一個(gè)稱之為IM(Index Module)的硬件模塊,完成稀疏訪存的處理,從而將稀疏向量/矩陣運(yùn)算轉(zhuǎn)換成常規(guī)向量/矩陣運(yùn)算。華為就使用了寒武紀(jì)的IP。
三是VLIW,Very long instruction word。VLIW是美國(guó)Multiflow和Cydrome公司于20世紀(jì)80年代設(shè)計(jì)的體系結(jié)構(gòu),主要應(yīng)用于Trimedia(全美達(dá))公司的Crusoe和Efficeon系列處理器中。全美達(dá)在2000年發(fā)起對(duì)巨人英特爾的挑戰(zhàn),當(dāng)時(shí)全美達(dá)推出的筆記本電腦無需散熱風(fēng)扇,但軟件支持度太弱,2004年挑戰(zhàn)失敗退出CPU領(lǐng)域。
VLIW體系結(jié)構(gòu)采用多個(gè)獨(dú)立的功能部件,每一個(gè)指令周期可以同時(shí)流出多條指令,可同時(shí)流出的操作類型與數(shù)目是確定的,所以指令調(diào)度是由編譯器靜態(tài)調(diào)度完成(在其它方法中均由硬件實(shí)現(xiàn)的)以減少硬件開銷,因此指令可同時(shí)流出的最大數(shù)目越大,超長(zhǎng)指令字的性能優(yōu)勢(shì)就越明顯。每時(shí)鐘周期例如vliw可運(yùn)行20條指令,而CISC通常只能運(yùn)行1-3條指令,RISC能運(yùn)行4條指令,可見VLIW要比CISC和RISC強(qiáng)大的多。但是,只要是并行處理,就一定會(huì)受到更多相關(guān)性的限制。這種相關(guān)是有程序本身造成的,分為控制相關(guān)和數(shù)據(jù)相關(guān)兩種,指令在調(diào)度時(shí),必須遵循它們之間的依賴關(guān)系,防止沖突發(fā)生。
VLIW簡(jiǎn)化了處理器的結(jié)構(gòu),刪除了處理器內(nèi)部許多復(fù)雜的控制電路,這些電路通常是超標(biāo)量芯片(CISC和RISC)協(xié)調(diào)并行工作時(shí)必須使用的,VLIW的結(jié)構(gòu)簡(jiǎn)單,也能夠使其芯片制造成本降低,價(jià)格低廉,能耗少,而且性能也要比超標(biāo)量芯片高得多。VLIW是簡(jiǎn)化處理器的最新途徑,VLIW芯片無需超標(biāo)量芯片在運(yùn)行時(shí)間協(xié)調(diào)并行執(zhí)行時(shí)所必須使用的許多復(fù)雜的控制電路,而是將許多這類負(fù)擔(dān)交給了編譯器(指令集)去承擔(dān)。不過英特爾x86和ARM指令集都建立了龐大的生態(tài)體系,要想推廣一種全新的指令集完全不可能,這就注定VLIW的使用面很窄,非常封閉。VLIW另一個(gè)缺點(diǎn)是如果有非確定性事件如錯(cuò)失緩存,那么整個(gè)處理器就會(huì)死機(jī),這就要求輸入數(shù)據(jù)高度對(duì)齊,非常規(guī)范,不能有跳躍。此外,指令集龐大,需要高成本的緩存。VLIW非常適合做視頻的編解碼,聲音的編解碼。今天德州儀器最成功的DSP TMS320C6x是最典型的VLIW型芯片。
四是SIMD。說到SIMD就附帶提一下并行架構(gòu),主要分4級(jí),包括:
指令級(jí)并行,即Instruction-level parallelism (ILP),包括Pipelining, out-of-order execution, superscalar(超標(biāo)量) processing。
線程級(jí)并行,Thread-level parallelism (TLP),Simultaneous/fine-grained/coarse-grained multi-threading。
存儲(chǔ)級(jí)并行,Memory-level parallelism (MLP),Non-blocking caches, out-of-order execution, prefetching, runahead。
數(shù)據(jù)級(jí)并行,SIMD就是典型的數(shù)據(jù)級(jí)并行。
按照1966年Flynn提出的分類,指令流(Instruction Stream)——機(jī)器執(zhí)行的指令序列。數(shù)據(jù)流(Data Stream)——指令調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果。多倍性(Multiplicity)——在系統(tǒng)最受限制的元件上同時(shí)處于同一執(zhí)行階段指令或數(shù)據(jù)執(zhí)行的最大可能個(gè)數(shù)。
按照指令和數(shù)據(jù)流不同的組織方式,計(jì)算機(jī)系統(tǒng)可分為四類:
單指令單數(shù)據(jù)流(Single Instruction stream and Single Data stream,SISD):SISD其實(shí)就是傳統(tǒng)的順序執(zhí)行的單處理器計(jì)算機(jī),其指令部件每次只對(duì)一條指令進(jìn)行譯碼,并只對(duì)一個(gè)操作部件分配數(shù)據(jù)。流水線方式的單處理機(jī)有時(shí)也被當(dāng)成SISD。
單指令多數(shù)據(jù)流(SIMD) 特性:處理機(jī)以同步的形式執(zhí)行同一條指令。
多指令單數(shù)據(jù)流(MISD) 特性:被證明不可能,至少是不實(shí)際。
多指令多數(shù)據(jù)流(MIMD) 特性:能夠?qū)崿F(xiàn)作業(yè),任務(wù),指令等各級(jí)全面并行。
SIMD應(yīng)用廣泛,包括向量/陣列處理器,GPU和向量指令集。
上圖為傳統(tǒng)的超標(biāo)量運(yùn)算架構(gòu)與SIMD的對(duì)比。簡(jiǎn)單地說,SIMD是一種采用一個(gè)控制器來控制多個(gè)處理器,同時(shí)對(duì)一組數(shù)據(jù)(又稱“數(shù)據(jù)向量”)中的每一個(gè)分別執(zhí)行相同的操作從而實(shí)現(xiàn)空間上的并行性的技術(shù)。在微處理器中,單指令流多數(shù)據(jù)流技術(shù)則是一個(gè)控制器控制多個(gè)平行的處理微核。通常以指令集的形式出現(xiàn),SIMD和VLIW是好搭檔。
五、英特爾的Mobileye EyeQ5
Mobileye創(chuàng)業(yè)之路漫長(zhǎng),1999年創(chuàng)業(yè),2010年第一塊量產(chǎn)級(jí)芯片問世,歷時(shí)11年。軟硬一體是Mobileye成功的關(guān)鍵, Mobileye從EyeQ2架構(gòu)基本定型,EyeQ4做了重大升級(jí),EyeQ5主要是CPU方面有所提升,增加了VMP的數(shù)量而已。
上圖為第一代EyeQ1,只做算法驗(yàn)證,未量產(chǎn),很明顯使用了ARM946E內(nèi)核。EyeQ1植入多個(gè)硬核,效率很高,成本更高。
EyeQ2內(nèi)部框架圖如上,第一次使用VMP。 EyeQ2開放性還是蠻高的,包括10個(gè)并行處理器,分別是兩個(gè)332MHz MIPS 34KF, 8個(gè)視覺專用處理器,這8個(gè)有三個(gè)是VMP。Mobileye對(duì)VMP申請(qǐng)了專利,本質(zhì)上還是一種類似FPGA的查找表結(jié)構(gòu)。其他5個(gè)分別是CE,即聚類引擎Classifier Engine。針對(duì)雙目的視差找尋DFinder (Disparity Finder);濾波Filter, 預(yù)處理視窗PW (Preprocessor Window),運(yùn)動(dòng)軌跡Tracker用于動(dòng)作分析。車道線識(shí)別引擎被取消了。當(dāng)時(shí)EyeQ2對(duì)標(biāo)德州儀器的達(dá)芬奇,號(hào)稱擁有達(dá)芬奇7倍的性能。不過硬核太多,導(dǎo)致成本居高不下。
EyeQ3/4內(nèi)部框架圖如上,EyeQ3在2014年問世,用軟件方式將5個(gè)專用視覺模塊都取消,大幅度降低成本,一舉成功。EyeQ4則第一次增加了PMA和MPC。PMA即Program Macro Array,可編程宏陣列,這個(gè)是Mobileye獨(dú)創(chuàng)的,Mobileye解釋說PMA就是能夠達(dá)到類似硬核的效能,但仍然具備可編程性,The programmable macro array (PMA) enables computation density nearing that of fixed-function hardware accelerators without sacrificing programmability. 似乎是一個(gè)靈活度很高的固核,似乎是EyeQ3取消硬核后,有些應(yīng)用力不從心,于是在EyeQ4上加入了PMA。推測(cè)實(shí)質(zhì)上是一個(gè)多核DSP架構(gòu),要不然很難擁有384個(gè)MAC,實(shí)際量產(chǎn)時(shí),頻率降低到了750MHz,單從頻率來看,倒不可像是FPGA。
MPC即Multi-Thread Processor Cluster,多線程處理器群。這也是Mobileye獨(dú)創(chuàng)的詞,只有8個(gè)MAC。The MPC is more versatile than any GPU and more efficient than any CPU,Mobileye是這么解釋MPC的。比任何GPU都應(yīng)用多樣化,比任何CPU都效率高。 GPU的強(qiáng)項(xiàng)是并行運(yùn)算能力比CPU強(qiáng)(多個(gè)不同任務(wù)的并行運(yùn)算GPU也無法勝任,GPU只適合處理單個(gè)可并行任務(wù)的并行運(yùn)算),而不是浮點(diǎn)運(yùn)算能力強(qiáng)。多線程這種CPU技術(shù)就是對(duì)應(yīng)多個(gè)不同任務(wù)的,同時(shí)它是雙核8MAC的群結(jié)構(gòu),等于16核CPU處理多個(gè)不同任務(wù)的并行計(jì)算,效能會(huì)比一般的CPU略高。
EyeQ4仍然由Mobileye的老伙伴意法半導(dǎo)體采用28納米FD-SOI工藝制造,而目前大部分強(qiáng)調(diào)運(yùn)算性能的芯片都是采用16納米以下工藝,英偉達(dá)的Xavier是12納米工藝,華為已經(jīng)有7納米工藝芯片問世。28納米FD-SOI工藝最大的優(yōu)勢(shì)是成本低。
EyeQ5內(nèi)部框架圖如上,18個(gè)電腦視覺處理器實(shí)際就是VMP+PMA+MPC合計(jì)18個(gè),估計(jì)12個(gè)VMP,4個(gè)PMA,2個(gè)MPC。EyeQ5已經(jīng)不能再用28納米FD-SOI工藝,那樣落后對(duì)手太多,EyeQ5也是采用7納米FinFET工藝,全球只有臺(tái)積電一家能夠代工,臺(tái)積電的7納米訂單早已塞爆。按照計(jì)劃,EyeQ5將在2020年推出。以瑞薩的R-Car H3為例,這是第一款車載16納米芯片,臺(tái)積電代工,2015年正式推出,到2019年才能正式量產(chǎn),2020或2021年才能見到搭載R-Car H3的量產(chǎn)車型,7納米比16納米要難得多。
英特爾早期的設(shè)計(jì)如下圖:
后期則取消了Atom,改為下圖。
這個(gè)AV Kit套件是英特爾雄心勃勃的計(jì)劃, 包括芯片級(jí) Silicon-only solution,芯片加軟件解決方案 Silicon + software solution,完整的子系統(tǒng),包括主芯片、車載以太網(wǎng)交換機(jī)、PCIE交換機(jī)、物理層芯片 Complete subsystem,完整的硬件系統(tǒng),包括攝像頭、毫米波雷達(dá)和激光雷達(dá),可能還有高精度地圖 Complete hardware system, Supply of its internally-developed radars and lidars,移動(dòng)出行的整套軟件技術(shù)。 Software technologies necessary for the “moving people” business不僅包括計(jì)算平臺(tái),英特爾還打算自己設(shè)計(jì)開發(fā)激光雷達(dá)和毫米波雷達(dá),為客戶提供全套解決方案。
英特爾激光雷達(dá)的開發(fā)是由英特爾實(shí)驗(yàn)室的Silicon Photonics Technology技術(shù)小組負(fù)責(zé),英特爾也有Silicon Photonics Product Division (SPPD)事業(yè)部,從英特爾多年光通訊領(lǐng)域的積累看,英特爾要做的激光雷達(dá)可能是兩種,一種是1550納米的旋轉(zhuǎn)型激光雷達(dá),另一種是單光子陣列的Flash激光雷達(dá)。光通訊領(lǐng)域基本都是1550納米激光,這種激光安全系數(shù)是目前常用的905納米的數(shù)萬倍,可以全天候運(yùn)作,幾乎接近毫米波雷達(dá)的氣候適應(yīng)能力。豐田和沃爾沃投資的LUMINAR正是出身光通訊領(lǐng)域,對(duì)英特爾來說,激光雷達(dá)幾乎無技術(shù)門檻可言,毫米波雷達(dá)也是如此。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7513瀏覽量
163987 -
英偉達(dá)
+關(guān)注
關(guān)注
22文章
3791瀏覽量
91313 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
784文章
13856瀏覽量
166587
原文標(biāo)題:自動(dòng)駕駛芯片之爭(zhēng)(二)
文章出處:【微信號(hào):zuosiqiche,微信公眾號(hào):佐思汽車研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論