日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何提高自動駕駛汽車感知模型的訓練效率和GPU利用率

NVIDIA英偉達企業(yè)解決方案 ? 來源:NVIDIA英偉達企業(yè)解決方案 ? 2024-04-29 09:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

由于采用了多攝像頭輸入和深度卷積骨干網(wǎng)絡,用于訓練自動駕駛感知模型的 GPU 內(nèi)存占用很大。當前減少內(nèi)存占用的方法往往會導致額外的計算開銷或工作負載的失衡。

本文介紹了 NVIDIA 和智能電動汽車開發(fā)商蔚來的聯(lián)合研究。具體來說,文中探討了張量并行卷積神經(jīng)網(wǎng)絡(CNN)訓練如何有助于減少 GPU 內(nèi)存占用,并展示了蔚來如何提高自動駕駛汽車感知模型的訓練效率和 GPU 利用率。

自動駕駛的感知模型訓練

自動駕駛感知任務采用多攝像頭數(shù)據(jù)作為輸入,卷積神經(jīng)網(wǎng)絡(CNN)作為骨干(backbone)來提取特征。由于 CNN 的前向激活值(activations)都是形狀為(N, C, H, W)的特征圖(feature maps)(其中 N、C、H、W 分別代表圖像數(shù)、通道數(shù)、高度和寬度)。這些激活值需要被保存下來用于反向傳播,因此骨干網(wǎng)絡的訓練通常會占據(jù)顯著的內(nèi)存大小。

例如,有 6 路相機以 RGB 格式輸入分辨率為 720p 的圖像,批大?。╞atchsize)設置為 1,那么骨干網(wǎng)絡的輸入形狀為(6, 3, 720, 1280)。對于如 RegNet 或 ConvNeXt 這樣的骨干網(wǎng)絡而言,激活值的內(nèi)存占用是遠大于模型權(quán)重和優(yōu)化器狀態(tài)的內(nèi)存占用的,并且可能會超出 GPU 的內(nèi)存大小限制。

蔚來汽車自動駕駛團隊在這一領域的研究表明,使用更深的模型和更高的圖像分辨率可以顯著提高感知精度,尤其是對尺寸小和距離遠的目標的識別;同時,蔚來 Aquila 超感系統(tǒng)搭載 11 個 800 萬像素高清攝像頭,每秒可產(chǎn)生 8GB 圖像數(shù)據(jù)。

GPU 內(nèi)存優(yōu)化需求

深度模型和高分辨率輸入對于 GPU 內(nèi)存優(yōu)化提出了更高的要求。當前解決激活值 GPU 內(nèi)存占用過大的技術(shù)有梯度檢查點(gradient checkpointing),即在前向傳播的過程中,只保留部分層的激活值。而對于其他層的激活值,則在反向傳播的時候重新計算。

這樣可以節(jié)省一定的 GPU 內(nèi)存,但會增加計算的開銷,拖慢模型訓練。此外,設置梯度檢查點通常需要開發(fā)者根據(jù)模型結(jié)構(gòu)來選擇和調(diào)試,這給模型訓練過程引入了額外的代價。

蔚來還使用了流水線并行技術(shù),將神經(jīng)網(wǎng)絡按照 GPU 內(nèi)存開銷進行平均分段,部署到多個 GPU 上進行訓練。此方法雖然將存儲需求平分到多個 GPU 上,但是因為計算不平衡,會導致明顯的 GPU 間負載不均衡現(xiàn)象,一些 GPU 的計算資源無法被充分利用。

基于 PyTorch DTensor 的張量并行 CNN 訓練

綜合考慮以上因素,NVIDIA 和蔚來合作設計并實現(xiàn)了張量并行(Tensor Parallel)卷積神經(jīng)網(wǎng)絡訓練方案,將輸入值和中間激活值切分到多個 GPU 上。而對于模型權(quán)重和優(yōu)化器狀態(tài),我們采用和數(shù)據(jù)并行訓練相同的策略,將其復制到各個 GPU 上。該方法能夠降低對單個 GPU 的內(nèi)存占用和帶寬壓力。

PyTorch 2.0 中引入的 DTensor 提供了一系列原語(primitives)來表達張量的分布如切片(sharding)和重復(replication),使用戶能夠方便地進行分布式計算而無需顯式調(diào)用通信算子,因為 DTensor 的底層實現(xiàn)已經(jīng)封裝了通信庫,如 NVIDIA 集合通信庫 (NCCL)

