0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解英偉達(dá)芯片在自動(dòng)駕駛的軟件移植設(shè)計(jì)開(kāi)發(fā)

jf_C6sANWk1 ? 來(lái)源:阿寶1990 ? 2023-06-06 15:37 ? 次閱讀

NIVIDIA DRIVE Orin 系列作為一個(gè)萬(wàn)用 SOC 芯片,可以用于各種不同的感知和通用計(jì)算任務(wù),其優(yōu)質(zhì)的大算力、運(yùn)行性能、完備的兼容性,以及豐富的 I/O 接口,可以減少系統(tǒng)開(kāi)發(fā)的復(fù)雜度。這些特性使得 Orin 系列的芯片特別適合應(yīng)用在自動(dòng)駕駛系統(tǒng)。

整體上看,Orin系列芯片頂層SOC架構(gòu)的模塊主要由三部分處理單元組成:即 CPU、GPU 和硬件加速器組成。以當(dāng)前較火的Orin-x作為典型說(shuō)明英偉達(dá)芯片在其軟件模塊開(kāi)發(fā)中是如何進(jìn)行調(diào)用的。

754a2ca2-043c-11ee-90ce-dac502259ad0.png

1、CPU:

Orin-x中CPU包括 12 個(gè) Cortex-A78,可以提供通用的目標(biāo)高速計(jì)算兼容性。同時(shí),Arm Cortex R52 基于功能安全設(shè)計(jì)(FSI),可以提供獨(dú)立的片上計(jì)算資源,這樣就可以不用增加額外的 CPU(ASIL D)芯片用來(lái)提供功能安全等級(jí)。

CPU 族群所支持的特性包括 Debug 調(diào)試,電源管理,Arm CoreLink 中斷控制器,錯(cuò)誤檢測(cè)與報(bào)告。

CPU 需要對(duì)芯片進(jìn)行整體性能監(jiān)控,每個(gè)核中的性能監(jiān)控單元提供了六個(gè)計(jì)算單元,每 個(gè)單元可以計(jì)算處理器中的任何事件。基于 PMUv3 架構(gòu)上,在每個(gè) Runtime 期間這些計(jì)算 單元會(huì)收集不同的統(tǒng)計(jì)值并運(yùn)行在處理器和存儲(chǔ)系統(tǒng)上。

2、GPU:

NVIDIA Ampere GPU 可以提供先進(jìn)的并行處理計(jì)算架構(gòu)。開(kāi)發(fā)者可以使用 CUDA 語(yǔ)言進(jìn)行開(kāi)發(fā)(后續(xù)將對(duì)CUDA架構(gòu)進(jìn)行詳細(xì)說(shuō)明),并支持 NVIDIA 中各種不同的工具鏈(如開(kāi)發(fā) Tensor Core 和 RT Core 的應(yīng)用程序接口)。一個(gè)深度學(xué)習(xí)接口優(yōu)化器和實(shí)時(shí)運(yùn)行系統(tǒng)可以傳遞低延遲和高效輸出。Ampere GPU 同時(shí)可以提供如下一些的特性來(lái)實(shí)現(xiàn)對(duì)高分辨率、高復(fù)雜度的圖像處理能力(如實(shí)時(shí)光流追蹤)。

稀疏化:

細(xì)粒度結(jié)構(gòu)化稀疏性使吞吐量翻倍,減少對(duì)內(nèi)存消耗。浮點(diǎn)處理能力:每個(gè)時(shí)鐘周期內(nèi)可實(shí)現(xiàn) 2 倍 CUDA 浮點(diǎn)性能。

緩存:

流處理器架構(gòu)可以增加 L1 高速緩存帶寬和共享內(nèi)存,減少緩存未命中延遲。提升異步計(jì)算能力,后 L2 緩存壓縮。

3、Domain-Specific

特定域硬件加速器(DSAs、DLA、PVA)是一組特殊目的硬件引擎,實(shí)現(xiàn)計(jì)算引擎多任務(wù)、高效、低功率等特性。計(jì)算機(jī)視覺(jué)和深度學(xué)習(xí)簇包括兩個(gè)主要的引擎:可編程視覺(jué)加速器 PVA 和深度學(xué)習(xí)加速器 DLA(而在最新的中級(jí)算力 Orin n 芯片則取消了 DLA 處理器)。

