国产美女主播视频一区_国产精品蜜臀在线观看_亚洲成人动漫一区_亚洲视屏在线播放

首頁 > 收藏

多卡訓練 當前短訊

來源:博客園 時間:2023-06-24 00:09:45

1、前言

近期做到的一些工作涉及到多卡訓練,不得不感慨深度學習真的是一個燒錢的活,順便記錄一下,主要記錄用法,不涉及實現原理。

2、單機多卡并行

官方DDP文檔:

GETTING STARTED WITH DISTRIBUTED DATA PARALLEL


(資料圖)

Github 倉庫:

Github 中文文檔

GETTING STARTED WITH DISTRIBUTED DATA PARALLEL

DataParallel

使用 nn.Dataarallel() 將模型變換一下,一行搞定

model = nn.DataParallel(model)

根據

為方便說明,我們假設模型輸入為(32, input_dim),這里的 32 表示batch_size,模型輸出為(32, output_dim),使用 4 個GPU訓練。nn.DataParallel起到的作用是將這 32 個樣本拆成 4 份,發送給 4 個GPU 分別做 forward,然后生成 4 個大小為(8, output_dim)的輸出,然后再將這 4 個輸出都收集到cuda:0上并合并成(32, output_dim)。可以看出,nn.DataParallel沒有改變模型的輸入輸出,因此其他部分的代碼不需要做任何更改,非常方便。但弊端是,后續的loss計算只會在cuda:0上進行,沒法并行,因此會導致負載不均衡的問題。

針對負載不均衡問題,一個緩解的方法是將 loss 放入模型內部計算,即在 forward 的時候計算 loss。

DistributedDatarallel

分布式數據并行方法,通過多進程實現。

1、從一開始就會啟動多個進程(進程數等于GPU數),每個進程獨享一個GPU,每個進程都會獨立地執行代碼。這意味著每個進程都獨立地初始化模型、訓練,當然,在每次迭代過程中會通過進程間通信共享梯度,整合梯度,然后獨立地更新參數。2、每個進程都會初始化一份訓練數據集,通過DistributedSampler函數實現,即同樣的模型喂進去不同的數據做訓練,也就是所謂的數據并行。3、進程通過local_rank變量來標識自己,local_rank為0的為master,其他是slave。這個變量是torch.distributed包幫我們創建的,使用方法如下:

import argparse  parser = argparse.ArgumentParser()parser.add_argument("--local_rank", type=int, default=-1)args = parser.parse_args()

運行代碼

python -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 train.py

其中,nnodes 表示節點數量,單機,即為1,nproc_per_node 為每個節點的進程數量,與 GPU 數量一致。

模型保存與加載TODO

3、遇到的問題

1、DistributedDataarallel 方法,有時候會出現進程卡死的問題,現象上即為顯卡的利用率卡在 100%,未啟動進程組,根據tjds排查是IO 虛擬化(也稱為 VT-d 或 IOMMU)啟用了ACS導致,具體原因參考 故障排除——NCCL2.16.2 文檔。

方法一:排查原因是BIOS里IO虛擬化(VT-d)默認啟動了PCI訪問控制服務(ACS)導致GPU間無法直接通過P2P方式通信,需在BIOS關閉此功能,具體操作參考 tjds

1、 查看ACS是否開啟執行 lspci -vvv | grep -I acsctl 如果有顯示SrcValid+說明已啟用ACS功能2、 添加iommu=pt參數到grub(此步驟應該可以跳過)編輯/etc/default/grub文件添加iommu=pt,再執行update-grub更新grub文件3、 關閉BIOS里ACS功能重啟操作系統開機時按 del 進入 BIOS 關閉 ACS 功能,不關 VT-d 只關閉 ACS 功能,具體路徑:Path: Advanced -> Chipset Configuration -> North Bridge -> IIO Configuration -> Intel VT for Directed I/O (VT-d) -> ACS Control -> Enable / Disable.4、 檢查ACS是否關閉執行lspci -vvv | grep -I acsctl 如果全顯示SrcValid-說明已關閉ACS功能

方法二:仍然使用 ‘nccl‘ 后端,禁用 GPU 的 P2P 通信。

torch.distributed.init_process_group(backend="ncll")
NCCL_P2P_DISABLE=1 CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 train.py 

嫌麻煩可以寫入 bashrc 環境變量。

方法三:更換后端為 ‘gloo’ , shell命令運行程序,縱享絲滑。

torch.distributed.init_process_group(backend="gloo")
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 train.py 