有了 DTensor 的抽象,用戶可以方便地搭建各種并行訓練策略,如張量并行(Tensor Parallel),分布式數(shù)據(jù)并行(Distributed Data Parallel)和完全切片數(shù)據(jù)并行(Fully Sharded Data Parallel)。

實現(xiàn)

以用于視覺任務的 CNN 模型 ConvNeXt-XL 為例,我們將展示 Tensor Parallel 卷積神經(jīng)網(wǎng)絡訓練的實現(xiàn)。DTensor 放置方式如下:

模型參數(shù):Replicate

重復放置在各個 GPU 上,模型包含 3.50 億個參數(shù),以 FP32 存儲時占據(jù) 1.4GB GPU 內(nèi)存。

模型輸入:Shard(3)

切分(N, C, H, W)的 W 維度,將輸入分片放到各個 GPU 上。例如,在 4 個 GPU 上對形狀為(7, 3, 512, 2048) 的輸入執(zhí)行 Shard(3) 會生成四個切片,形狀為 (7, 3, 512, 512)。

激活值:Shard(3)

切分(N, C, H, W)的 W 維度,將激活值分片放在各個 GPU 上

模型參數(shù)的梯度:Replicate

重復放置在各個 GPU 上。

優(yōu)化器狀態(tài):Replicate

重復放置在各個 GPU 上。

上述配置可以通過 DTensor 提供的 API 來實現(xiàn),且用戶只需指明模型參數(shù)和模型輸入的放置方式,其他張量的放置方式會自動生成。

而要達成張量并行的訓練,我們需要給卷積算子 aten.convolution 和 aten.convolution_backward 注冊傳播規(guī)則,這將根據(jù)輸入 DTensor 的放置方式來確定輸出 DTensor 的放置方式:

aten.convolution

Input 放置方式為 Shard(3),weight 和 bias 放置方式為 Replicate,output 放置方式為 Shard(3)

aten.convolution_backward

grad_output 放置方式為 Shard(3),weight和 bias 放置方式為 Replicate,grad_input 放置方式為 Shard(3),grad_weight 和 grad_bias 方式方式為 _Partial

放置方式為 _Partial 的 DTensor,在使用其數(shù)值時會自動執(zhí)行規(guī)約操作,默認規(guī)約算子為求和。

接下來,我們便要給出張量并行的卷積算子前向和反向的實現(xiàn)。由于將激活值切分到了多個 GPU 上,1 個 GPU 上的本地卷積可能需要相鄰 GPU 上激活值的邊緣數(shù)據(jù),這就需要 GPU 之間進行通信。在 ConvNeXt-XL 模型中,其降采樣層的卷積不存在該問題,而 Block 中的逐深度卷積則需要處理該問題。

如果無需交換數(shù)據(jù),用戶可以直接調(diào)用卷積的前向和反向算子,傳入本地張量即可。如果需要交換本地激活值張量邊緣數(shù)據(jù),則使用如圖 1 和圖 2 所示的卷積前向算法和反向算法,省略了圖中的 N 和 C 維度,并假設卷積核大小為 5x5,padding 為 2,stride 為 1。

3e402744-0575-11ef-a297-92fbcf53809c.png

圖 1 張量并行卷積前向算法示意圖

如圖 1 所示,當卷積核大小為 5x5,padding 為 2,stride 為 1 時,每個 GPU 上的本地 input 都需要取用相鄰 GPU 的寬度為 2 的輸入邊緣,并將收到的邊緣數(shù)據(jù)拼接到自身上。換句話說,需要 GPU 間的通信來確保張量并行卷積的正確性。這種數(shù)據(jù)交換,可以通過調(diào)用 PyTorch 封裝的 NCCL 發(fā)送接受通信算子來實現(xiàn)。

值得一提的是,在多個 GPU 上存在激活切片時,卷積算子的有些 padding 是不需要的。因此本地卷積前向傳播完成后,需要切除 output 中由不需要的 padding 引入的無效像素,如圖 1 中的藍色條所示。

圖 2 顯示了張量并行卷積的反向傳播。首先,在梯度輸出上應用 zero padding,這與前向傳播過程中的輸出切除操作相對應。對本地輸入同樣要進行數(shù)據(jù)交換、拼接和 padding 操作。

之后,通過調(diào)用每個 GPU 上的卷積反向算子,即可獲得權(quán)重梯度、偏置梯度和梯度輸入。

