上篇文章NVIDIA ADAS-英偉達(dá)DriveOS入門,介紹了英偉達(dá)的軟件,本篇文章來說明下現(xiàn)在英偉達(dá)在智能駕駛上已商用最新的硬件芯片Orin。
目前Orin訂單火爆,上汽的R和智己,理想L9、蔚來ET7、小鵬新一代P7,威馬M7、比亞迪、沃爾沃XC90,還有自動駕駛卡車公司智加科技,Robotaxi等眾多明星企業(yè)Cruise、Zoox、滴滴、小馬智行、AutoX、軟件公司Momonta等等,都搭載Orin平臺進(jìn)行開發(fā),看陣容就不可小覷,可謂地表最強(qiáng)算力芯片。
1. 英偉達(dá)智駕SoC芯片發(fā)展史

從2015年開始,英偉達(dá)開始進(jìn)入車載SoC和車載計算平臺領(lǐng)域,為自動駕駛提供基礎(chǔ)計算能力。此后英偉達(dá)幾乎每隔兩年發(fā)布一款車規(guī)級SoC芯片,且不斷拉升算力水平。2020年,Xavier芯片算力為30 TOPS,2022年發(fā)布的Orin算力為254 TOPS,2022秋季GTC大會上發(fā)布了新自動駕駛芯片Thor,算力為2000TFLOPS@FP8、4000TOPS@INT8,取代了之 前發(fā)布的算力達(dá)1000TOPS的Altan。
也就是說目前商用最新的芯片就是Orin。英偉達(dá)使用的車企陣容強(qiáng)大,如下圖:

1.1 Xavier平臺

NVIDIA在2018年CES上推出了Xavier平臺,作為Driver PX2 的進(jìn)化版本。NVIDIA稱Xavier 是“世界上最強(qiáng)大的SoC(片上系統(tǒng))”,Xavier可處理來自車輛雷達(dá)、攝像頭、激光雷達(dá)和超聲波等傳感器的自主駕駛感知數(shù)據(jù),能效比市場上同類產(chǎn)品更高,體積更小。“NVIDIA Jetson AGX Xavier 為邊緣設(shè)備的計算密度、能效和 AI 推理能力樹立了新的標(biāo)桿?!?/p>
2020年4月上市的小鵬汽車P7,成為首款搭載 NVIDIA DRIVE AGX Xavier 自動駕駛平臺的量產(chǎn)車型,小鵬 P7 配備了13 個攝像頭、5 個毫米波雷達(dá)、12 個超聲波雷達(dá),集成開放式的 NVIDIA DRIVE OS 操作系統(tǒng)。
Xavier SoC基于臺積電12nm FinFET工藝,集成90億顆晶體管,芯片面積350平方毫米,CPU采用NVIDIA自研8核ARM64架構(gòu)(代號Carmel), 集成了Volta架構(gòu)的GPU(512個CUDA核心),支持FP32/FP16/INT8,20W功耗下單精度浮點性能1.3TFLOPS,Tensor核心性能20TOPs,解鎖到30W后可達(dá)30TOPs。
Xavier是一顆高度異構(gòu)的SoC處理器,集成多達(dá)八種不同的處理器核心或者硬件加速單元。使得它能同時、且實時地處理數(shù)十種算法,以用于傳感器處理、測距、定位和繪圖、視覺和感知以及路徑規(guī)劃等任務(wù)負(fù)載。
除了強(qiáng)大的計算資源外,Xavier SoC擁有豐富的IO接口資源:

Xavier的主處理器可以達(dá)到ASIL-B級別的功能安全等級需求。Ecotron公司基于NVIDIA Xavier SoC和Infineon TC297 MCU打造、面向L3/L4級別自動駕駛領(lǐng)域的高性能中央計算平臺。按照設(shè)計方案考慮,Xavier智能處理器用于環(huán)境感知、圖像融合、路徑規(guī)劃等,TC297 MCU用于滿足ISO26262功能安全需求(ASIL-C/D級別)的控制應(yīng)用場景(也即作為Safety Core)?,比如安全監(jiān)控、冗余控制、網(wǎng)關(guān)通訊及整車控制。

雙Xavier+TC297 MCU的方案結(jié)構(gòu)圖:

