1 在Pycharm中调试trochrun启动的分布式模型训练程序

最近在跑cutie模型训练时,一般都要在命令行中使用以下命令启动训练

OMP_NUM_THREADS=4 torchrun --master_port 25357 --nproc_per_node=4 cutie/train.py exp_id=[some unique id] model=[small/base] data=[base/with-mose/mega]

这种方式只能拉起训练程序,而不能调试程序,一旦程序出现问题只能通过log日志的方法排查,非常的不方便。所以就研究了以下调试torchrun启动的分布式训练的方法,下面详细说明。

1.1 调试方法

假如你目前的conda虚拟环境名为cutie,那么我们就找到该环境下的:envs/cutie/Lib/site-packages/torch/distributed/run.py 文件,然后将其拖到pycharm中打开,并配置run configurations。

Pycharm – 调试torchrun启动的分布式模型训练程序-StubbornHuang Blog

参数就填入torchrun之后的参数,比如上述命令为

OMP_NUM_THREADS=4 torchrun --master_port 25357 --nproc_per_node=4 cutie/train.py exp_id=[some unique id] model=[small/base] data=[base/with-mose/mega]

则参数为

--master_port 25357 --nproc_per_node=4 cutie/train.py exp_id=[some unique id] model=[small/base] data=[base/with-mose/mega]

然后将工作目录设置为该项目的工作目录,这里要注意。

然后在Environment variables中填入所需的环境变量,比如:OMP_NUM_THREADS=4;CUDA_VISIBLE_DEVICES=0 等等。

然后将上述设置保存,直接点击debug即可调试。