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