Launch utility
概述:
torch.distributed 提供了一个启动工具,即 torch.distributed.launch,用于在每个单节点上启动多个分布式进程。其同时支持 Python2 和 Python 3。
launch 可用于单节点的分布式训练,支持 CPU 和 GPU。对于 GPU 而言,若每个进程对应一个 GPU,则训练将取得最大性能。可通过指定参数(nproc_per_node),让 launch 在单节点上创建指定数目的进程(不可大于该节点对应的 GPU 数目)。
该工具以及多进程分布式训练,目前只有在 NCCL 上才能发挥最好的性能,NCCL 也是被推荐用于分布式 GPU 训练的。
参数:
training_script
位置参数,单 GPU 训练脚本的完整路径,该工具将并行启动该脚本。
–nnodes
指定用来分布式训练脚本的节点数。
–node_rank
多节点分布式训练时,指定当前节点的 rank。
–nproc_per_node
指定当前节点上,使用 GPU 训练的进程数。建议将该参数设置为当前节点的 GPU 数量,这样每个进程都能单独控制一个 GPU,效率最高。
–master_addr
master 节点(rank 为 0)的地址,应该为 ip 地址或者 nod