PVA 是第二代 NVIDIA 視覺(jué)DSP架構(gòu),它是一種特殊應(yīng)用指令矢量處理器,這種處理器是專門(mén)針對(duì)計(jì)算機(jī)視覺(jué)、ADAS、ADS、虛擬現(xiàn)實(shí)系統(tǒng)。PVA 有一些關(guān)鍵的要素可以很好的適配預(yù)測(cè)算法領(lǐng)域,且功耗和延遲性都很低。Orin-x需要通過(guò)內(nèi)部的R核(Cortex-R5)子系統(tǒng)可以用于 PVA 控制和任務(wù)監(jiān)控。一個(gè) PVA 簇可以完成如下任務(wù):雙向量處理單元(VPU)帶有向量核,指令緩存和 3 矢量數(shù)據(jù)存儲(chǔ)單元。每個(gè)單元有 7 個(gè)可見(jiàn)的插槽,包含可標(biāo)量和向量指令。此外,每個(gè) VPU 還含有 384 KBytes的3端口存儲(chǔ)容量。

DLA 是一個(gè)固定的函數(shù)引擎,可用于加速卷積神經(jīng)網(wǎng)絡(luò)中的推理操作。Orin-x 單獨(dú)設(shè)置了 DLA 用于實(shí)現(xiàn)第二代 NVIDIA 的 DLA架構(gòu)。DLA支持加速 CNN 層的卷積、去卷積、激活、池化、局部歸一化、全連接層。最終支持優(yōu)化結(jié)構(gòu)化稀疏、深度卷積、一個(gè)專用的硬件調(diào)度器,以最大限度地提高效率。

那么,怎樣利用英偉達(dá)自身的GPU和CPU上的算力進(jìn)行有效的計(jì)算機(jī)視覺(jué)開(kāi)發(fā)能力探測(cè)呢?

GPU的軟件架構(gòu)

自動(dòng)駕駛領(lǐng)域使用的 AI 算法多為并行結(jié)構(gòu)。AI 領(lǐng)域中用于圖像識(shí)別的深度學(xué)習(xí)、用于決策和推理的機(jī)器學(xué)習(xí)以及超級(jí)計(jì)算都需要大規(guī)模的并行計(jì)算,更適合采用 GPU 架構(gòu)。由于神經(jīng)網(wǎng)絡(luò)的分層級(jí)數(shù)(通常隱藏層的數(shù)量越多,神經(jīng)網(wǎng)絡(luò)模擬的結(jié)果越精確)會(huì)很大程度的影響其在預(yù)測(cè)結(jié)果。擅長(zhǎng)并行處理的 GPU 可以很好的對(duì)神經(jīng)網(wǎng)絡(luò)算法進(jìn)行處理和優(yōu)化。因?yàn)?,神?jīng)網(wǎng)絡(luò)中的每個(gè)計(jì)算都是獨(dú)立于其他計(jì)算的,這意味著任何計(jì)算都不依賴于任何其他計(jì)算的結(jié)果,所有這些獨(dú)立的計(jì)算都可以在 GPU 上并行進(jìn)行。通常 GPU 上進(jìn)行的單個(gè)卷積計(jì)算要比 CPU 慢,但是對(duì)于整個(gè)任務(wù)來(lái)說(shuō),CPU 幾乎是串行處理方式,需要要逐個(gè)依次完成,因此,其速度要大大慢于 GPU。因此,卷積運(yùn)算可以通過(guò)使用并行編程方法和GPU來(lái)加速。

英偉達(dá)通過(guò) CPU+GPU+DPU 形成產(chǎn)品矩陣,全面發(fā)力數(shù)據(jù)中心市場(chǎng)。利用 GPU 在AI 領(lǐng)域的先天優(yōu)勢(shì),英偉達(dá)借此切入數(shù)據(jù)中心市場(chǎng)。針對(duì)芯片內(nèi)部帶寬以及系統(tǒng)級(jí)互聯(lián)等 諸多問(wèn)題,英偉達(dá)推出了 Bluefield DPU 和 Grace CPU,提升了整體硬件性能。

對(duì)于英偉達(dá)的GPU而言,一個(gè) GPC 中有一個(gè)光柵引擎(ROP)和 4 個(gè)紋理處理集群(TPC),每個(gè)引擎可以訪問(wèn)所有的存儲(chǔ)。

75940872-043c-11ee-90ce-dac502259ad0.png

每個(gè) TPC 包含兩路流式多媒體處理器(SM),每個(gè) SM 有 128 個(gè) CUDA cores,被分為 4 個(gè)單獨(dú)的處理模塊,每個(gè)模塊都有自己的指令緩沖區(qū)、調(diào)度程序和張量核心。每個(gè)TPC 也包含一個(gè)變形引擎、兩個(gè)紋理單元和兩個(gè)光線追蹤核心(RT Core)。