3e60a0aa-0575-11ef-a297-92fbcf53809c.png

圖 2 張量并行卷積反向傳播工作流程

權(quán)重梯度和偏置梯度的 DTensor 放置方式是 _Partial,因此使用時會自動對它們的值進行多 GPU 規(guī)約操作。梯度輸入的 DTensor 放置方式是 Shard(3)。

最后,本地梯度輸入的邊緣像素會被發(fā)送到鄰近 GPU 并在相應位置累積,如圖 2 中的橙色條所示。

除了卷積層之外,ConvNeXt-XL 還有一些層需要處理以支持張量并行訓練。例如我們需要為 DropPath 層使用的 aten.bernoulli 算子傳播規(guī)則。該算子應被置于隨機數(shù)生成追蹤器的分布式區(qū)域內(nèi),以保證各個 GPU 上的一致性。

所有代碼已經(jīng)并入了 PyTorch GitHub repo 的主分支,用戶使用時直接調(diào)用 DTensor 的上層 API 便可實現(xiàn)張量并行的卷積神經(jīng)網(wǎng)絡訓練。

使用張量并行訓練 ConvNeXt 的基準效果

我們在 NVIDIA DGX AI 平臺上進行了基準測試,研究 ConvNeXt-XL 訓練的速度和 GPU 內(nèi)存占用。梯度檢查點技術(shù)和 DTensor 是兼容的,并且結(jié)合兩項技術(shù),GPU 的內(nèi)存占用能夠更顯著地降低。

測試的基線是在 1 個 NVIDIA GPU 上使用 PyTorch 原生 Tensor,輸入大小為(7, 3, 512, 1024)時的結(jié)果:不使用梯度檢查點時 GPU 內(nèi)存占用為 43.28 GiB,一次訓練迭代時間為 723 ms;使用梯度檢查點時 GPU 內(nèi)存占用為 11.89 GiB,一次訓練迭代時間為 934 ms。

全部測試結(jié)果如圖 3 和圖 4 所示:全局輸入形狀為 (7,3,512,W),其中 W 從 1024 到 8192 不等。實線為未使用梯度檢查點時的結(jié)果,虛線為使用梯度檢查點時的結(jié)果。

3e775002-0575-11ef-a297-92fbcf53809c.png

圖 3 各種測試條件下的 GPU 內(nèi)存占用

3e887f9e-0575-11ef-a297-92fbcf53809c.png

圖 4 各種測試條件下一次訓練迭代耗時

如圖 3 所示,使用 DTensor 切分激活值可以有效降低 ConvNeXt-XL 訓練的 GPU 內(nèi)存占用,并且同時使用 DTensor 和梯度檢查點,ConvNeXt-XL 訓練的 GPU 內(nèi)存占用可以降到很低的水平。如圖 4 所示,張量并行方法有很好的弱擴展性;在問題規(guī)模足夠大時,也有不錯的強擴展性。下面是不使用梯度檢查點時的擴展性:

全局輸入(7, 3, 512, 2048)給 2 個 GPU 時,一次迭代時間為 937 ms

全局輸入(7, 3, 512, 4096)給 4 個 GPU 時,一次迭代時間為 952 ms

全局輸入(7, 3, 512, 4096)給 8 個 GPU 時,一次迭代時間為 647 ms

結(jié)論

蔚來自動駕駛開發(fā)平臺(NADP)是蔚來專門用于研發(fā)核心自動駕駛服務的平臺。該平臺可提供高性能計算和全鏈工具,用來處理每天成千上萬的日常推理和訓練任務,以確保主動安全和駕駛輔助功能的持續(xù)演進。使用 DTensor 實現(xiàn)的張量并行 CNN 訓練能夠有效提高 NADP 上的訓練效率。

該關鍵性的方案使得 NADP 能夠進行萬卡規(guī)模的并行計算,它提高了對 GPU 的利用率,降低了訓練模型的成本,支持了更靈活的模型結(jié)構(gòu)?;鶞蕼y試顯示,在蔚來自動駕駛場景下,該方法表現(xiàn)良好,有效解決了視覺大模型的訓練難題。

基于 PyTorch DTensor 的張量并行 CNN 訓練可顯著減少內(nèi)存占用并保持良好的可擴展性。我們預計該方法將充分利用多個 GPU 的算力和互連功能,使感知模型訓練更加普及。