此用法雖然是舊平臺的,但是其方案之后也是一直繼承的,即TCXXX的車控芯片獨(dú)立運(yùn)行AUTOSAR,這里畫出了兩個域:智駕域(NVIDIA)+車控域(TC),座艙一般直接使用成熟便宜的手機(jī)安卓技術(shù)了。就看未來是否有中央式架構(gòu)實現(xiàn)的可能了,目前還是三域架構(gòu)。
1.2 Orin平臺

2019年12月英偉達(dá)發(fā)布了新一代面向自動駕駛和機(jī)器人領(lǐng)域Orin芯片和計算平臺。具有ARM Hercules CPU內(nèi)核和英偉達(dá)下一代GPU架構(gòu)。Orin SoC包含170億晶體管,晶體管的數(shù)量幾乎是Xavier SoC的兩倍,具有12個ARM Hercules內(nèi)核,將集成Nvidia下一代Ampere架構(gòu)的GPU,提供200 TOPS@INT8性能,接近Xavier SoC的7倍,Orin SOC將在2021年提供樣片,2022年正式面向車廠量產(chǎn)。
2020年5月GTC上,英偉達(dá)介紹了即將發(fā)布的新一代自動駕駛Drive AGX Orin平臺,它可以搭載兩個Orin SoC和兩塊NVIDIA Ampere GPU,可以實現(xiàn)從入門級ADAS解決方案到L5級自動駕駛出租車(Robotaxi)系統(tǒng)的全方位性能提升,平臺最高可提供2000TOPS算力。未來L4/L5級別的自動駕駛系統(tǒng)將需要更復(fù)雜、更強(qiáng)大的自動駕駛軟件框架和算法,借助強(qiáng)勁的計算性能,Orin計算平臺將有助于并發(fā)運(yùn)行多個自動駕駛應(yīng)用和深度神經(jīng)網(wǎng)絡(luò)模型算法。
作為一顆專為自動駕駛而設(shè)計的車載智能計算平臺,Orin可以達(dá)到ISO 26262 ASIL-D 等級的功能安全標(biāo)準(zhǔn)。
借助于先進(jìn)的7nm制程工藝,Orin擁有非常出色的功耗水平。在擁有200TOPS的巨大算力時,TDP僅為50W。NVIDIA Orin處理器功能模塊圖

下表是Jetson AGX Orin的片上系統(tǒng)的性能參數(shù):

image.png
1.3 Thor平臺
NVIDIA DRIVE Thor 是NVIDIA新一代集中式車載計算平臺,可在單個安全、可靠的系統(tǒng)上運(yùn)行高級駕駛員輔助應(yīng)用和車載信息娛樂應(yīng)用。DRIVE Thor 超級芯片借助我們新的 CPU 和 GPU 突破,可提供出色的 2000 萬億次浮點運(yùn)算性能,同時降低總體系統(tǒng)成本,計劃于2025年開始量產(chǎn)。
可以看到三域開始變兩域了,智駕和座艙統(tǒng)一了,一統(tǒng)天下看來指日可待了,就需要利用安全技術(shù)解決最后一個車控MCU就可以了。
DRIVE Thor 還在深度神經(jīng)網(wǎng)絡(luò)準(zhǔn)確性方面實現(xiàn)了令人難以置信的飛躍。Transformer 引擎是NVIDIA GPU Tensor Core的新組件。Transformer 網(wǎng)絡(luò)將視頻數(shù)據(jù)作為單個感知幀進(jìn)行處理,使計算平臺能夠隨著時間的推移處理更多數(shù)據(jù)。
該SoC能夠進(jìn)行多域計算,這意味著它可以劃分自動駕駛和車載信息娛樂的任務(wù)。這種多計算域隔離可以讓并發(fā)的時間關(guān)鍵進(jìn)程不間斷地運(yùn)行。在一臺計算機(jī)上,車輛可以同時運(yùn)行Linux、QNX和Android。通常,這些類型的功能由分布在車輛各處的數(shù)十個電子控制單元控制。制造商現(xiàn)在可以利用 DRIVE Thor 隔離特定任務(wù)的能力來整合車輛功能,而不是依賴這些分布式ECU。

所有車輛顯示器、傳感器等都可以連接到這個單一SoC,從而簡化了汽車制造商極其復(fù)雜的供應(yīng)鏈。
參考:https://blogs.nvidia.com/blog/drive-thor/
2. Orin架構(gòu)介紹
以 Orin-x 為例,其中的 CPU 包括基于 Arm Cortex-A78AE 的主CPU 復(fù)合體,它提供通用高速計算能力;以及基于 Arm Cortex-R52 的功能安全島(FSI),它提供了隔離的片上計算資源, 減少了對外部 ASIL D 功能安全 CPU 處理的需求。

