oneflow.distributed¶
运行以下命令来了解更多用法。
python3 -m oneflow.distributed.launch -h
usage: launch.py [-h] [--nnodes NNODES] [--node_rank NODE_RANK]
[--nproc_per_node NPROC_PER_NODE] [--master_addr MASTER_ADDR]
[--master_port MASTER_PORT] [-m] [--no_python]
[--redirect_stdout_and_stderr] [--logdir LOGDIR]
training_script ...
OneFlow 分布式训练启动协助功能,将启动多个分布式进程。
位置参数:
training_script 和进程同时启动的单 GPU 训练程序/脚本的完整路径,跟随着训练脚本的所有参数。
training_script_args
optional arguments:
-h, --help 展现此帮助页面并退出。
--nnodes NNODES 用于分布式训练的节点数量。
--node_rank NODE_RANK
multi-mode 分布式训练中节点的 rank 。
--nproc_per_node NPROC_PER_NODE
每个节点上启动的进程数量,对于 GPU 训练,推荐将此参数设置为 GPU 数量,
这样每个进程都能绑定一个单独的 GPU 。
--master_addr MASTER_ADDR
主节点 (rank 0) 的地址,应为主节点的 IP 地址和主机地址其中之一。
对于单节点多进程训练, --master_addr 可直接设为 127.0.0.1。
--master_port MASTER_PORT
主节点 (rank 0) 的空余 port ,将被用于分布式训练中各节点的联系。
-m, --module
使每个进程将脚本解释为 python 模组,和使用 'python -m' 运行脚本有相同效果。
--no_python
不对训练脚本前置 "python" ,而是直接运行。在脚本不是 Python 脚本时有用。
--redirect_stdout_and_stderr
对文件 'stdout' 和 'stderr' 输出 stdout 和 stderr 。只有在 logdir 被设定后可用。
--logdir LOGDIR
子进程输出 log 文件的相对位置。如果需要,将根据相对位置创建新路径。
需注意,连续使用相同的路径运行多次程序会覆盖之前的 log ,所以记得在需要时保存 log 。