GPC是一種專門(mén)針對(duì)硬件模塊開(kāi)發(fā)的光柵、陰影、紋理結(jié)構(gòu)和計(jì)算的單元。GPU的核心圖像處理函數(shù)就是在 GPC 中實(shí)現(xiàn)的。在 GPC 中,SM 的 CUDA 核可以執(zhí)行像素級(jí)/矢量級(jí)/幾何陰影的計(jì)算。紋理結(jié)構(gòu)單元執(zhí)行紋理濾波和加載/存儲(chǔ)獲取、數(shù)據(jù)保存到存儲(chǔ)器。

特殊的函數(shù)單元(SFUs)可以處理先驗(yàn)的和圖像的內(nèi)插指令。

Tensor Cores 執(zhí)行矩陣乘法來(lái)極大加速深度學(xué)習(xí)推理。RTcore 單元通過(guò)加速邊界體積層次結(jié)構(gòu)(BVH)的遍歷和光流追蹤過(guò)程中的場(chǎng)景幾何交叉可以輔助光流追蹤性能。

最后,多元引擎處理可以處理頂點(diǎn)提取、鑲嵌、視角轉(zhuǎn)換、屬性建立和視頻流輸出。SM幾何級(jí)、像素級(jí)處理執(zhí)行性能可以確保其高適配性。這就可以很好地用于用戶接口和復(fù)雜的應(yīng)用開(kāi)發(fā),Ampere GPU 的功率也得到了優(yōu)化,可以確保其在環(huán)境提供低功耗下還能保持較高性能。

核心通用編程架構(gòu)CUDA

CUDA(Compute Unified Device Architecture,統(tǒng)一計(jì)算架構(gòu)) 作為連接 AI 的中心節(jié)點(diǎn),CUDA+GPU 系統(tǒng)極大推動(dòng)了 AI 領(lǐng)域的發(fā)展。搭載英偉達(dá) GPU 硬件的工作站(Workstation)、服務(wù)器(Server)和云(Cloud)通過(guò) CUDA軟件系統(tǒng)以及開(kāi)發(fā)的 CUDA-XAI 庫(kù),為自動(dòng)駕駛系統(tǒng) AI 計(jì)算所需要的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的訓(xùn)練(Train)和推理(Inference)提供了對(duì)應(yīng)的軟件工具鏈,來(lái)服務(wù)眾多的框架、云服務(wù)等等,是整個(gè)英偉達(dá)系列芯片軟件開(kāi)發(fā)中必不可少的一環(huán)。

CUDA 是一個(gè)基于英偉達(dá) GPU 平臺(tái)上面定制的特殊計(jì)算體系/算法,一般只能在英偉達(dá)的 GPU 系統(tǒng)上使用。這里從開(kāi)發(fā)者角度我們講講在英偉達(dá) Orin 系列芯片中如何在 CUDA架構(gòu)上進(jìn)行不同軟件級(jí)別開(kāi)發(fā)。

1、CUDA 架構(gòu)及數(shù)據(jù)處理解析

如下圖表示了 CUDA 架構(gòu)示意圖,表示了CPU,GPU,應(yīng)用程序,CUDA 開(kāi)發(fā)庫(kù),運(yùn)行環(huán)境,驅(qū)動(dòng)之間的關(guān)系如上圖所示。

75d34442-043c-11ee-90ce-dac502259ad0.png

那么,如何在涵蓋 CPU 和 GPU 模塊中利用 CUDA 本身的編程語(yǔ)言進(jìn)行開(kāi)發(fā)調(diào)用呢?

從CUDA 體系結(jié)構(gòu)的組成來(lái)說(shuō),它包含了三個(gè)部分:開(kāi)發(fā)庫(kù)、運(yùn)行期環(huán)境和驅(qū)動(dòng)。

“Developer Lib 開(kāi)發(fā)庫(kù)”是基于 CUDA 技術(shù)所提供的應(yīng)用開(kāi)發(fā)庫(kù)。例如高度優(yōu)化的通用數(shù)學(xué)庫(kù),即cuBLAS、cuSolver 和 cuFFT。核心庫(kù),例如 Thrust 和 libcu++;通信庫(kù), 例如 NCCL 和 NVSHMEM,以及其他可以在其上構(gòu)建應(yīng)用程序的包和框架。

