本文主要是介绍Pytorch多机多卡分布式训练,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
多机多卡分布式:
多机基本上和单机多卡差不多:
第一台机器(主设备):
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 主节点的端口号
这篇关于Pytorch多机多卡分布式训练的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!