Files
sbv2-v2/run_MnodesAndMgpus.sh
Lvjinhong 31de84eb3b 更新并完善分布式训练功能 (#186)
* 修复多机训练问题

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* 更新并完善分布式训练功能

近期融合V2版本代码时发现之前修改的多机功能并不正确,仍会报错,只不过单机多卡情况下local_rank即相当于rank,感知不出
1. 修复train_ms.py中DDP初始化及.cuda绑定到local_rank上
2. 在default_config.yml配置文件中添加env变量 LOCAL_RANK,否则默认情况下会key error
3. 添加run_MnodesAndMgpus.sh,更新分布式相关说明

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-16 13:46:15 +08:00

32 lines
1.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#多机多卡训练
#--nnodes=1:3 表示 使用一到三台机器 弹性分配资源
#--nnodes=<最小节点数>:<最大节点数>
#--nproc_per_node=每台机器上可用的GPU数
#--rdzv_endpoint=主节点最先启动的ip:端口号
#其他不需要变
#注意: 此版本的分布式训练是基于数据并行的多机多卡相当于开更大的batchsize此时epoch迭代速度会增加,
#但由于 该版本的代码中 保存模型是按照global step来计算的所以会出现的效果就是 保存模型的时间不会有明显加速,
#但每次保存模型时epoch都比之前迭代了更多次,也就是 “更少的步数,实现更好的效果”
#*************************
# torchrun \
# --nnodes=1:3\
# --nproc_per_node=2\
# --rdzv_id=1\
# --rdzv_backend=c10d\
# --rdzv_endpoint="inspur1:8880"\
# train_ms.py
#****************************
#多卡训练
#nproc_per_node = 机器上可用的GPU数
#*************************
torchrun \
--nnodes=1\
--nproc_per_node=2\
train_ms.py
#*************************