多GPU训练的命令

参考网址:Click here

目录

1. 指定使用GPU:0运行脚本

2. 指定使用多张显卡运行脚本

3. 指定所有显卡一起运行脚本

4. 新版的多GPU运行指令


1. 指定使用GPU:0运行脚本

方式1:

CUDA_VISIBLE_DEVICES=0 python ***.py

方式2:在python脚本文件中添加如下内容进行指定

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

⚠️:如果在脚本文件中已经写明了第二种方式,则不支持第一种方式的指定

2. 指定使用多张显卡运行脚本

e.g., 在GPU的id为0和1的两张显卡上运行***.py程序

CUDA_VISIBLE_DEVICES=0,1 python ***.py

3. 指定所有显卡一起运行脚本

python -m torch.distributed.launch --nproc_per_node=NUM_GPUS_YOU_HAVE --use_env train.py

如果提示错误:RuntimeError: The server socket has failed to listen on any local network address. The server socket has failed to bind to [::]:29500 (errno: 98 - Address already in use). The server socket has failed to bind to ?UNKNOWN? (errno: 98 - Address already in use).
则使用下面的命令执行:(加上master_port)

python -m torch.distributed.launch --nproc_per_node=NUM_GPUS_YOU_HAVE --master_port='29501' --use_env train.py

4. 新版的多GPU运行指令

1). 若要使用多GPU训练,使用torchrun --nproc_per_node=8 train.py指令,nproc_per_node参数为使用GPU数量

torchrun --nproc_per_node=8 train.py

2). 如果想指定使用哪些GPU设备可在指令前加上CUDA_VISIBLE_DEVICES=0,3(例如我只要使用设备中的第1块和第4块GPU设备)

CUDA_VISIBLE_DEVICES=0,3 torchrun --nproc_per_node=2 train.py

你可能感兴趣的:(Linux,人工智能,python)