探討Orin的硬件和軟件架構(gòu),包括新一代的GPU、CPU、深度學(xué)習(xí)加速器,以及基于Orin的軟件棧,我們在之后將會介紹英偉達(dá)端到端的解決方案。
英偉達(dá)2019年推出了DRIVE AGX Orin平臺,最高算力(INT8)達(dá)到2000TOPS,是一個(gè)既覆蓋從L2到L5自動駕駛?cè)珗鼍?,也包含可視化、?shù)字儀表、車載信息娛樂及交互的高性能AI平臺,且在硬軟件上與上一代Xavier完全兼容,下圖為基于單Orin和雙Orin從L2到L5自動駕駛的系統(tǒng)方案。
DRIVE AGX Orin平臺中,內(nèi)置了Orin SoC芯片,下圖為基于Jetson AGX Orin機(jī)器人計(jì)算平臺,供參考。
2. Orin的系統(tǒng)架構(gòu)
Orin SoC采用7納米工藝,由Ampere架構(gòu)的GPU,ARM Hercules CPU,第二代深度學(xué)習(xí)加速器DLA、第二代視覺加速器PVA、視頻編解碼器、寬動態(tài)范圍的ISP組成,同時(shí)引入了車規(guī)級的安全島Safety Island設(shè)計(jì),下圖為Orin SoC的系統(tǒng)架構(gòu)。
Orin支持204GB/s的內(nèi)存帶寬和最高64GB的DRAM,高速I/O接口與上一代Xavier SoC的接口兼容,可實(shí)現(xiàn)275TOPS的INT8算力,是Xavier的7倍,功耗55W。
3. Orin的硬件架構(gòu)3.1 Ampere GPU
Orin采用了新一代的Ampere架構(gòu)GPU,由2個(gè)GPC(Graphics Processing Clusters,圖形處理簇)組成。
每個(gè)GPC又包含4個(gè)TPC(Texture Processing Clusters, 紋理處理簇),每個(gè)TPC由2個(gè)SM(Streaming Multiprocesor,流處理器)組成,下圖為Orin的GPU架構(gòu)。
每個(gè)SM有192KB的L1緩存和4MB的L2緩存,包含128個(gè)CUDA Core和4個(gè)Tensor Core。
因此Orin總計(jì)2048個(gè)CUDA Core和64個(gè)Tensor Core,INT8稀疏算力為170 TOPS(Tensor Core提供),INT8稠密算力為54TOPS,F(xiàn)P32算力為5.3TFLOP(由Cuda Core提供)。
與上一代Volta架構(gòu)的GPU相比,Tensor Core引入了對稀疏性的支持, 稀疏性Sparsity是一種細(xì)粒度的計(jì)算結(jié)構(gòu),可以使吞吐量翻倍并減少內(nèi)存使用量。
3.2 第三代張量核稀疏化技術(shù)
Ampere架構(gòu)中第三代Tensor Core是亮點(diǎn),首次引入了細(xì)粒度結(jié)構(gòu)化稀疏性技術(shù)(Fine-grained structured sparsity ,稀疏性),也是支撐英偉達(dá)對外宣傳“AI算力標(biāo)桿”的關(guān)鍵控制點(diǎn)。
稀疏化技術(shù)主要分為兩個(gè)部分:
一是對權(quán)重網(wǎng)絡(luò)先進(jìn)行密集訓(xùn)練(Dense trained weights),再將網(wǎng)絡(luò)權(quán)重修剪(pruning)為2:4的稀疏矩陣,稀疏矩陣中每個(gè)4個(gè)元素中有2個(gè)非零值,最后再對非零權(quán)重進(jìn)行微調(diào)(fine-tune),通過權(quán)重網(wǎng)絡(luò)壓縮,使得數(shù)據(jù)占用空間和帶寬減少為原來的一半;
二是在Tensor Core中加入選擇電路,稱為稀疏的tensor core),根據(jù)權(quán)重的索引過濾掉0的位置,讓weights不是0的部分和輸入的Tensor對應(yīng)的部分做內(nèi)積,使矩陣乘法所需計(jì)算量大大減少,即通過跳零(skipping the zeros)將數(shù)學(xué)計(jì)算的吞吐量加倍。
3.3 第二代DLA
Orin上推出了第二代深度學(xué)習(xí)加速器DLA,相比于第一代,主要有兩個(gè)變化:
第一是增加了本地緩沖,以提高效率并減少DRAM帶寬;第二是引入了結(jié)構(gòu)化稀疏功能(structured sparsity),增加了深度卷積處理器(depth wise convolution processor)和硬件調(diào)度器(hardware scheduler),下圖為第二代DLA架構(gòu)。
總體使得DLA的INT8稀疏算力為105TOPS,INT8稠密算力為11.4TOPS,而Xavier中的第一代DLA為5TOPS。
TensorRT可以在DLA上INT8或FP16運(yùn)行各種網(wǎng)絡(luò),并支持卷積、反卷積、全連接、激活、池化、batch歸一化(batch normalization)等各種層。
3.4 Arm A78 CPU
Orin系統(tǒng)架構(gòu)中,CPU從之前自研的Carmel架構(gòu)回到了到5納米工藝的ARM Cortex-A78上,下圖為CPU架構(gòu)。
Orin多達(dá)12個(gè)CPU內(nèi)核,每個(gè)內(nèi)核包含了64KB的L1指令緩存和64KB的L1數(shù)據(jù)緩存,以及256KB的L2緩存。
每4個(gè)CPU內(nèi)核組成一個(gè)CPU簇,共同使用一個(gè)2MB的L3緩存,支持的最大CPU頻率達(dá)到了2.2GHz。
相比于上一代Xavier的8核Carmel CPU,Orin的12核A78 CPU性能提升1.9倍。
3.5 內(nèi)存和通訊
Orin最高支持64GB的256位LPDDR5和64GB的eMMC。
DRAM支持3200MHz的最大時(shí)鐘速度,每個(gè)引腳6400Gbps,支持204.8GB/s的內(nèi)存帶寬,是Xavier內(nèi)存帶寬 memory bandwidth 的1.4倍、存儲storage的2倍。
下圖顯示了Orin各組件中,通過內(nèi)存控制器結(jié)構(gòu)(Fabric)和DRAM如何通訊和數(shù)據(jù)交互。
3.6 視頻編解碼器
Orin包含一個(gè)多標(biāo)準(zhǔn)視頻編碼器 (ENC)、一個(gè)多標(biāo)準(zhǔn)視頻解碼器 (DEC) 和JPEG處理塊 (JPEG)。
ENC和DEC支持完整硬件加速的編解碼標(biāo)準(zhǔn),包括H.265、H.264 、AV1等;JPEG用于JPEG靜止圖像的解壓縮計(jì)算、圖像縮放、解碼(YUV420、YUV422H/V、YUV444、YUV400)和色彩空間轉(zhuǎn)換(RGB到Y(jié)UV)等功能。
3.7 第二代視覺加速器PVA和VIC
Orin中對PVA進(jìn)行了升級,包括雙7路VLIW(超長指令字)矢量處理單元、雙DMA和Cortex-R5,支持計(jì)算機(jī)視覺中過濾、變形、圖像金字塔、特征檢測和FFT等功能。
Orin還包含一個(gè)Gen 4.2視頻成像合成器 (Video Imaging Compositor,VIC) 2D 引擎,支持鏡頭畸變校正和增強(qiáng)、時(shí)間降噪、視頻清晰度增強(qiáng)、像素處理(色彩空間轉(zhuǎn)換、縮放、混合和合成)等圖像處理功能。
為了調(diào)用Orin SoC上的多個(gè)硬件組件(PVA、VIC、CPU、GPU、 ENC等),英偉達(dá)開發(fā)了視覺編程接口 ( Vision Programming Interface,VPI)。作為一個(gè)軟件庫,VPI附帶了多種圖像處理算法(如框過濾、卷積、圖像重縮放和重映射)和計(jì)算機(jī)視覺算法(如哈里斯角檢測、KLT 特征跟蹤器、光流、背景減法等)。
3.8 I/O接口
Orin包含大量的高速 I/O,包括了22通道PCIe Gen4、以太網(wǎng)接口(千兆、10千兆)、顯示端口、16通道MIPI CSI-2、USB3.2等。
Orin中帶有電源管理集成電路 (Power Management Integrated Circuit,PMIC)、穩(wěn)壓器和電源樹,支持15W、30W 、50W、60W功率模式。
4. Orin的軟件棧
Orin的軟件棧是基于軟件開發(fā)工具包SDK(Software Development Kit)來提供支撐的。
主要是板級支持包 (BSP),包括了引導(dǎo)程序Bootloader、Linux內(nèi)核、驅(qū)動程序Driver、工具鏈Tool chain和基于Ubuntu的參考文件系統(tǒng),BSP也支持各種安全功能(安全啟動、可信執(zhí)行環(huán)境、磁盤和內(nèi)存加密等)。
在BSP之上,有多個(gè)用于加速應(yīng)用程序的用戶級庫,包括深度學(xué)習(xí)加速庫(CUDA、CuDNN、Tensor RT),加速計(jì)算庫(cuBLAS、cuFTT),計(jì)算機(jī)視覺和圖像處理庫(VPI),多媒體和相機(jī)庫(libArgus 和 v4l2)。
TensorRT是用于深度學(xué)習(xí)推理的運(yùn)行時(shí)庫( Runtime library)和優(yōu)化器( Optimizer ),可提供更低的延遲(Latency)和更高的吞吐量( Throughput ), 即通過模型量化、融合內(nèi)核節(jié)點(diǎn)( Fusing nodes in a kernel)和選擇最佳數(shù)據(jù)層和算法(Best data layers and algorithms )來優(yōu)化GPU內(nèi)存和帶寬(Memory and bandwidth)的使用。
cuDNN( CUDA Deep Neural Network Library,深度神經(jīng)網(wǎng)絡(luò)庫),是英偉達(dá)專門為深度神經(jīng)網(wǎng)絡(luò)所開發(fā)出來的GPU加速庫,針對卷積、池化等常見操作做了非常多的底層優(yōu)化,比一般的GPU程序要快很多,大多數(shù)主流深度學(xué)習(xí)框架都支持 cuDNN。
此外,Orin軟件棧上也支持特殊場景的SDK,包括用于智能視頻分析應(yīng)用程序的DeepStream、用于機(jī)器人應(yīng)用程序的Isaac和用于自然語言處理應(yīng)用程序的Riva,以支撐更多生態(tài)應(yīng)用發(fā)展。
下圖是基于Jetson AGX Orin機(jī)器人計(jì)算平臺供參考。
對于邊緣部署場景,推出了預(yù)訓(xùn)練模型 (PTM) ,已經(jīng)采用了數(shù)百萬張圖像進(jìn)行了預(yù)訓(xùn)練,模型庫中包括了人車檢測、自然語言處理、姿勢估計(jì)、車牌檢測、人臉檢測等模型,可以實(shí)現(xiàn)開箱即用;
此外配合TAO工具包( TAO toolkit ),使客戶能夠使用自己的數(shù)據(jù)集進(jìn)行訓(xùn)練、微調(diào)和優(yōu)化這些預(yù)訓(xùn)練模型,形成快速部署。
針對已經(jīng)部署在邊緣端的模型,借助云,通過容器和容器編排技術(shù)實(shí)現(xiàn)定期更新,包括具有Docker集成的 NVIDIA Container Runtime,以簡化大規(guī)模 AI 模型的部署。
5. 地表最強(qiáng),車企瘋搶
目前Orin的訂單火爆,已經(jīng)有越來越多的車企和初創(chuàng)公司宣布搭載Orin平臺。
上汽的R和智己,理想L9、蔚來ET7、小鵬新一代P7,威馬M7、比亞迪、沃爾沃XC90,還有自動駕駛卡車公司智加科技,Robotaxi等眾多明星企業(yè)Cruise、Zoox、滴滴、小馬智行、AutoX、軟件公司Momonta等等,都搭載Orin平臺進(jìn)行開發(fā)。
很多車企在拿到Orin樣板都迫不及待地官宣,試圖對外展示是Orin的首裝,Orin的交付,可以看作是今年智能汽車?yán)锍瘫录?/span>
6. 汽車人參考小結(jié)
燃料汽車向電瓶車和智能汽車過渡,高電池壽命成為標(biāo)準(zhǔn),以電池壽命為代表的電氣化基本進(jìn)入下半年;對于智能汽車,行業(yè)自然達(dá)成共識,從“馬力”到“計(jì)算率”,所以從電池壽命到馬力時(shí)代。英偉達(dá)的賣點(diǎn)是計(jì)算率,非常準(zhǔn)確,是利用自己的優(yōu)勢開始計(jì)算能力的軍備競爭。汽車公司的智能仍在競爭中,特別是在高端車型中,迫切需要有賣點(diǎn)和標(biāo)簽,市場上只有英偉達(dá)可選芯片,所以汽車公司瘋狂搶劫。汽車人員認(rèn)為,一方面,orin芯片算力率稀疏,計(jì)算利用率和成本性能需要更詳細(xì)的分析,汽車公司對其計(jì)算能力的認(rèn)識將越來越清晰;另一方面,在主流車型中,芯片的計(jì)算率將逐漸向電池壽命收斂,最終達(dá)到平衡,回歸成本性能的真實(shí)狀態(tài)。