多卡的訓練
您提供的命令:
python -m torch.distributed.launch --nproc_per_node=2 --nnodes=1 train.py
解釋:
--nproc_per_node=2:這意味著每個節(jié)點將啟動2個進程。--nnodes=1:這意味著您總共使用1個節(jié)點(即,這不是一個多節(jié)點設(shè)置)。
那么這是使用 2 個 GPU 還是 1 個?
→ 這使用 2 個 GPU(假設(shè)節(jié)點上有 2 個 GPU 可用)。
每個進程通常映射到一個 GPU,因此,使用 nproc_per_node=2,您需要機器上至少有2 個 GPU。默認情況下,每個進程被將分配到一個單獨的 GPU。
總結(jié):
| 選項 | 含義 |
|---|---|
--nproc_per_node=2 |
每個節(jié)點啟動 2 個進程(→ 2 個 GPU) |
--nnodes=1 |
僅使用 1 臺物理機器(節(jié)點) |
如果您的機器只有 1 個 GPU,除非您顯式地處理設(shè)備分配,否則此命令將引發(fā)錯誤。
如果您希望獲取一個如何使 train.py 支持此設(shè)置的最小示例(例如,使用 torch.distributed.init_process_group),請告訴我。

浙公網(wǎng)安備 33010602011771號