GPU 則是 NVIDIAAmpere GPU,為 CUDA 語言提供高級并行處理計算能力,并支持多種工具, 如 TensorRT,一種深度學(xué)習(xí)推理優(yōu)化器和運(yùn)行時,可提供低延遲和高吞吐量。Ampere 還提供最先進(jìn)的圖形功能,包括實時光線跟蹤。域特定硬件加速器(DSA)是一組專用硬件引擎,旨在從計算引擎中卸載各種計算任務(wù),并以高吞吐量和高能效執(zhí)行這些任務(wù)。
整個芯片內(nèi)部架構(gòu)設(shè)計主要是按分塊進(jìn)行功能設(shè)計區(qū)分。包括操作系統(tǒng)底層軟件QNX BSP(時鐘Clock源&系統(tǒng)重啟、CAN/SPI/I2C/GPIO/UART控制器、配置寄存器、系統(tǒng)配置)、實時運(yùn)行系統(tǒng)QNX RTOS、Nv多媒體處理模塊(傳感器處理模塊MCU(R5)、PVA、DLA、Audio Processor、MCU R5配置實時相機(jī)輸入)、經(jīng)典Autosar處理模塊(用于Safety Island Lock-Step R52s)、安全服務(wù)Safety Service(ARM Cotex-A78AE CPU Complex、CPU Switch fabric Coherent、信息安全PSC)、神經(jīng)網(wǎng)絡(luò)處理模塊(CUDA & TensorRT)。
下圖顯示了 SoC 的高級架構(gòu),分為三個主要處理復(fù)合體:CPU、GPU 和硬件加速器。

?

2.1 CPU相關(guān)

Orin系統(tǒng)架構(gòu)中,CPU從之前自研的Carmel架構(gòu)回到了到5納米工藝的ARM Cortex-A78上。Orin-x中CPU包括 12個 Cortex-A78,可以提供通用的目標(biāo)高速計算兼容性。同時,Arm Cortex R52 基于功能安全設(shè)計(FSI),可以提供獨(dú)立的片上計算資源,這樣就可以不用增加額外的 CPU(ASIL D)芯片用來提供功能安全等級。
CPU 族群所支持的特性包括 Debug 調(diào)試,電源管理,Arm CoreLink 中斷控制器,錯誤檢測與報告。CPU需要對芯片進(jìn)行整體性能監(jiān)控,每個核中的性能監(jiān)控單元提供了六個計算單元,每個單元可以計算處理器中的任何事件?;?PMUv3 架構(gòu)上,在每個 Runtime 期間這些計算單元會收集不同的統(tǒng)計值并運(yùn)行在處理器和存儲系統(tǒng)上。
2.2 GPU

Orin采用了新一代的Ampere架構(gòu)GPU,由2個GPC(Graphics Processing Clusters,圖形處理簇)組成。每個GPC又包含4個TPC(Texture Processing Clusters, 紋理處理簇),每個TPC由2個SM(Streaming Multiprocesor,流處理器)組成,下圖為Orin的GPU架構(gòu)。每個SM有192KB的L1緩存和4MB的L2緩存,包含128個CUDA Core和4個Tensor Core。因此Orin總計2048個CUDA Core和64個Tensor Core,INT8稀疏算力為170 TOPS(Tensor Core提供),INT8稠密算力為54TOPS,F(xiàn)P32算力為5.3TFLOP(由Cuda Core提供)。
NVIDIA Ampere GPU 可以提供先進(jìn)的并行處理計算架構(gòu)。開發(fā)者可以使用 CUDA 語言進(jìn)行開發(fā)(后續(xù)將對CUDA架構(gòu)進(jìn)行詳細(xì)說明),并支持 NVIDIA 中各種不同的工具鏈(如開發(fā) Tensor Core 和 RT Core 的應(yīng)用程序接口)。一個深度學(xué)習(xí)接口優(yōu)化器和實時運(yùn)行系統(tǒng)可以傳遞低延遲和高效輸出。Ampere GPU 同時可以提供如下一些的特性來實現(xiàn)對高分辨率、高復(fù)雜度的圖像處理能力(如實時光流追蹤)。
稀疏化::細(xì)粒度結(jié)構(gòu)化稀疏性使吞吐量翻倍,減少對內(nèi)存消耗。浮點處理能力:每個時鐘周期內(nèi)可實現(xiàn) 2 倍 CUDA 浮點性能。
緩存::流處理器架構(gòu)可以增加 L1 高速緩存帶寬和共享內(nèi)存,減少緩存未命中延遲。提升異步計算能力,后 L2 緩存壓縮。
2.3 加速器

