使用说明
发起 PyTorch 分布式训练
用 PyTorch 框架提交分布式训练:master 与 worker 的配法,以及控制台启动示例。
创建任务时 训练框架 选 PyTorch。通用字段见 创建任务配置说明。
角色与节点
master 是主节点,worker 是其余训练节点。适合常用的数据并行训练。
| 角色 | 节点数 | 资源 |
|---|---|---|
| master | 固定 1 | 仅 GPU |
| worker | 可以为 0 | 仅 GPU。卡型与卡数必须和 master 一致 |
单机多卡:worker 填 0。多机:1 个 master 加若干 worker,每台卡数相同。
切换框架后启动命令不会自动变。打开 查看示例,确认后点 填入该示例。
平台写入的环境变量
不要在 环境变量 里覆盖下面这些名称,也不要改平台为 RDMA 写入的 NCCL_IB_* 一类变量。与角色无关的通用变量见 通用环境变量列表。
| 变量 | 在示例里的用法 |
|---|---|
| GJ_TRAINING_MASTER_GPU_LIMIT | --nproc_per_node,master 角色的 GPU 卡数 |
| WORLD_SIZE | --nnodes,节点数 |
| RANK | --node_rank |
| MASTER_ADDR | 主节点地址 |
| MASTER_PORT | 主节点端口 |
启动命令
使用容器内绝对路径。运行命令为 bash。运行参数与控制台 查看示例 中的 PyTorch 示例一致:
-lc
python3 -m torch.distributed.launch --nproc_per_node=${GJ_TRAINING_MASTER_GPU_LIMIT} --nnodes=${WORLD_SIZE} --node_rank=${RANK} --master_addr=${MASTER_ADDR} --master_port=${MASTER_PORT} <代码文件的绝对路径>
把 <代码文件的绝对路径> 换成容器内的入口文件绝对路径。镜像里没有 bash 时,改掉运行命令。