“Runtime 運(yùn)行期環(huán)境”提供了應(yīng)用開(kāi)發(fā)接口和運(yùn)行期組件,包括基本數(shù)據(jù)類型的定義和各類計(jì)算、類型轉(zhuǎn)換、內(nèi)存管理、設(shè)備訪問(wèn)和執(zhí)行調(diào)度等函數(shù)。

“Driver 驅(qū)動(dòng)部分”是 CUDA 使能 GPU 的設(shè)備抽象層,提供硬件設(shè)備的抽象訪問(wèn)接口。CUDA 提供運(yùn)行期環(huán)境也是通過(guò)這一層來(lái)實(shí)現(xiàn)各種功能的。

目前于 CUDA 開(kāi)發(fā)的應(yīng)用必須有 NVIDIA CUDA-enable 的硬件支持。對(duì)于 CUDA 執(zhí)行過(guò)程而言,CPU 擔(dān)任的工作是為控制 GPU 執(zhí)行,調(diào)度分配任務(wù),并能做一些簡(jiǎn)單的計(jì)算,而大量需要并行計(jì)算的工作都交給 GPU 實(shí)現(xiàn)。

在 CUDA 架構(gòu)下,一個(gè)程序分為兩個(gè)部份:host 端和 device 端。Host 端是指在 CPU 上執(zhí)行的部份,而 device 端則是在顯示芯片(GPU)上執(zhí)行的部份。Device 端的程序又稱為 "kernel"。通常 host 端程序會(huì)將數(shù)據(jù)準(zhǔn)備好后,復(fù)制到顯卡的內(nèi)存中,再由顯示芯片執(zhí)行 device 端程序,完成后再由 host 端程序?qū)⒔Y(jié)果從顯卡的內(nèi)存中取回。這里需要注意的是,由于 CPU 存取顯存時(shí)只能透過(guò) PCI Express 接口,因此速度較慢 (PCI Express x16 的理論帶寬是雙向各 4GB/s),因此不能經(jīng)常進(jìn)行,以免降低效率。

基于以上分析可知,針對(duì)大量并行化問(wèn)題,采用 CUDA 來(lái)進(jìn)行問(wèn)題處理,可以有效隱藏內(nèi)存的延遲性 latency,且可以有效利用顯示芯片上的大量執(zhí)行單元,同時(shí)處理上千個(gè)線程 thread 。因此,如果不能處理大量并行化的問(wèn)題,使用 CUDA 就沒(méi)辦法達(dá)到最好的效率了。

對(duì)于這一應(yīng)用瓶頸來(lái)說(shuō),英偉達(dá)也在數(shù)據(jù)存取上做出了較大的努力提升。一方面,優(yōu)化的CUDA 改進(jìn)了 DRAM 的讀寫(xiě)靈活性,使得GPU與CPU的機(jī)制相吻合。另一方面,CUDA提供了片上(on-chip)共享內(nèi)存,使得線程之間可以共享數(shù)據(jù)。應(yīng)用程序可以利用共享內(nèi)存來(lái)減少 DRAM 的數(shù)據(jù)傳送,更少的依賴 DRAM 的內(nèi)存帶寬。

此外,CUDA 還可以在程序開(kāi)始時(shí)將數(shù)據(jù)復(fù)制進(jìn) GPU 顯存,然后在 GPU 內(nèi)進(jìn)行計(jì)算,直到獲得需要的數(shù)據(jù),再將其復(fù)制到系統(tǒng)內(nèi)存中。為了讓研發(fā)人員方便使用 GPU 的算力,英偉達(dá)不斷優(yōu)化 CUDA 的開(kāi)發(fā)庫(kù)及驅(qū)動(dòng)系統(tǒng)。操作系統(tǒng)的多任務(wù)機(jī)制可以同時(shí)管理 CUDA 訪問(wèn) GPU 和圖形程序的運(yùn)行庫(kù),其計(jì)算特性支持利用 CUDA 直觀地編寫(xiě) GPU 核心程序。

2、CUDA 編程開(kāi)發(fā)

英偉達(dá)系列芯片的應(yīng)用基礎(chǔ)是提供一套豐富且成熟的 SDK 和庫(kù),可以基于它們構(gòu)建應(yīng)用程序。CUDA 這種計(jì)算架構(gòu)通過(guò)優(yōu)化的各類調(diào)度算法和軟件框架,實(shí)際為開(kāi)發(fā)者提供了快速可調(diào)用的底層編程代碼,可以確保開(kāi)發(fā)者在編程過(guò)程中能夠最快速最有效的直接調(diào)用GPU 并行計(jì)算資源,從而最大化提升 GPU 的計(jì)算效率,助力英偉達(dá) GPU 方便且高效地發(fā)揮其并行計(jì)算能力。