特定域硬件加速器(DSAs、DLA、PVA)是一組特殊目的硬件引擎,實現(xiàn)計算引擎多任務(wù)、高效、低功率等特性。計算機(jī)視覺和深度學(xué)習(xí)簇包括兩個主要的引擎:可編程視覺加速器 PVA 和深度學(xué)習(xí)加速器 DLA(而在最新的中級算力 Orin n 芯片則取消了 DLA 處理器)。
PVA 是第二代 NVIDIA 視覺DSP架構(gòu),它是一種特殊應(yīng)用指令矢量處理器,這種處理器是專門針對計算機(jī)視覺、ADAS、ADS、虛擬現(xiàn)實系統(tǒng)。PVA 有一些關(guān)鍵的要素可以很好的適配預(yù)測算法領(lǐng)域,且功耗和延遲性都很低。Orin-x需要通過內(nèi)部的R核(Cortex-R5)子系統(tǒng)可以用于 PVA 控制和任務(wù)監(jiān)控。一個 PVA 簇可以完成如下任務(wù):雙向量處理單元(VPU)帶有向量核,指令緩存和 3 矢量數(shù)據(jù)存儲單元。每個單元有 7 個可見的插槽,包含可標(biāo)量和向量指令。此外,每個 VPU 還含有 384 KBytes的3端口存儲容量。
DLA 是一個固定的函數(shù)引擎,可用于加速卷積神經(jīng)網(wǎng)絡(luò)中的推理操作。Orin-x 單獨(dú)設(shè)置了 DLA 用于實現(xiàn)第二代 NVIDIA 的 DLA架構(gòu)。DLA支持加速 CNN 層的卷積、去卷積、激活、池化、局部歸一化、全連接層。最終支持優(yōu)化結(jié)構(gòu)化稀疏、深度卷積、一個專用的硬件調(diào)度器,以最大限度地提高效率。
2.4 第二代視覺加速器PVA和VIC

Orin中對PVA進(jìn)行了升級,包括雙7路VLIW(超長指令字)矢量處理單元、雙DMA和Cortex-R5,支持計算機(jī)視覺中過濾、變形、圖像金字塔、特征檢測和FFT等功能。
Orin還包含一個Gen 4.2視頻成像合成器 (Video Imaging Compositor,VIC) 2D 引擎,支持鏡頭畸變校正和增強(qiáng)、時間降噪、視頻清晰度增強(qiáng)、像素處理(色彩空間轉(zhuǎn)換、縮放、混合和合成)等圖像處理功能。
為了調(diào)用Orin SoC上的多個硬件組件(PVA、VIC、CPU、GPU、 ENC等),英偉達(dá)開發(fā)了視覺編程接口?( Vision Programming Interface,VPI)?。作為一個軟件庫,VPI附帶了多種圖像處理算法(如框過濾、卷積、圖像重縮放和重映射)和計算機(jī)視覺算法(如哈里斯角檢測、KLT 特征跟蹤器、光流、背景減法等)。
2.5 內(nèi)存和通訊

image.png
上圖顯示了Orin各組件中,通過內(nèi)存控制器結(jié)構(gòu)(Fabric)和DRAM如何通訊和數(shù)據(jù)交互。
Orin最高支持64GB的256位LPDDR5和64GB的eMMC。DRAM支持3200MHz的最大時鐘速度,每個引腳6400Gbps,支持204.8GB/s的內(nèi)存帶寬,是Xavier內(nèi)存帶寬 memory bandwidth 的1.4倍、存儲storage的2倍。
3. 基于Orin的自動駕駛平臺架構(gòu)設(shè)計

