、算力與部署實踐)
當(dāng)大家聊起自動駕駛芯片英偉達Orin是一個繞不開的名字。過去這幾年不管是新勢力旗艦車型、傳統(tǒng)車企的L2量產(chǎn)車還是各路做Robotaxi、干線物流、港口無人駕駛的公司只要方案里需要一顆能扛起感知、融合、規(guī)控的“大心臟”O(jiān)rin幾乎都是最先被提到的選項。它到底憑什么能成為標(biāo)桿是真的算力驚人還是生態(tài)捆綁如果你正準(zhǔn)備入手AGX Orin開發(fā)板、或者在車型預(yù)研階段糾結(jié)主控選型這篇內(nèi)容可以幫你把Orin這層窗戶紙捅破。我會從芯片架構(gòu)講起落到實際部署和量產(chǎn)落地的路徑上最后把燒錄、散熱、驅(qū)動、模型轉(zhuǎn)換這些坑挨個說一遍。全程不端著盡量用搞工程的人交流的方式聊很多細節(jié)是我自己踩過之后總結(jié)出來的。1. Orin為什么被當(dāng)成標(biāo)桿1.1 它解決了智能駕駛的什么核心問題先看需求端。今天一臺智能汽車要想跑通城市NOA、高速領(lǐng)航這類功能車上的傳感器一般有七八個攝像頭、三四顆毫米波雷達、激光雷達也可能上視覺分辨率從1080P到4K不等幀率30幀以上。這些數(shù)據(jù)全部要匯入一個域控制器里做實時處理感知模型要從單幀檢測升級到BEV鳥瞰視角、端到端占用網(wǎng)絡(luò)算力需求一下就上去了。Orin這顆芯片單顆就有254TOPS的INT8稠密算力能支撐起多路攝像頭輸入的感知模型同時給規(guī)劃控制留出余量。相比它的前一代Xavier30TOPS算力翻了接近8倍而功耗并沒有離譜地暴漲單顆Orin能控制在40到65瓦這在車?yán)锸强梢越邮艿纳岱秶\嚻笕绻X得一顆不夠還能用兩顆做成508TOPS方案算力冗余直接雙倍這在當(dāng)時的市場里幾乎沒有競品能對標(biāo)。還有一點很關(guān)鍵Orin不是一顆單純的AI加速卡它把CPU、GPU、深度學(xué)習(xí)加速器、安全島MCU全部集成到一個SoC里一套芯片就能完成自動駕駛從感知到執(zhí)行的全部計算閉環(huán)。對Tier1和整車廠來說這意味著域控制器的BOM成本、供應(yīng)鏈復(fù)雜度和軟件開發(fā)難度都大幅下降。注意254TOPS是Drive Orin的官方標(biāo)稱值Jetson AGX Orin開發(fā)板宣傳一般寫275TOPS這是因為后者把結(jié)構(gòu)化稀疏算力也算進去了后面我專門講這個區(qū)別。1.2 市場定位與競品對比聊Orin之前有必要把它放到當(dāng)時的競品坐標(biāo)系里看。2022年到2023年能拿得上臺面的自動駕駛主控芯片就那么幾款我整理了一個對比表方便大家直觀感受平臺標(biāo)稱算力INT8制程生態(tài)成熟度量產(chǎn)狀態(tài)英偉達 Orin254 TOPS單顆8nm極高CUDA/TensorRT/DeepStream多款車型量產(chǎn)地平線征程5128 TOPS16nm國內(nèi)生態(tài)工具鏈追趕中部分國產(chǎn)車型Mobileye EyeQ515 TOPS7nm黑盒交付算法捆綁老牌L2方案高通 Snapdragon Ride約50-200 TOPS7nm消費級芯片背景強汽車生態(tài)搭建中部分車型預(yù)研特斯拉 FSD144 TOPS14nm自研自用特斯拉全系從表里能看出來Orin在算力維度上幾乎是碾壓式的存在特別是對比Mobileye這種黑盒方案英偉達給了客戶足夠的自由度算法、模型、中間件都可以自己掌控。而對比地平線、高通英偉達最大的護城河不是芯片本身而是CUDA這個龐大的開發(fā)者生態(tài)。你去搜招聘網(wǎng)站自動駕駛感知、規(guī)劃崗位的JD里經(jīng)常寫著“熟悉CUDA、TensorRT優(yōu)先”這個先決條件就是Orin普及帶來的連鎖反應(yīng)。算法工程師在Orin上做模型優(yōu)化和在PC上做深度學(xué)習(xí)訓(xùn)練用的工具鏈基本一脈相承學(xué)習(xí)成本低遷移成本也低這個軟性優(yōu)勢比TOPS數(shù)字更值錢。2. 硬件架構(gòu)拆解性能數(shù)字背后的底氣2.1 從Xavier到Orin的變化先說個背景Orin不是橫空出世的它是英偉達車載產(chǎn)品線的第二代產(chǎn)品前一代是Xavier。Xavier的CPU核心是8核Carmel架構(gòu)GPU是Volta架構(gòu)整體算力30TOPS。放到今天30TOPS連一個完整的BEV感知都跑得費勁所以在Orin上英偉達幾乎是推倒重來。Orin的CPU部分用了12核Arm Cortex-A78AE核心這是Arm面向汽車電子設(shè)計的AE系列支持虛擬化和功能安全。GPU部分升級到Ampere架構(gòu)2048個CUDA核心、64個Tensor Core頻率最高能跑到2GHz左右。深度學(xué)習(xí)加速器也從Xavier的單一NVDLA升級成雙NVDLA v2專門處理卷積類算子。整套芯片還內(nèi)置了一個ASIL-D等級的安全島MCU負責(zé)監(jiān)控主核的運行狀態(tài)一旦發(fā)現(xiàn)異??梢钥焖俳庸苘囕v執(zhí)行降級策略。從制程角度看Orin用的是8nm級別工藝雖然沒有臺積電4nm那么先進但在當(dāng)時的車載芯片里已經(jīng)是高端水準(zhǔn)。英偉達用這個工藝做出了12核CPU加2048顆CUDA核心的規(guī)模說明架構(gòu)設(shè)計的能效比做得不錯。2.2 三大計算單元的實際分工很多同學(xué)第一次看Orin的架構(gòu)圖會懵CPU、GPU、DLA、安全島到底誰管什么事我用一個日常生活化的類比來解釋。你可以把Orin想象成一個公司CPU是總經(jīng)理負責(zé)決策、調(diào)度、對外溝通比如它要解析傳感器數(shù)據(jù)、跑路徑規(guī)劃算法、和底盤控制器通信這些需要復(fù)雜邏輯判斷的活兒都是CPU的。GPU是批處理工人團隊適合同時干大量重復(fù)但簡單的活比如圖像縮放、像素級預(yù)處理、并行計算。DLA則是流水線上的專用機械臂專門處理卷積神經(jīng)網(wǎng)絡(luò)里的卷積、池化、激活這些固定操作效率比GPU高但干的活比較單一只認神經(jīng)網(wǎng)絡(luò)的算子。實際跑一個自動駕駛感知模型時流程大概是這樣的攝像頭數(shù)據(jù)先進入內(nèi)存CPU把圖像分配到GPU或者DLA上進行推理模型輸出的物體框、車道線結(jié)果再交給CPU做決策規(guī)劃安全島MCU在后臺監(jiān)視一切如果發(fā)現(xiàn)CPU死機、GPU報錯它能在毫秒級時間內(nèi)接管控制讓車子安全靠邊停車。這種異構(gòu)架構(gòu)最大的好處是靈活性和能效的平衡。GPU做不了的事CPU能頂上DLA能干的活用很低功耗就能完成不需要把GPU拉滿。量產(chǎn)車上功耗和散熱都是稀缺資源這種分工設(shè)計非常實用。2.3 算力數(shù)字的秘密稠密、稀疏、TOPS是怎么算的很多人被Orin的算力數(shù)字繞暈過這里必須把賬算清楚。TOPS是Tera Operations Per Second每秒萬億次運算。Orin標(biāo)稱的254 TOPS指的是INT8精度下的稠密算力。什么意思呢神經(jīng)網(wǎng)絡(luò)在推理階段把權(quán)重和特征圖量化成8位整數(shù)來算比FP32快得多精度損失在可接受范圍內(nèi)這是量產(chǎn)部署的主流做法。那Jetson AGX Orin宣傳的275 TOPS又是怎么回事這是英偉達把2:4結(jié)構(gòu)化稀疏算力也算進去了。簡單說神經(jīng)網(wǎng)絡(luò)里的很多權(quán)重其實是多余的把它們按固定模式剪掉一半每4個權(quán)重抽出2個計算量理論可以減半。Orin的GPU硬件支持這種稀疏計算所以理論峰值算力會比稠密模式高約15%。但代價是模型需要專門做剪枝和稀疏化訓(xùn)練不是隨便拿個模型就能白嫖這15%的性能。所以選型看算力優(yōu)先看稠密算力不要把稀疏算力當(dāng)免費午餐。還有一個容易被忽視的點有效算力不等于標(biāo)稱算力。你實際跑一個YOLOv8模型能跑多少幀取決于內(nèi)存帶寬、TensorRT優(yōu)化程度、算子融合效果甚至數(shù)據(jù)搬運有沒有瓶頸。Orin的LPDDR5內(nèi)存帶寬做到204.8GB/s這個數(shù)字在嵌入式平臺里已經(jīng)很高但如果你一邊跑大分辨率感知、一邊做多路視頻編碼內(nèi)存帶寬依然可能成為瓶頸。提示評估算力是否夠用別只看TOPS。拿你自己要跑的模型在Orin板上實測一遍看端到端延遲和吞吐才是最有說服力的選型依據(jù)。3. 從開發(fā)板到量產(chǎn)域控的落地路徑3.1 Jetson AGX Orin最好上手的開發(fā)平臺如果你不是整車廠的人只是想學(xué)習(xí)或者做預(yù)研最先接觸到的通常是Jetson AGX Orin開發(fā)者套件。這個開發(fā)板長得跟一塊板磚差不多但是麻雀雖小、五臟俱全Orin SoC的全部算力都在里面存儲、網(wǎng)口、USB、PCIe、DP接口都給你配齊了拿到手就能開始搞開發(fā)。AGX Orin有兩種顯存版本32GB和64GB。64GB版本跑大模型、大規(guī)模點云融合更有底氣但價格也貴了快一倍。預(yù)算有限的話32GB版本跑目前主流的BEV感知模型也夠用主要是內(nèi)存帶寬一樣模型稍微剪一點就可以塞進去。官方支持15瓦到60瓦的功耗配置你可以通過nvpmodel命令切換模式比如在設(shè)備上做低功耗測試時切到20瓦實驗室滿血跑就拉滿60瓦。很多人糾結(jié)一個問題我該買Jetson AGX Orin研究還是直接上Drive Orin我的建議是除非你是在Tier1做量產(chǎn)域控開發(fā)否則Jetson AGX Orin夠用了。因為兩者的底層芯片架構(gòu)、CUDA能力、TensorRT部署流程幾乎一樣區(qū)別主要在接口、車規(guī)認證、功能安全冗余這些量產(chǎn)工程細節(jié)。你在Jetson上寫的模型和算法遷移到Drive Orin上的成本很低。3.2 量產(chǎn)方案Drive Orin如何組合真正上車量產(chǎn)的Orin版本叫NVIDIA Drive Orin它跟Jetson Orin的核心計算模塊大同小異但通過了AEC-Q100車規(guī)認證集成了更完善的安全島邏輯支持更豐富的車載網(wǎng)絡(luò)接口CAN-FD、以太網(wǎng)、LIN等。量產(chǎn)車型的域控制器一般不會只用一顆常見組合有幾種單Orin方案用于基礎(chǔ)L2輔助駕駛包括高速NOA、自動泊車傳感器配置相對簡單通常是7到9顆攝像頭加毫米波雷達。雙Orin方案目前市面上一線新勢力車型用得最多兩顆Orin做算力冗余或者一主一備跑城市NOA這種復(fù)雜場景單顆算力可能不夠雙芯片可以把感知和規(guī)控任務(wù)分拆也可以互為備份。四Orin方案適用于L4級Robotaxi、無人配送等場景算力堆到1016TOPS可以同時跑多套冗余感知、高精地圖定位、仿真驗證。量產(chǎn)域控的架構(gòu)設(shè)計除了芯片本身還要考慮外圍器件——供電系統(tǒng)、散熱模組、多路攝像頭接口、網(wǎng)絡(luò)安全模塊。Orin對電源的紋波和瞬態(tài)響應(yīng)要求比較嚴(yán)設(shè)計不好容易死機這也是很多Tier1前期會踩的坑。3.3 軟件工具鏈JetPack、CUDA、TensorRT的分工Orin的軟件生態(tài)是它最吸引開發(fā)者的一點。你可能經(jīng)常聽到“JetPack”這個詞它其實不是一個單獨的工具而是英偉達為Jetson系列開發(fā)板推出的整套SDK合集里面包含了Linux操作系統(tǒng)Ubuntu、CUDA工具包、cuDNN加速庫、TensorRT推理引擎、DeepStream視頻分析框架等一堆組件。打個比方JetPack就像是一個工具箱CUDA是里面的螺絲刀TensorRT是電鉆。你不用自己去配置Ubuntu驅(qū)動、CUDA環(huán)境變量、各種依賴庫刷一個JetPack鏡像進去環(huán)境基本就齊了。目前在Orin上比較主流的是JetPack 5.x基于Ubuntu 20.04和JetPack 6.x基于Ubuntu 22.04后者的驅(qū)動和CUDA版本都更新對最新版PyTorch、TensorRT的支持也更好。實際部署模型時TensorRT是最核心的一環(huán)。你用PyTorch訓(xùn)練出的模型不能直接跑在Orin上需要先導(dǎo)出成ONNX再用TensorRT轉(zhuǎn)換成TensorRT引擎文件.engine。轉(zhuǎn)換過程中TensorRT會對計算圖做層融合、精度校準(zhǔn)、算子選擇等優(yōu)化最終生成的引擎在GPU上的執(zhí)行效率能比原始PyTorch模型快好幾倍。DeepStream則是處理多路視頻流的利器它可以利用Orin的硬件解碼器同時解碼十幾路攝像頭視頻配合GPU做推理是量產(chǎn)車數(shù)據(jù)回傳、路側(cè)感知這類場景的常用框架。4. 實操記錄在AGX Orin上從燒錄到完成模型部署4.1 燒錄與初始化JetPack刷機避坑指南新買的AGX Orin開發(fā)板第一步是刷系統(tǒng)。這個步驟看著簡單實際上翻車率很高我檢查一下你們可能會遇到的坑。先用一臺x86的Ubuntu主機安裝NVIDIA SDK Manager然后把開發(fā)板用Type-C數(shù)據(jù)線連到主機上。這里有個容易被忽略的點開發(fā)板必須接上原裝電源適配器不要只靠USB-C線供電否則刷寫過程中電壓不穩(wěn)大概率會刷機失敗。SDK Manager會引導(dǎo)你選擇JetPack版本選擇目標(biāo)設(shè)備Jetson AGX Orin然后下載對應(yīng)的BSP包和文件系統(tǒng)這個過程比較耗時取決于網(wǎng)速可能要一小時以上。常見的報錯有以下幾種連接設(shè)備失敗多半是USB線不支持?jǐn)?shù)據(jù)傳輸換一根線試試。臺式機建議用主板后置USB口不要用前置HUB。下載中斷國內(nèi)網(wǎng)絡(luò)環(huán)境下載NVIDIA服務(wù)器資源時容易斷線可以考慮給Ubuntu主機配置代理或者換一個網(wǎng)速更好的時段重試。刷寫時設(shè)備自動關(guān)機檢查電源適配器是否插緊開發(fā)板上的電源指示燈有沒有常亮。刷完之后開發(fā)板會自動重啟第一次啟動需要連接顯示器做初始設(shè)置設(shè)置好用戶名密碼、時區(qū)這些。之后用sudo apt update把系統(tǒng)更新到最新再安裝你需要的JetPack組件如果沒有全量安裝的話。實操心得建議刷完系統(tǒng)后立刻把系統(tǒng)盤做一次備份用dd或者SDK Manager的恢復(fù)鏡像功能之后亂折騰驅(qū)動、裝軟件把系統(tǒng)搞掛了可以幾分鐘內(nèi)恢復(fù)不用再重刷一個下午。4.2 部署一個YOLOv8實例分割模型說點實際能落地的我們來走一遍在AGX Orin上部署YOLOv8實例分割模型的完整流程。開頭兩步是裝環(huán)境。Orin是ARM架構(gòu)的Ubuntu系統(tǒng)不能直接p