CUDA 是一種類 C 語(yǔ)言,本身也兼容 C 語(yǔ)言,所以適合普通開(kāi)發(fā)者在其上編寫(xiě)和移植自己的代碼和算法??傮w來(lái)講,英偉達(dá)在編程方式上分成了如下三種不同的模式。如下圖表示了各種編程語(yǔ)言之間的關(guān)系:

75e0a5d8-043c-11ee-90ce-dac502259ad0.png

? 針對(duì)文本主題通常采用標(biāo)準(zhǔn)語(yǔ)言并行開(kāi)發(fā);針對(duì)性能優(yōu)化的平臺(tái)專用語(yǔ)言,如 C++、Fortran、OpenCL 等;其中,OpenCL 也可以實(shí)現(xiàn)對(duì) GPU 計(jì)算能力的調(diào)用,但由于其通用性較強(qiáng),整體優(yōu)化效果不如 CUDA, 在大規(guī)模計(jì)算中劣勢(shì)很大。CUDA 架構(gòu)是 OpenCL 的運(yùn)行平臺(tái)之一,OpenCL僅僅是為 CUDA 架構(gòu)提供了一個(gè)可編程的 API 而已。也就是相當(dāng)于 API 與執(zhí)行架構(gòu)之間的關(guān)系。

針對(duì)如上標(biāo)準(zhǔn)語(yǔ)言和專用語(yǔ)言所定制的編譯器指令,可以通過(guò)啟用增量性能優(yōu)化來(lái)彌合這兩種方式之間的差距。從而在性能、生產(chǎn)率和代碼可移植性方面進(jìn)行權(quán)衡。

如下圖表示了一種典型的 CUDA 架構(gòu)優(yōu)化后相對(duì)于 CPU、GPU 在軟件編程上的性能提升。

7622ab0e-043c-11ee-90ce-dac502259ad0.png

為什么CUDA能夠起到比CPU和GPU更好的運(yùn)算效果呢?

實(shí)際上是對(duì)于同一個(gè)計(jì)算輸入采用的不同計(jì)算方法。舉個(gè)例子,考慮1至100的累加,如果是CPU,最終運(yùn)算量計(jì)算結(jié)果則是需要調(diào)用執(zhí)行同一個(gè)累加函數(shù)100次;而GPU如果并行計(jì)算如果有4核,則是4個(gè)主線同時(shí)運(yùn)算這個(gè)算式,則計(jì)算量則是前者的1/4;而CUDA計(jì)算模式則可以看成優(yōu)化的GPU,即在這種常規(guī)的累加計(jì)算上,也會(huì)采用一些“討巧”的方式進(jìn)行。比如考慮累加的首尾兩側(cè)加起來(lái)都是100(比如1+99,2+98,3+97...),因此,只需要考慮這種計(jì)算的累加次數(shù)就可以直接很快計(jì)算出結(jié)果了。從這個(gè)例子上看,CUDA的計(jì)算方式至少可以比單純地GPU減少一半的計(jì)算量。

3、CUDA的典型數(shù)學(xué)庫(kù)

類似于CPU編程庫(kù),CUDA庫(kù)作為一系列接口的集合,只需要編寫(xiě)host代碼,調(diào)用相應(yīng)API即可實(shí)現(xiàn)各種函數(shù)功能,這樣可以節(jié)約很多開(kāi)發(fā)時(shí)間。并且CUDA的庫(kù)都是經(jīng)過(guò)大量的編程能力強(qiáng)的大拿經(jīng)過(guò)不斷優(yōu)化形成的,因此我們完全可以信任這些庫(kù)能夠達(dá)到很好的性能。當(dāng)然,完全依賴于這些庫(kù)而對(duì)CUDA性能優(yōu)化一無(wú)所知也是不行的,我們依然需要手動(dòng)做一些改進(jìn)來(lái)挖掘出更好的性能。

CUDA上常用的庫(kù)包括如下幾種:

cuSPARSE線性代數(shù)庫(kù),主要針對(duì)稀疏矩陣之類的

cuBLAS是CUDA標(biāo)準(zhǔn)的線性代數(shù)庫(kù),該庫(kù)沒(méi)有專門(mén)針對(duì)稀疏矩陣的操作