常規(guī)的 SOC 系統(tǒng)架構(gòu)通常是包含有常規(guī)的 SOC+MCU 雙芯片甚至三芯片的方式進(jìn)行設(shè)計的。SOC 由于計算性能上的優(yōu)勢,一般在前端感知、規(guī)劃中的計算應(yīng)用場景比 MCU 更好。
MCU 由于具備較高的功能安全等級,可以作為控制執(zhí)行的校驗輸出。業(yè)界對于英偉達(dá)芯片是否可以單純作為類似 TDA4 一樣的超異構(gòu)芯片而獨(dú)立承擔(dān)任務(wù), 一直都是褒貶不一的。原則上,從無論 Xavier 還是 Orin 系列,英偉達(dá)系列芯片設(shè)計都兼具豐富的 AI 和 CPU 算力能力??紤] L2+級別以上的自動駕駛系統(tǒng)開發(fā)而言,這種能力都是可以完全適配整個方案設(shè)計的??赡苁菍τ诎踩筝^高的車控MCU不光是技術(shù)上先進(jìn)就可以替代,主要還是裝機(jī)量,需要用起來安全才可以。
3.1 安全考慮

可以看到基本R52核實現(xiàn)的安全島達(dá)到了ASIL-D,其他基本還是只滿足ISO 26262。所以需要一個SMCU作為輔助實現(xiàn)車控域。如英飛凌 Aurix TC系 列,瑞薩的 RH850 系列都可以充當(dāng) MCU 實現(xiàn)對 Orin 的 SMCU 接入。這樣的 SMCU 實際是可以充當(dāng)整個系統(tǒng)開發(fā)的電源控制和嚴(yán)重失效故障規(guī)避的。在英偉達(dá)賣的開發(fā)平臺上就可以看到SMCU TC397的身影,如下圖:

通過可信安全加載技術(shù),ATF中BL1存入ROM,里面有BL2的安全校驗,然后形成鏈?zhǔn)桨踩虞d。包括 u-boot 在內(nèi)的所有低級引導(dǎo)步驟都可以通過簽名的二進(jìn)制文件來確保安全。它們的密鑰可以存儲在 CPU 中的一次性可編程保險絲中。U-boot 本身可以配置為使用簽名的FIT 映像,從而提供一個安全的引導(dǎo)鏈,一直到 Linux 內(nèi)核。初始 ROM 引導(dǎo)加載程序和 TegraBoot 也都支持完全冗余的引導(dǎo)路徑。
3.2 FSI介紹