缺點就是 gloo 的通信在我用的時候要比 nccl 慢很多。

2、如果訓練過程中使用了 Sampler 進行數據分發, dataloader 的 shuffle 不能設置為 True。

3、dataloader 設置 batch_size 時,注意盡量保證每次循環每張卡至少可以分到一個 sample,不然有時候會因某張卡等待輸入卡死。

4、我在訓練時,dataloader的 num_works 通過 CPU 幫助 GPU 加載數據能夠提升 GPU 利用率,倒是沒遇到報錯。

5、dataloader 的 pin_memory (鎖頁內存) 按道理是可以鎖住一部分內存,減少 CPU 內存拷貝的,但是我用的時候會極大降低 GPU 利用率,此處存疑。

待更新ing

相關稿件

多卡訓練 當前短訊

OpenAI放大!將推出史上超強「模型商店」,打通所有ChatGPT應用|天天熱資訊

每日簡訊:DeepMind 聯合創始人提出新的圖靈測試:讓 AI 將 10 萬美元變成 100 萬美元

世界觀熱點:“引爆”夜市,新余這場“三零一戴”活動超燃…

江西省崇義縣發布雷電黃色預警 速訊

曹沖稱象課文原文_曹沖稱象原文-今日播報

天天微資訊!如何評價龍珠里面的亞奇洛貝

嘉興海寧7.18億掛牌1宗宅地 起始樓面1.17萬元/平米創歷史新高 每日簡訊

環球今熱點:恭喜發財廣場舞視頻(恭喜發財廣場舞)

2023年中考今天拉開序幕|當前關注

中國導演徐磊:“我不擔心韓國觀眾看不懂中國電影”

【世界速看料】不公布GMV的618,誰是大贏家?

當前要聞:招生計劃隨手查!2023年黑龍江省全國普通高等學校招生計劃電子版發布!

全球實時:大學生第一支香水推薦!平價香水推薦!

世界報道:2023年南寧龍舟公開賽在南寧舉行

2023端午檔新片總票房破4億

環球熱點評!6月21日滌棉紗為17820.00

第三屆全球饒商大會舉行 現場簽約項目總額超300億元 環球新資訊

閃耀暖暖春別空山套裝獲取方法攻略 今日視點

2023年A股線路板概念股全梳理(6月23日)

AIGC相關上市公司龍頭有哪些?(2023/6/23)

每日訊息!山西省萬榮縣發布雷暴大風藍色預警

名利圈的潛規則,趙子琪都吃過虧,秦嵐還在原地打轉? 全球聚看點

瑞浦蘭鈞 x TüV萊茵 | 聯合發聲,共建綠色能源新未來|當前短訊

即時:光伏儲能概念股2023年股價查詢(6月23日)

減脂時,是不是不能吃豬肉?-今日要聞

怎么做番茄牛肉好吃,番茄牛肉最正宗的做法?|即時焦點

3元早餐、5元咖啡、10元吃面,血拼價格戰,今年餐飲怎么了?

全流程“平臺流轉、線上辦理”,揚州“智慧破產平臺”啟動建設-世界觀焦點

金水區大石橋街道同樂社區與轄區居民“粽享歡樂”


主站蜘蛛池模板: 色综合久久久久无码专区| 日韩中文字幕三区| 久久99久久久久久久噜噜| www.日韩系列| 国产美女扒开尿口久久久| 久久久久久久av| 欧美亚洲国产免费| 真实国产乱子伦对白视频| 国产日韩av高清| 日韩一区免费观看| 中文精品视频一区二区在线观看| 国产精品久久久久77777| 91超碰中文字幕久久精品| 国产精品久久久久久久久免费看 | 久章草在线视频| 欧美日韩一区在线播放| 欧日韩免费视频| 欧美视频在线第一页| 日本免费不卡一区二区| 奇米影视亚洲狠狠色| 日韩中文视频免费在线观看| 亚洲av综合色区| 日本精品一区二区三区四区 | 日韩久久久久久久| 日韩在线视频二区| 日本视频一区二区不卡| 欧美亚洲国产另类| 久久精品国产视频| 国产精品亚洲激情| 国产精品久久国产三级国电话系列| 国产精品一区二区不卡视频| 国产精品日韩一区二区免费视频| 国产日本欧美在线| 国产二区视频在线| 久久久久免费精品国产| 国产免费亚洲高清| 国产精品二区在线| 午夜久久资源| 蜜桃视频成人在线观看| 国产日韩欧美综合| 高清视频一区二区三区|