cuFFT傅里葉變換,用于內(nèi)核加載時(shí)機(jī)和方式

cuRAND隨機(jī)數(shù),用于隨機(jī)數(shù)的計(jì)算。

cuBLASLt

cuBLASLt 使用新的 FP8 數(shù)據(jù)類型公開(kāi)混合精度乘法運(yùn)算。這些操作還支持 BF16 和 FP16 偏差融合,以及 FP16 偏差與 GELU 激活融合,用于具有 FP8 輸入和輸出數(shù)據(jù)類型的 GEMM。

在性能方面,與 A100 上的 BF16 相比,F(xiàn)P8 GEMM 在 H100 PCIe 和 SXM 上的速度分別提高了 3 倍和 4.5 倍。CUDA Math API 提供 FP8 轉(zhuǎn)換以方便使用新的 FP8 矩陣乘法運(yùn)算。

cuBLAS 12.0 擴(kuò)展了 API 以支持 64 位整數(shù)問(wèn)題大小、前導(dǎo)維度和向量增量。這些新函數(shù)與其對(duì)應(yīng)的 32 位整數(shù)函數(shù)具有相同的 API,只是它們?cè)诿Q中具有 _64 后綴并將相應(yīng)的參數(shù)聲明為 int64_t。

cublasStatus_t cublasIsamax(cublasHandle_t handle, int n, const float *x, int incx, int *result);

對(duì)應(yīng)的 64 位整數(shù)如下:

cublasStatus_t cublasIsamax_64(cublasHandle_t handle, int64_t n, const float *x, int64_t incx, int64_t *result);

cuFFT

在計(jì)劃初始化期間,cuFFT 執(zhí)行一系列步驟(包括試探法)是用來(lái)確定使用了哪些內(nèi)核以及內(nèi)核模塊如何加載。從 CUDA 12.0 開(kāi)始,cuFFT 使用 CUDA 并行線程執(zhí)行 (PTX) 匯編形式而不是二進(jìn)制形式交付了大部分內(nèi)核。

當(dāng)cuFFT 計(jì)劃初始化時(shí),cuFFT 內(nèi)核的 PTX 代碼在運(yùn)行時(shí)由 CUDA 設(shè)備驅(qū)動(dòng)程序加載并進(jìn)一步編譯為二進(jìn)制代碼。由于新的實(shí)施,第一個(gè)可用的改進(jìn)將為 NVIDIA Maxwell、NVIDIA Pascal、NVIDIA Volta 和 NVIDIA Turing 架構(gòu)啟用許多新的加速內(nèi)核。

cuSPARSE

為了減少稀疏矩陣乘法 (SpGEMM) 所需的工作空間,NVIDIA 發(fā)布了兩種內(nèi)存使用率較低的新算法。第一種算法計(jì)算中間產(chǎn)物數(shù)量的嚴(yán)格界限,而第二種算法允許將計(jì)算分成塊。這些新算法有利于使用較小內(nèi)存存儲(chǔ)設(shè)備的客戶。

最新INT8 已支持添加到 cusparseGather、cusparseScatter 和 cusparseCsr2cscEx2幾種不同的函數(shù)模塊中。

最后需要說(shuō)明的是,最新版本中的CUDA也加入了延遲加載作為其中一部分。隨后的 CUDA 版本繼續(xù)增強(qiáng)和擴(kuò)展它。從應(yīng)用程序開(kāi)發(fā)的角度來(lái)看,選擇延遲加載不需要任何特定的東西?,F(xiàn)有的應(yīng)用程序可以按原樣使用延遲加載。延遲加載是一種延遲加載內(nèi)核和 CPU 端模塊直到應(yīng)用程序需要加載的技術(shù)。默認(rèn)是在第一次初始化庫(kù)時(shí)搶先加載所有模塊。這不僅可以顯著節(jié)省設(shè)備和主機(jī)內(nèi)存,還可以縮短算法的端到端執(zhí)行時(shí)間。

總結(jié)