上圖顯示了如何在英偉達(dá)系列芯片中加載 FSI 及底層相關(guān)模塊驅(qū)動引導(dǎo)程序。英偉達(dá)系列芯片在功能安全設(shè)計上,Orin 系列通過制定目標(biāo)實現(xiàn) ASIL D 系統(tǒng)能力設(shè)計和ASIL B/D 隨機(jī)錯誤管理能力設(shè)計。包括基于 SOC 芯片硬件的 ASIL 分解需求到各個核,確保核間設(shè)計一致性可以滿足 ASIL D 需求,并應(yīng)用標(biāo)準(zhǔn)的 ASIL D 開發(fā)流程到整個功能安全設(shè)計中,從底之上分別對安全流程、Drive AGX、操作系統(tǒng) Drive OS、Drive Work、傳感器、冗余架構(gòu)設(shè)計、安全策略幾個方面分別進(jìn)行相應(yīng)的安全設(shè)計。
英偉達(dá)系列芯片的功能安全島(FSI)是一個包含 Cortex-R52 和 Cortex-R5F real 的處理器集群,并具有專用 I/O 控制器的時間處理器的核心。例如,Orin-X 中的 FSI 模塊具有自己的電壓軌、振蕩器和PLL、SRAM,以確保與 SOC 內(nèi)部的其他模塊相互作用最小,并實現(xiàn)如上模塊相互之間無干擾。
Cortex-R52 處理器,也稱為安全CPU,具有 DCLS(雙核鎖步)模式下的 4 個內(nèi)核(共 8 個物理內(nèi)核),可運(yùn)行經(jīng)典 AUTOSAR 操作系統(tǒng),實現(xiàn)錯誤處理、系統(tǒng)故障處理和其他客戶工作負(fù)載,綜合性能約為 10KDMIPs。
Cortex-R5F 處理器,也稱為加密硬件安全模塊(CHSM),用于通過 CAN 接口運(yùn)行加密 和安全用例,如安全車載通信(SecOC)。
整個FSI機(jī)制上總體包含有如下的一些安全指令和控制接口信息:
1、安全和 CHSM CPU 每個核心的緊密耦合內(nèi)存、指令和數(shù)據(jù)緩存。
2、安全島上總共有 5MB 的片上專用 RAM,以確保代碼執(zhí)行和數(shù)據(jù)存儲可以保持在 FSI 內(nèi)。
3、島上有專門用于與外部組件通信的專用 I/O 接口。包含1個 UART,4 個 GPIO 口。
4、硬件安全機(jī)制,如 FSI 內(nèi)所有 IP 的 DLS、CRC、ECC、奇偶校驗、超時等。專用熱、電壓和頻率監(jiān)測器。
5、邏輯隔離,確保與 SoC 的其他部分有足夠的錯誤恢復(fù)時間FFI。
3.3 TESC
Tegra是英偉達(dá)芯片中特有的信息安全芯片內(nèi)核,Tegra Security Controller(TESC)是一種信息安全子系統(tǒng),他有自己的可信任根ROM、IMEM、DMEM,Crypto 加速器(AES、SHA、RNG、PKA),關(guān)鍵鏈路和關(guān)鍵存儲。TSEC 提供了一個片上TEE(可信任執(zhí)行環(huán)境)可以運(yùn)行NVIDIA-標(biāo)記的為處理代碼。TSEC是一種典型的安全視頻回放解決方案,下載信息安全運(yùn)行所需的HDCP1.x 和2.x連接授權(quán)和完整的線端連接檢測。
1)線端HDMI 1.4上的HDCP 1.4和 線端HDMI 2.3上的HDCP 2.0 2.1;?HDCP連接管理沒有暴露受保護(hù)的內(nèi)容,也無需運(yùn)行在CPU上的軟件鑰匙。用于 HDCP 鏈路管理的兩個軟件可編程獨(dú)立指令隊列(最多可容納 16 條指令);整個芯片能夠獨(dú)立于播放器在 HDCP 狀態(tài)檢查失敗時禁用 HDMI 輸出。
2)平臺安全控制器;?他是一個高安全子系統(tǒng),他可以保護(hù)和管理SOC中的資產(chǎn)(鑰匙、保險絲、功能、特性),并提供可信任的服務(wù),提升自由的抵御對 SOC 的攻擊,并可以提高對子系統(tǒng)本身的軟件和硬件攻擊的保護(hù)水平。
3)鑰匙管理和保護(hù);?PSC 將是唯一可以訪問芯片中最關(guān)鍵秘鑰的機(jī)制。該子系統(tǒng)代表了 Orin-x 中最高級別的保護(hù),并且該子系統(tǒng)本身對各種軟件和硬件攻擊具有高度的彈性。
4)授信服務(wù);?例如,在 SOC 安全啟動期間,主要的 PSC 服務(wù)可以完成有效的安全身份驗證、提供額外的密鑰/ID/數(shù)據(jù)、密鑰訪問和管理、隨機(jī)數(shù)生成和授信的時間報告。
5)信息安全監(jiān)控。?PSC 將負(fù)責(zé)定期的安全管理任務(wù),包括持續(xù)評估 SOC 的安全狀態(tài),主動監(jiān)控已知或潛在的攻擊模式(例如,電壓故障或熱攻擊),降低硬件攻擊風(fēng)險,并在檢測到有攻擊的情況下采取有效的措施。PSC 將能夠接受各種軟件更新來作為解決方法,以提高現(xiàn)場系統(tǒng)的穩(wěn)健性。
3.4 安全引擎(SE)
安全引擎SE中有兩種情況針對軟件使用是有用的。其一,TZ-SE只能被可信任區(qū)域軟件所訪問。其二,NS/TZ-SE可配置用來被可信任的軟件區(qū)域或非安全軟件所訪問。安全引擎SE可以為各種加密算法提供硬件加速以及硬件支撐密鑰保護(hù)。SE提供的加密算法可以被軟件用來建立加密協(xié)議和安全特性。所有加密運(yùn)算都是基于國際標(biāo)準(zhǔn)技術(shù)協(xié)會NIST批準(zhǔn)的加密算法。
英偉達(dá)的安全引擎SE可支持包含如下的所有信息安全保障能力:
NIST合規(guī)的對稱以及非對稱加密和哈希算法、側(cè)信道對策(AES/RSA/ECC)、獨(dú)立并行信道、硬件鑰匙訪問控制(KAC)(基于規(guī)則,增強(qiáng)硬件訪問控制的對稱鑰匙)、16xAES,4xRSA/ECC鑰匙孔、硬件密鑰隔離(僅針對AES鑰匙孔)、讀保護(hù)(僅針對AES鑰匙孔)、硬件鑰匙孔函數(shù)、密鑰包裝/解包功能(AES->AES鑰匙孔)、鑰匙從鑰匙孔分離(KDF->AES鑰匙孔)、隨機(jī)鑰匙生成(RNG->AES鑰匙孔)。
4. GPU編程CUDA