審核編輯:劉清

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

    關注

    14

    文章

    5696

    瀏覽量

    110143
  • gpu
    gpu
    +關注

    關注

    28

    文章

    5283

    瀏覽量

    136107
  • 自動駕駛
    +關注

    關注

    795

    文章

    15013

    瀏覽量

    181725
  • pytorch
    +關注

    關注

    2

    文章

    813

    瀏覽量

    14930

原文標題:使用張量并行技術(shù)進行自動駕駛感知模型訓練

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    理想汽車發(fā)布下一代自動駕駛基礎模型MindVLA-o1

    2026年3月17日,理想汽車基座模型負責人詹錕出席NVIDIA GTC 2026,發(fā)表主題演講《MindVLA-o1:開啟全能范式——下一代統(tǒng)一視覺-語言-動作自動駕駛模型探索》,
    的頭像 發(fā)表于 03-18 11:51 ?1537次閱讀
    理想<b class='flag-5'>汽車</b>發(fā)布下一代<b class='flag-5'>自動駕駛</b>基礎<b class='flag-5'>模型</b>MindVLA-o1

    如何構(gòu)建適合自動駕駛的世界模型?

    [首發(fā)于智駕最前沿微信公眾號]世界模型經(jīng)歷了系統(tǒng)動力學階段(1960年~2000年)、認知科學階段(2001年~2017年)、深度學習階段(2018年至今),但將其應用到自動駕駛汽車上,還是近幾年才
    的頭像 發(fā)表于 02-18 08:14 ?1.1w次閱讀
    如何構(gòu)建適合<b class='flag-5'>自動駕駛</b>的世界<b class='flag-5'>模型</b>?

    自動駕駛汽車如何完成超車?

    經(jīng)過一套完整的感知、理解、決策、規(guī)劃和控制的流程,每一步都要考慮安全和規(guī)范,需要不斷感知周圍環(huán)境,判斷什么時候超車、怎么超車、是否安全等,然后才可以按照計劃執(zhí)行操作。 自動駕駛汽車在變
    的頭像 發(fā)表于 02-16 17:37 ?1.7w次閱讀
    <b class='flag-5'>自動駕駛</b><b class='flag-5'>汽車</b>如何完成超車?

    自動駕駛汽車如何實現(xiàn)自動駕駛

    人類駕駛員而言是非常直觀且有效的指令,但對于自動駕駛汽車來說,則意味著需要一套極其復雜的感知、理解與決策鏈路。 自動駕駛如何看清文字?
    的頭像 發(fā)表于 02-10 08:50 ?829次閱讀
    <b class='flag-5'>自動駕駛</b><b class='flag-5'>汽車</b>如何實現(xiàn)<b class='flag-5'>自動駕駛</b>

    GPU 利用率<30%?這款開源智算云平臺讓算力不浪費 1%

    作為 AI 開發(fā)者,你是否早已受夠這些困境:花數(shù)百萬采購的 GPU 集群,利用率常年低于 30%,算力閑置如同燒錢;跨 CPU/GPU/NPU 異構(gòu)資源調(diào)度難如登天,模型
    的頭像 發(fā)表于 01-26 14:20 ?299次閱讀

    自動駕駛中常提的模仿學習是什么?

    當談及自動駕駛模型學習時,經(jīng)常會提到模仿學習的概念。所謂模仿學習,就是模型先看別人怎么做,然后學著去做。自動駕駛中的模仿學習,就是把人類司機在各種路況下的行為做成范例,記錄下看到了什么
    的頭像 發(fā)表于 01-16 16:41 ?2183次閱讀

    黃仁勛:未來十年很多汽車自動駕駛 英偉達發(fā)布Alpamayo汽車模型平臺

    最看好的AI落地場景就是自動駕駛。在演講中黃仁勛提到,未來十年,世界上很大一部分汽車將是自動駕駛或高度自動駕駛的。你期待嗎? 英偉達發(fā)布Alpamayo
    的頭像 發(fā)表于 01-06 11:45 ?1478次閱讀

    自動駕駛模型訓練數(shù)據(jù)有什么具體要求?

    [首發(fā)于智駕最前沿微信公眾號]想訓練出一個可以落地的自動駕駛模型,不是簡單地給其提供幾張圖片,幾條規(guī)則就可以的,而是需要非常多的多樣的、真實的駕駛數(shù)據(jù),從而可以讓大
    的頭像 發(fā)表于 12-26 09:32 ?389次閱讀
    <b class='flag-5'>自動駕駛</b>大<b class='flag-5'>模型</b>的<b class='flag-5'>訓練</b>數(shù)據(jù)有什么具體要求?

    世界模型是讓自動駕駛汽車理解世界還是預測未來?

    ? [首發(fā)于智駕最前沿微信公眾號]世界模型自動駕駛技術(shù)中已有廣泛應用。但當談及它對自動駕駛的作用時,難免會出現(xiàn)分歧。它到底是讓自動駕駛汽車
    的頭像 發(fā)表于 12-16 09:27 ?1043次閱讀
    世界<b class='flag-5'>模型</b>是讓<b class='flag-5'>自動駕駛</b><b class='flag-5'>汽車</b>理解世界還是預測未來?

    自動駕駛汽車如何確定自己的位置和所在車道?

    比人類更多的“感官”和更強的計算能力;復雜則在于,這項工作必須做到精準(米級甚至分米級)、穩(wěn)定、連續(xù),并且要在各種極端環(huán)境下都要可靠。那自動駕駛汽車是如何確定自己的位置和所在車道的? ? 車輛如何感知世界?
    的頭像 發(fā)表于 11-18 09:03 ?1076次閱讀
    <b class='flag-5'>自動駕駛</b><b class='flag-5'>汽車</b>如何確定自己的位置和所在車道?

    自動駕駛感知不一致是怎么發(fā)生的?

    [首發(fā)于智駕最前沿微信公眾號]為了讓自動駕駛汽車能夠安全行駛,很多技術(shù)方案中會將多個感知硬件加裝到車輛上,以確保自動駕駛汽車
    的頭像 發(fā)表于 09-17 12:45 ?972次閱讀
    <b class='flag-5'>自動駕駛</b><b class='flag-5'>感知</b>不一致是怎么發(fā)生的?

    如何確保自動駕駛汽車感知的準確性?

    [首發(fā)于智駕最前沿微信公眾號]自動駕駛汽車想要自動駕駛,首先要做的就是能對周邊環(huán)境實現(xiàn)精準感知,也就是能“看”清道路,那自動駕駛
    的頭像 發(fā)表于 08-23 15:06 ?1851次閱讀
    如何確保<b class='flag-5'>自動駕駛</b><b class='flag-5'>汽車</b><b class='flag-5'>感知</b>的準確性?

    太陽光模擬器 | 在汽車自動駕駛開發(fā)中的應用

    汽車產(chǎn)業(yè)向電動化、智能化轉(zhuǎn)型的浪潮中,自動駕駛技術(shù)的研發(fā)面臨著復雜環(huán)境感知的挑戰(zhàn)。光照條件作為影響傳感器性能的關鍵因素,直接關系到自動駕駛系統(tǒng)的安全性和可靠性。紫創(chuàng)測控Luminbo
    的頭像 發(fā)表于 07-24 11:26 ?849次閱讀
    太陽光模擬器 | 在<b class='flag-5'>汽車</b><b class='flag-5'>自動駕駛</b>開發(fā)中的應用

    海光DCU率先展開文心系列模型的深度技術(shù)合作 FLOPs利用率(MFU)達47%

    模型的深度技術(shù)適配,預訓練模型FLOPs利用率(MFU)達到47%,在多個文本與多模態(tài)基準測試中取得SOTA水平。此次合作標志著國產(chǎn)算力基礎設施與大
    的頭像 發(fā)表于 07-01 14:35 ?2591次閱讀

    新能源車軟件單元測試深度解析:自動駕駛系統(tǒng)視角

    ? AWS RoboMaker等云平臺支持萬級測試用例的并行執(zhí)行。某自動駕駛初創(chuàng)企業(yè)利用云端GPU集群,將AI模型單元測試時間從3周縮短至6小時。 ?標準體系演進? UL 460
    發(fā)表于 05-12 15:59
    虎林市| 海晏县| 林口县| 铁岭市| 宾阳县| 平阳县| 吴忠市| 绍兴县| 上杭县| 民乐县| 泊头市| 浦东新区| 潞城市| 博罗县| 巨野县| 明光市| 息烽县| 高要市| 汝州市| 姜堰市| 邮箱| 景泰县| 嘉鱼县| 旬邑县| 大丰市| 彩票| 呼和浩特市| 阿拉善左旗| 澄城县| 新乡市| 南开区| 噶尔县| 屏南县| 宁河县| 龙江县| 元谋县| 鹤峰县| 全椒县| 勃利县| 宣城市| 宣威市|