多机多卡分布式:

多机基本上和单机多卡差不多:

第一台机器(主设备):

torchrun --master_port 6666 --nproc_per_node=8 --nnodes=${nnodes} --node_rank=0  --master_addr=${master_addr}  train_with_multi_machine_and_multi_gpu.py

第二台机器(从设备): 

torchrun --master_port 6666 --nproc_per_node=6 --nnodes=${nnodes} --node_rank=1  --master_addr=${master_addr}  train_with_multi_machine_and_multi_gpu.py

是不是非常简单!! 唯一的区别就是--node_rank的区别,其他一模一样

简单解释一下里面的参数:

--nproc_per_node 指的是每个阶段的进程数,这里第一台8个GPU,第二台6个GPU

--nnodes 节点数,这里是两机,所以是2

--node_rank 节点rank,对于第一台机器是0,第二台机器是1

--master_addr 主节点的ip,这里我填的第一台机器的ip

--master_port 主节点的端口号

03-28 09:42