image.png
上圖表示了 CUDA 架構(gòu)示意圖,表示了CPU,GPU,應(yīng)用程序,CUDA 開發(fā)庫,運(yùn)行環(huán)境,驅(qū)動之間的關(guān)系
4.1 GPU軟件架構(gòu)
自動駕駛領(lǐng)域使用的 AI 算法多為并行結(jié)構(gòu)。AI 領(lǐng)域中用于圖像識別的深度學(xué)習(xí)、用于決策和推理的機(jī)器學(xué)習(xí)以及超級計算都需要大規(guī)模的并行計算,更適合采用 GPU 架構(gòu)。由于神經(jīng)網(wǎng)絡(luò)的分層級數(shù)(通常隱藏層的數(shù)量越多,神經(jīng)網(wǎng)絡(luò)模擬的結(jié)果越精確)會很大程度的影響其在預(yù)測結(jié)果。擅長并行處理的 GPU 可以很好的對神經(jīng)網(wǎng)絡(luò)算法進(jìn)行處理和優(yōu)化。因為,神經(jīng)網(wǎng)絡(luò)中的每個計算都是獨(dú)立于其他計算的,這意味著任何計算都不依賴于任何其他計算的結(jié)果,所有這些獨(dú)立的計算都可以在 GPU 上并行進(jìn)行。通常 GPU 上進(jìn)行的單個卷積計算要比 CPU 慢,但是對于整個任務(wù)來說,CPU 幾乎是串行處理方式,需要要逐個依次完成,因此,其速度要大大慢于 GPU。因此,卷積運(yùn)算可以通過使用并行編程方法和GPU來加速。
英偉達(dá)通過 CPU+GPU+DPU 形成產(chǎn)品矩陣,全面發(fā)力數(shù)據(jù)中心市場。利用 GPU 在AI 領(lǐng)域的先天優(yōu)勢,英偉達(dá)借此切入數(shù)據(jù)中心市場。針對芯片內(nèi)部帶寬以及系統(tǒng)級互聯(lián)等諸多問題,英偉達(dá)推出了 Bluefield DPU 和 Grace CPU,提升了整體硬件性能。
對于英偉達(dá)的GPU而言,一個 GPC 中有一個光柵引擎(ROP)和 4 個紋理處理集群(TPC),每個引擎可以訪問所有的存儲。