本文從英偉達(dá)中的幾個(gè)核心軟件模塊GPU和CUDA開(kāi)發(fā)角度分析了其在整個(gè)軟件框架構(gòu)建,軟件算法調(diào)度及軟件函數(shù)構(gòu)建和應(yīng)用上進(jìn)行了詳細(xì)的分析。重點(diǎn)是可以很好的掌握整個(gè)Orin系列的軟件架構(gòu),與前序文章的硬件架構(gòu)相呼應(yīng)。當(dāng)然,從整個(gè)軟件開(kāi)發(fā)的完整流程上,本文還只是入門(mén)級(jí)的說(shuō)明,對(duì)于精細(xì)化的開(kāi)發(fā)還是遠(yuǎn)遠(yuǎn)不夠的。后續(xù)文章我們將從操作系統(tǒng)Drive OS/驅(qū)動(dòng)模塊Drive Work等角度進(jìn)行更為詳細(xì)的分析。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4169

    瀏覽量

    218350
  • 英偉達(dá)
    +關(guān)注

    關(guān)注

    22

    文章

    3778

    瀏覽量

    91157
  • 自動(dòng)駕駛
    +關(guān)注

    關(guān)注

    784

    文章

    13826

    瀏覽量

    166502

原文標(biāo)題:詳解英偉達(dá)芯片在自動(dòng)駕駛的軟件移植設(shè)計(jì)開(kāi)發(fā)

