張平
特斯拉是全球新能源汽車產(chǎn)業(yè)的領(lǐng)先者之一,旗下的電動汽車不但提供了獨(dú)特的駕乘體驗(yàn),還帶給駕駛者充分的科技感受。尤其是在自動駕駛領(lǐng)域,以激進(jìn)著稱的特斯拉為旗下所有車型都提供了自動駕駛套包的選配,算是對自動駕駛最為看好、貫徹自動駕駛技術(shù)最為徹底的車企之一。不過自動駕駛作為—項(xiàng)全新技術(shù),對計(jì)算能力要求極高。特斯拉從研發(fā)自動駕駛技術(shù)開始,就非常注重自家的知識產(chǎn)權(quán)和技術(shù)獨(dú)立性。在換用了多家廠商的方案后,特斯拉在2016年走上了自研自動駕駛芯片的道路。經(jīng)過數(shù)年的研發(fā),特斯拉的自動駕駛芯片和方案目前處于什么狀況?本文將為你解答這個問題。
如果說在自動駕駛領(lǐng)域,誰的定價最為隨心所欲,那一定是特斯拉了。2019年5月,特斯拉宣稱旗下全自動駕駛功能FsD漲價,從5000美元漲價到6000美元。兩個月后,又宣布FsD降價至3000美元。這還沒完,僅僅在一個月之后,特斯拉又將該功能的選配價格上漲了1000美元。如此頻繁地調(diào)整價格,讓人們在這個新能源車企的身上看到了一絲IT行業(yè)廠商的影子。甚至有網(wǎng)友問馬斯克:“你是打算半年漲價一次嗎”馬斯克則回答:“不,我們打算2-4個月調(diào)整一次價格,這將取決于我們的技術(shù)開發(fā)情況而定?!?/p>
特斯拉反復(fù)的調(diào)價、卻依舊有消費(fèi)者對其自動駕駛功能趨之若鶩,這無疑反映了一個事實(shí):特斯拉在自動駕駛的方案上有硬貨,消費(fèi)者就吃這套。那么,特斯拉在自動駕駛領(lǐng)域有什么獨(dú)特的設(shè)計(jì)和方案呢?
從買到造,特斯拉決定自己來做
特斯拉在自動駕駛領(lǐng)域已有多年的積累。早在2014年,特斯拉就聯(lián)合Mobileye推出了第一代自動駕駛產(chǎn)品。兩年后,特斯拉與Mobileye結(jié)束合作,轉(zhuǎn)而采用英偉達(dá)旗下的產(chǎn)品。不過在這項(xiàng)合作開始的同時,特斯拉就已經(jīng)開始招兵買馬準(zhǔn)備自己的芯片了。2016年,特斯拉啟動自研芯片的項(xiàng)目,2017年流片完成,2019年4月份特斯拉FSD,也就是Full Self Driving全自動駕駛芯片正式以量產(chǎn)的形式發(fā)布,特斯拉在自動駕駛硬件方面已經(jīng)發(fā)展到第三代。2019年9月,特斯拉在業(yè)內(nèi)著名的芯片會議HotChip上公布了芯片設(shè)計(jì)和架構(gòu)的大量細(xì)節(jié),一時間業(yè)內(nèi)都為之側(cè)目。
說起特斯拉自研的自動駕駛芯片,人們都會驚嘆于特斯拉強(qiáng)大的技術(shù)研發(fā)實(shí)力。不過在自研芯片的背后,是極高的技術(shù)風(fēng)險和巨額投資。那么特斯拉為什么放棄外購,而啟動自研芯片的計(jì)劃呢?說來說去,還是一個投入和收益的問題。
特斯拉的目標(biāo)是在每一輛自家汽車上都搭載自動駕駛功能,但是會根據(jù)用戶是否付費(fèi)來開啟或者關(guān)閉這一功能。目前特斯拉汽車的全球年銷量大約在15萬輛左右,并且這個數(shù)據(jù)每年的增速都很高。這意味著特斯拉會面對一個巨大且不斷增長的芯片市場。除此之外,追求技術(shù)自主也是特斯拉的一貫風(fēng)格。之前特斯拉購買的芯片來自Hobileye和英偉達(dá),而這兩家芯片廠商的產(chǎn)品都并非專門為特斯拉定制設(shè)計(jì),因此不一定可以滿足特斯拉未來的需求。并且這兩家廠商的產(chǎn)品為了普適性和廣泛的兼容性,還會加入很多在特斯拉看起來并不需要的設(shè)計(jì)。因此,綜合考慮了銷量、市場和自己掌握技術(shù)的能力之后,特斯拉開啟了自研芯片之路,并且在2019年4月推出了這款產(chǎn)品。
初探特斯拉FSD:專為自動駕駛設(shè)計(jì)的SOC
特斯拉FsD芯片是一款專門為自動駕駛功能設(shè)計(jì)的產(chǎn)品,它的架構(gòu)比較特殊,不但有傳統(tǒng)的cPu和GPU部分,還加入了特別定制的NNA、ISP等部分,共同組成了一個龐大的SoC芯片。
先來看看特斯拉Fs D的基礎(chǔ)情況。特斯拉FSD采用的是三星在得克薩斯州奧斯汀工廠的14nmFinFETT藝,面積大約為260mm2,集成了60億晶體管,封裝尺寸為37.5mmx37.5mm,底座采用了FcBGA設(shè)計(jì)整體設(shè)計(jì)支持AEC-Q100汽車零部件可靠性驗(yàn)證規(guī)范。
芯片內(nèi)部設(shè)計(jì)方面,特斯拉采用了完全定制的獨(dú)享方案,因此很多之前在其他芯片中集成的功能要么被弱化,要么干脆去掉。計(jì)算方面,F(xiàn)sD芯片中包含了三個能夠提供計(jì)算性能的模塊,分別是cPu、GPu和NNA(Neural Network Accelerator神經(jīng)網(wǎng)絡(luò)加速單元)。其中cPu采用的是cortex-A72架構(gòu),三組、每組4個核心,一共有12個核心,最高運(yùn)行頻率為2.2GHz,這部分處理器核心用于通用的計(jì)算和任務(wù)。GPU方面,特斯拉設(shè)計(jì)了一個支持FP32和FP64的GPu模塊,主頻最高1GHz,最高計(jì)算能力約為600GFLPS。NNA方面,特斯拉采用了自研的架構(gòu),設(shè)計(jì)了2個NNA核心,每個核心都可以執(zhí)行8位整數(shù)計(jì)算,運(yùn)行頻率為2GHz,單個NNA的峰值計(jì)算能力為36.86TOPs,2個NNA的總能力為73.73TOPS。
除了三大計(jì)算性能模塊外,還有一個模塊值得注意,那就是圖像信號處理器IsP。特斯拉設(shè)計(jì)了一個專用的、帶有內(nèi)部24bit流水線設(shè)計(jì)IsP,這個IsP專門針對特斯拉汽車上配備的八個HDR傳感器而設(shè)計(jì),可以每秒鐘處理十億像素的圖像信息。在處理中還加入了色調(diào)映射等功能,并且允許芯片自主處理陰影、亮點(diǎn)、暗點(diǎn)等細(xì)節(jié),還加入了降噪設(shè)計(jì)??梢哉f,IsP是特斯拉FsD中除了計(jì)算核心外面積最大、功能最復(fù)雜的輔助功能模塊。
除此之外,特斯拉FsD的其余輔助功能模塊設(shè)計(jì)也頗有特點(diǎn)。特斯拉FsD包含了一個安全模塊和一個加密模塊。其中安全模塊中包含了一組雙核心同步的cPu,用于執(zhí)行汽車信息的仲裁。它可以決定FSD整個模塊上2個FsD芯片發(fā)出的執(zhí)行計(jì)劃是否匹配、以及驅(qū)動執(zhí)行器的過程是否安全。換句話來說,由于特斯拉FsD模塊上包合了兩個FsD芯片,這兩個芯片在處理過程中可能出現(xiàn)信息、執(zhí)行不同步的情況,當(dāng)這種情況出現(xiàn)時,判斷就交由安全模塊完成并給出最終的判定,以保證信息的同步和無沖突。安全模塊之外,加密模塊執(zhí)行的功能是確保整個FSD系統(tǒng)只執(zhí)行經(jīng)過特斯拉簽名授權(quán)的代碼,而不是任何其他代碼,保證系統(tǒng)的安全性。
視頻處理方面,和常見的soc支持大量的視頻格式處理和編解碼不同的是,特斯拉FSD只集成了支持H.265(HEVC)的視頻編碼器,可以用于備用攝像機(jī)顯示、行車記錄儀、剪輯視頻等內(nèi)容,其余諸如MPEG、H.264等一概不支持,精簡了不少規(guī)模。其他輸入輸出模塊方面,F(xiàn)sD系統(tǒng)還擁有一個攝像頭串行接口CSI,最高可以支持輸入并處理每秒25億像素。
在內(nèi)存方面,特斯拉FsD芯片采用了比較廉價的雙通道LPDDR4-2133的方案,位寬為128bit,帶寬為63.58GB/s。這應(yīng)該是特斯拉權(quán)衡過成本和性能后得出的最佳方案,畢竟內(nèi)存控制器一向是芯片中的面積大戶,并且事關(guān)性能又輕易削減不得,性能和規(guī)模的平衡處理非常重要。
從特斯拉FSD芯片的整個設(shè)計(jì)來看,特斯拉采用了非常個性化和定制化的方案,完全不考慮其通用性(也沒必要考慮),只針對特斯拉旗下汽車的使用。這樣一來,小小的60億晶體管的芯片就能釋放出大量的計(jì)算資源,令人側(cè)目。
特斯拉定制的NNA:恰到好處
說完了整體架構(gòu),再來看看特斯拉定制的NNA核心。這也是特斯拉在Hotchip以及之前數(shù)次發(fā)布會上提及的重要內(nèi)容。
特斯拉FsD芯片內(nèi)包含了2個NNA,每個NNA中有一個96x96的MAC矩陣,包含了32HB的內(nèi)置sRAM,整體工作頻率為2GHz。所以在理想的情況下,一個NNA的計(jì)算能力是96x96x20Psx2GHz=36.86TOPS,兩個核心加起來就是73.73 TOPS。一個FSD系統(tǒng)有2個FsD芯片,整板計(jì)算能力就是144TOPS。
這里需要注意的是,特斯拉設(shè)計(jì)的NNA根據(jù)目前的情況來看,由于神經(jīng)網(wǎng)絡(luò)計(jì)算并不需要太高的精度,因此特斯拉設(shè)計(jì)的芯片只能支持8位整數(shù)計(jì)算,并且整個計(jì)算周期設(shè)計(jì)也很簡單。在每個計(jì)算周期,NNA都會從內(nèi)置的32MB SRAM中讀取256bit的激活數(shù)據(jù)和另外128bjt的權(quán)重?cái)?shù)據(jù)組合在一起進(jìn)入乘法累加,也就是MAC陣列,后者可以執(zhí)行96x96的MAc操作,總共可移植性9216個MAC和18432個操作。在這里,NNA只支持8位乘以8位整數(shù)乘法和32位整數(shù)乘法,完全不支持任何浮點(diǎn)計(jì)算,也無需支持任何其他格式,比如16位或者4位計(jì)算等,這都大大降低了核心的設(shè)計(jì)難度。并且這樣專用而直接的設(shè)計(jì),還可以在很大程度上降低功耗,舉例來說,支持浮點(diǎn)運(yùn)算的32位加法器功耗大約是支持整數(shù)計(jì)算的32位加法器的9倍。在完成了MAC的乘法累加操作后,數(shù)據(jù)將會被轉(zhuǎn)移到激活(Activations)以及池化部分(Pooling),并等待寫入緩沖區(qū)匯總結(jié)果。FsD支持很多激活功能,包括整流線性單元ReLU、Sigmoid線性單元(SiLU)和TanH。每個周期,NNA都可以將128字節(jié)的結(jié)果寫回sRAM,所有的操作同時和連續(xù)的進(jìn)行。直到整個計(jì)算完成。
除了上述計(jì)算過程外,特斯拉在NNA的設(shè)計(jì)中還偏向于將硬件簡化,并復(fù)雜化軟件,這樣做可以降低芯片成本。比如軟件可以映射和分配單個sRAM庫,在特斯拉的神經(jīng)網(wǎng)絡(luò)編譯器的幫助下,還可以執(zhí)行層融合操作,通過耦合conv-scale-act-pooling操作允許數(shù)據(jù)重用。編譯器還可以通過執(zhí)行層平滑處理來確保數(shù)據(jù)一致的內(nèi)存訪問操作,還可以加入代碼壓縮、cRc校驗(yàn)等功能,保證數(shù)據(jù)的可靠性。
除了架構(gòu)設(shè)計(jì)之外,特斯拉NNA另一個值得注意的點(diǎn)就是32M B的片上sRAM緩存。這是迄今為止見過的最大規(guī)模的片上sRAM緩存了,相比其計(jì)算能力,這個容量可以說相當(dāng)搶眼。其他典型的芯片比如谷歌初代TPU,采用了256x256的MAC,也只是在片上設(shè)計(jì)了24MB的sRAM。從特斯拉給出的芯片圖樣來看,sRAM占據(jù)了NNA面積的75%以上,耗費(fèi)了大量的晶體管。對于這種特殊的設(shè)計(jì),特斯拉解釋這樣做是為了讓數(shù)據(jù)盡可能地在片內(nèi)周轉(zhuǎn),而不用頻繁地與內(nèi)存或者其他模塊進(jìn)行讀寫操作。這樣做不但可以提高性能,還可以有效降低功耗。特斯拉宣稱整個NNA的片上操作大概需要1TB/s帶寬,所有數(shù)據(jù)都在片上完成,這樣SRAM就可以滿足其需求。
在指令方面,特斯拉認(rèn)為之前一些神經(jīng)網(wǎng)絡(luò)處理器的設(shè)計(jì)在緩存、寄存器以及邏輯控制方面消耗了大量能量,因此NNA需要盡可能多地降低這方面的耗費(fèi)。于是特斯拉干脆簡化邏輯控制,將資源集中在計(jì)算方面。特斯拉NNA的指令集非常簡單,只有8條指令包括DMA Read、DMA Write、Convolution、Deconvolution、Inner-product、Scale、Eltwidth、Stop,流程控制更是只需要配置4個信息,進(jìn)一步簡化了操作。
有關(guān)這個芯片的實(shí)際性能,特斯拉給出的數(shù)據(jù)是2300幀/秒,72W功耗。特斯拉還給出了一些示例網(wǎng)絡(luò),每秒大約需要80TOPs,恰好滿足芯片的計(jì)算需求,2個芯片的話也僅有55%利用率,還存在很大的空余性能。另外,馬斯克宣稱這個芯片的性能是之前英偉達(dá)方案的21倍之多,并且更為安全。不過馬斯克沒有給出具體的指標(biāo)和計(jì)算方法。FSD系統(tǒng):雙倍安全
除了FsD芯片外,特斯拉還給出了FSD系統(tǒng)的相關(guān)消息。整個FSD系統(tǒng)上布置了2個FsD芯片,特斯拉還給出了一些示意圖,顯示FSD芯片在整個系統(tǒng)中的工作情況。
從特斯拉給出的信息來看,兩個FsD芯片以獨(dú)立的方式工作,當(dāng)一顆芯片出現(xiàn)問題時,另一顆芯片可以完全接管。為了安全,特斯拉還設(shè)計(jì)了冗余的電源、重疊的攝像機(jī)視野部分、各種向后兼容的連接器和接口。在一般操作中,當(dāng)整車信息通過雷達(dá)、攝像頭等傳感器發(fā)送至FSD系統(tǒng)時,兩顆芯片都會處理并給出方案,然后由之前提及的芯片上的模塊進(jìn)行平衡和仲裁、驗(yàn)證,最后發(fā)送給傳動裝置Ecu并驅(qū)動汽車進(jìn)行操作。特斯拉宣稱,F(xiàn)sD系統(tǒng)的故障率非常低,甚至比人失去意識的可能性還要低一個數(shù)量級。
其他方面,特斯拉FsD系統(tǒng)板載了8顆LP DDR4內(nèi)存,每個芯片有4顆,另外每個芯片各有一顆NAND顆粒用于存儲操作系統(tǒng)和數(shù)據(jù)。不過這些存儲芯片的容量和規(guī)格目前還沒有披露出來。散熱方面,整體方案采用水冷設(shè)計(jì),確保整個工作過程的安全和穩(wěn)定。功耗方面,特斯拉FsD系統(tǒng)的每英里功耗僅為250W,大概只有之前硬件的七分之一,成本也是之前硬件的七分之一。不得不說,特斯拉走上自研芯片這條道路還是非常正確的,不但節(jié)省了大量的資金耗費(fèi),同時也帶來了新的利潤增長點(diǎn)。
特斯拉FsD系統(tǒng)和芯片已經(jīng)正式運(yùn)行了一段時間,總的來看,它帶來了諸如交通信號燈識別、自動泊車、自動輔助變道、城市內(nèi)自動輔助駕駛、自動輔助導(dǎo)航駕駛、停車召喚等功能,讓汽車的自主能力提升了一個臺階。不僅如此,在這一代FsD芯片發(fā)布后,特斯拉也沒有停下腳步,而是加快進(jìn)度,研發(fā)下一代FSD芯片。目前有消息顯示,新FsD芯片的性能起碼會再翻一番,未來它還能帶給用戶怎樣的功能與體驗(yàn),令人十分期待。