4.2 CUDA編程
CUDA(Compute Unified Device Architecture,統(tǒng)一計算架構(gòu)) 作為連接 AI 的中心節(jié)點,CUDA+GPU 系統(tǒng)極大推動了 AI 領(lǐng)域的發(fā)展。搭載英偉達(dá) GPU 硬件的工作站(Workstation)、服務(wù)器(Server)和云(Cloud)通過 CUDA軟件系統(tǒng)以及開發(fā)的 CUDA-XAI 庫,為自動駕駛系統(tǒng) AI 計算所需要的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的訓(xùn)練(Train)和推理(Inference)提供了對應(yīng)的軟件工具鏈,來服務(wù)眾多的框架、云服務(wù)等等,是整個英偉達(dá)系列芯片軟件開發(fā)中必不可少的一環(huán)。
CUDA 是一個基于英偉達(dá) GPU 平臺上面定制的特殊計算體系/算法,一般只能在英偉達(dá)的 GPU 系統(tǒng)上使用。這里從開發(fā)者角度我們講講在英偉達(dá) Orin 系列芯片中如何在 CUDA架構(gòu)上進(jìn)行不同軟件級別開發(fā)。
從CUDA 體系結(jié)構(gòu)的組成來說,它包含了三個部分:開發(fā)庫、運(yùn)行期環(huán)境和驅(qū)動。
“Developer Lib 開發(fā)庫”?是基于 CUDA 技術(shù)所提供的應(yīng)用開發(fā)庫。例如高度優(yōu)化的通用數(shù)學(xué)庫,即cuBLAS、cuSolver 和 cuFFT。核心庫,例如 Thrust 和 libcu++;通信庫, 例如 NCCL 和 NVSHMEM,以及其他可以在其上構(gòu)建應(yīng)用程序的包和框架。
“Runtime 運(yùn)行期環(huán)境”?提供了應(yīng)用開發(fā)接口和運(yùn)行期組件,包括基本數(shù)據(jù)類型的定義和各類計算、類型轉(zhuǎn)換、內(nèi)存管理、設(shè)備訪問和執(zhí)行調(diào)度等函數(shù)。
“Driver 驅(qū)動部分”?是 CUDA使能GPU的設(shè)備抽象層,提供硬件設(shè)備的抽象訪問接口。CUDA 提供運(yùn)行期環(huán)境也是通過這一層來實現(xiàn)各種功能的。
在 CUDA 架構(gòu)下,一個程序分為兩個部份:host端和 device端。Host端是指在 CPU 上執(zhí)行的部份,而 device端則是在顯示芯片(GPU)上執(zhí)行的部份。Device 端的程序又稱為 "kernel"。通常 host 端程序會將數(shù)據(jù)準(zhǔn)備好后,復(fù)制到顯卡的內(nèi)存中,再由顯示芯片執(zhí)行 device 端程序,完成后再由 host 端程序?qū)⒔Y(jié)果從顯卡的內(nèi)存中取回。這里需要注意的是,由于 CPU 存取顯存時只能透過 PCI Express 接口,因此速度較慢 (PCI Express x16 的理論帶寬是雙向各 4GB/s),因此不能經(jīng)常進(jìn)行,以免降低效率。
基于以上分析可知,針對大量并行化問題,采用 CUDA 來進(jìn)行問題處理,可以有效隱藏內(nèi)存的延遲性 latency,且可以有效利用顯示芯片上的大量執(zhí)行單元,同時處理上千個線程 thread 。因此,如果不能處理大量并行化的問題,使用 CUDA 就沒辦法達(dá)到最好的效率了。
對于這一應(yīng)用瓶頸來說,英偉達(dá)也在數(shù)據(jù)存取上做出了較大的努力提升。一方面,優(yōu)化的CUDA 改進(jìn)了 DRAM 的讀寫靈活性,使得GPU與CPU的機(jī)制相吻合。另一方面,CUDA提供了片上(on-chip)共享內(nèi)存,使得線程之間可以共享數(shù)據(jù)。應(yīng)用程序可以利用共享內(nèi)存來減少 DRAM 的數(shù)據(jù)傳送,更少的依賴 DRAM 的內(nèi)存帶寬。
此外,CUDA 還可以在程序開始時將數(shù)據(jù)復(fù)制進(jìn) GPU 顯存,然后在 GPU 內(nèi)進(jìn)行計算,直到獲得需要的數(shù)據(jù),再將其復(fù)制到系統(tǒng)內(nèi)存中。為了讓研發(fā)人員方便使用 GPU 的算力,英偉達(dá)不斷優(yōu)化 CUDA 的開發(fā)庫及驅(qū)動系統(tǒng)。操作系統(tǒng)的多任務(wù)機(jī)制可以同時管理 CUDA 訪問 GPU 和圖形程序的運(yùn)行庫,其計算特性支持利用 CUDA 直觀地編寫 GPU 核心程序。
后記:
對于軟件開發(fā)人員學(xué)習(xí)SoC架構(gòu)也是非常有用的,在制定軟件方案的時候需要參考硬件上有那些通路,性能是否可以滿足,有那些硬件可以利用來支撐功能實現(xiàn)。在驅(qū)動開發(fā)的時候,需要羅列那些硬件模塊的需求需要開發(fā),驅(qū)動對上層提供的服務(wù)要達(dá)到什么程度形成封裝API接口。
本篇文章為了更加全面準(zhǔn)確的介紹Orin,除了參考官網(wǎng)的資料外,參考了大量他人的文章,見參考資料章節(jié),對于芯片更細(xì)節(jié)的東西需要注冊英偉達(dá)官網(wǎng)賬號,甚至購買后有芯片的data sheet和FAE支持,這里不涉及。芯片研發(fā)和使用需要大量人力物力,這里雖只是冰山一角都這么多,也寫的比較流水賬,大家多多擔(dān)待。
審核編輯:黃飛
?
電子發(fā)燒友App



































評論