文章出處:【微信號(hào):阿寶1990,微信公眾號(hào):阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    英偉達(dá)CEO稱若特斯拉自動(dòng)駕駛芯片項(xiàng)目失敗,愿提供幫助

    據(jù)CNBC網(wǎng)站北京時(shí)間8月17日?qǐng)?bào)道,英偉達(dá)公司CEO黃仁勛(Jensen Huang)周四在回應(yīng)特斯拉公司最終進(jìn)軍汽車芯片市場(chǎng)可能構(gòu)成的威脅時(shí)表示,英偉
    的頭像 發(fā)表于 08-17 09:18 ?3698次閱讀

    英偉達(dá)何以成為車廠自動(dòng)駕駛開(kāi)發(fā)的首選

    英偉達(dá)在今年的秋季GTC大會(huì)上發(fā)布了下一代自動(dòng)駕駛芯片Thor,再次點(diǎn)燃了自動(dòng)駕駛算力比拼的導(dǎo)火索。我們已經(jīng)看到國(guó)內(nèi)汽車市場(chǎng)中,蔚來(lái)、智已、
    的頭像 發(fā)表于 09-26 08:47 ?2579次閱讀

    AI/自動(dòng)駕駛領(lǐng)域的巔峰會(huì)議—國(guó)際AI自動(dòng)駕駛高峰論壇

    Urs Müller 博士英偉達(dá)股份公司自動(dòng)駕駛首席工程師Ammon Shashua 教授Mobileye公司聯(lián)合創(chuàng)始人首席技術(shù)官兼董事長(zhǎng)Axel Schimidt 先生埃森哲公司EALA汽車
    發(fā)表于 09-13 13:59

    英偉達(dá)播種自動(dòng)駕駛業(yè)務(wù) 瞄準(zhǔn)未來(lái)市場(chǎng)

    前不久英偉達(dá)公布2018年第一季度財(cái)報(bào),從報(bào)告中看出汽車業(yè)務(wù)的營(yíng)收占比較低,英偉達(dá)負(fù)責(zé)人表示英偉達(dá)
    發(fā)表于 05-17 08:59 ?914次閱讀

    不懼特斯拉威脅,英偉達(dá)研發(fā)自動(dòng)駕駛汽車芯片

    據(jù)CNBC網(wǎng)站北京時(shí)間8月17日?qǐng)?bào)道,英偉達(dá)公司CEO黃仁勛(Jensen Huang)周四在回應(yīng)特斯拉公司最終進(jìn)軍汽車芯片市場(chǎng)可能構(gòu)成的威脅時(shí)表示,英偉
    的頭像 發(fā)表于 08-20 17:00 ?3081次閱讀

    英偉達(dá)DRIVE AGX Xavier開(kāi)發(fā)套件就是一個(gè)用于構(gòu)建自動(dòng)駕駛系統(tǒng)的平臺(tái)

    智佳科技、圖森未來(lái)、Auto X等自動(dòng)駕駛全棧方案公司都已經(jīng)采用英偉達(dá)NVIDIA DRIVE AGX芯片方案。
    發(fā)表于 01-13 10:27 ?7422次閱讀

    英偉達(dá)發(fā)布新一代的自動(dòng)駕駛芯片Orin

    英偉達(dá)發(fā)布了用于自動(dòng)駕駛和機(jī)器人的軟件定義平臺(tái)——NVIDIA DRIVE AGX Orin。
    的頭像 發(fā)表于 12-18 16:31 ?6220次閱讀

    英偉達(dá)開(kāi)源自動(dòng)駕駛算法,其芯片性能高7倍于Xavier

    一年一度,英偉達(dá)GTC China如期舉辦。今年的英偉達(dá)創(chuàng)始人黃仁勛,對(duì)自動(dòng)駕駛極為關(guān)注。不僅發(fā)布了用于
    的頭像 發(fā)表于 12-18 16:38 ?3406次閱讀

    安培GPU發(fā)布 英偉達(dá)自動(dòng)駕駛芯片算力升級(jí)

    同時(shí),英偉達(dá)還公布與幾家自動(dòng)駕駛公司和初創(chuàng)公司的合作成果。今年新上市的小鵬P7就采用英偉達(dá)自動(dòng)駕駛
    的頭像 發(fā)表于 06-05 09:11 ?3010次閱讀

    Einride將使用英偉達(dá)自動(dòng)駕駛計(jì)算平臺(tái)

    據(jù)外媒報(bào)道,自動(dòng)駕駛電動(dòng)卡車制造商Einride表示,其新一代創(chuàng)新型“Pod”卡車將使用英偉達(dá)Drive AGX Orin自動(dòng)駕駛計(jì)算平臺(tái),實(shí)現(xiàn)高速、無(wú)人
    的頭像 發(fā)表于 12-10 10:05 ?1873次閱讀

    英偉達(dá)最新推出的自動(dòng)駕駛芯片Atlan詳解

    英偉達(dá)在2019年12月推出Orin后沉寂一年半推出新一代自動(dòng)駕駛SoC,即Atlan,從命名來(lái)看,Nvidia 還在使用《海王》(Aquaman)系列中的名字。在2019年開(kāi)始,Nvidia宣布
    的頭像 發(fā)表于 04-19 14:13 ?1.1w次閱讀
    <b class='flag-5'>英偉</b><b class='flag-5'>達(dá)</b>最新推出的<b class='flag-5'>自動(dòng)駕駛</b><b class='flag-5'>芯片</b>Atlan<b class='flag-5'>詳解</b>

    自動(dòng)駕駛備受關(guān)注 小馬智行完成D輪融資 英偉達(dá)將量產(chǎn)自動(dòng)駕駛芯片DRIVE Orin

    自動(dòng)駕駛備受關(guān)注 小馬智行完成D輪融資 英偉達(dá)將量產(chǎn)自動(dòng)駕駛芯片DRIVE Orin 很多車企都在積極地布局
    的頭像 發(fā)表于 03-30 21:19 ?3277次閱讀

    自動(dòng)駕駛芯片現(xiàn)狀盤(pán)點(diǎn) 國(guó)產(chǎn)自動(dòng)駕駛芯片發(fā)展面臨的機(jī)遇和挑戰(zhàn)

    目前自動(dòng)駕駛與智能座艙芯片一體化趨勢(shì)明顯,自動(dòng)駕駛芯片具有高算力發(fā)展趨勢(shì)。市場(chǎng)容量未來(lái)5年將會(huì)高速增長(zhǎng)自動(dòng)駕駛
    發(fā)表于 02-21 11:37 ?1549次閱讀

    擴(kuò)充自動(dòng)駕駛中國(guó)團(tuán)隊(duì),英偉達(dá)開(kāi)放上百個(gè)職位

    據(jù)公告,本次英偉達(dá),招聘部門(mén)自動(dòng)駕駛軟件組、系統(tǒng)集成&測(cè)試組、地圖&仿真組、產(chǎn)品組,開(kāi)放崗位包括自動(dòng)駕駛數(shù)據(jù)采集系統(tǒng)工具
    的頭像 發(fā)表于 11-30 09:36 ?604次閱讀

    高通自動(dòng)駕駛軟件開(kāi)發(fā)革新力壓英偉達(dá)自動(dòng)駕駛芯片

    拋開(kāi)價(jià)格不談,英偉達(dá)自動(dòng)駕駛芯片毫無(wú)疑問(wèn)是最強(qiáng)的,設(shè)計(jì)范圍在2019年底確定的Orin至今仍是量產(chǎn)最強(qiáng)的自動(dòng)駕駛
    的頭像 發(fā)表于 02-20 13:50 ?1494次閱讀
    高通<b class='flag-5'>自動(dòng)駕駛</b>靠<b class='flag-5'>軟件開(kāi)發(fā)</b>革新力壓<b class='flag-5'>英偉</b><b class='flag-5'>達(dá)</b><b class='flag-5'>自動(dòng)駕駛</b><b class='flag-5'>芯片</b>