torchrun如何在Pycharm远程调试

起因是因为在跑SAT这个项目的时候提到了torchrun,但是因为本人日常习惯在Pycharm debug,并且是远程连接服务器,搜遍了全网没有找到如何在torchrun这种分布式训练下debug··· 又因为我尝试了网上大部分torch.distributed.launch 如何调试的帖子,都没有用。所以浅浅记录一下

首先,你需要连接服务器,这个就不赘述了。

我需要debug的sh命令是这样的:

torchrun \
--nproc_per_node=1 \
--master_port 1234 \
inference.py \
--rcd_dir 'demo/inference_demo/results' \
--datasets_jsonl 'demo/inference_demo/demo.jsonl' \
--vision_backbone 'UNET-L' \
--checkpoint 'path to SAT-Pro checkpoint' \    
--text_encoder 'ours' \
--text_encoder_checkpoint 'path to Text encoder checkpoint' \
--max_queries 256 \
--batchsize_3d 2

这段的意思是说需要使用torchrun多GPU的方式启动运行inference.py,torchrun和inference.py后面紧接着是分别是这两个需要指定的参数

如何运行torchrun:

1. 找到torch.distributed下面的run.py文件,记住是在本地的位置。通常情况下我的办法是在import torch那里ctrl+点击torch就能够知道torch的init.py文件的位置

### 调试 `torchrun` 启动的程序 在 VSCode 中调试由 `torchrun` 命令启动的 PyTorch 多 GPU 并行程序可以通过配置 launch.json 文件实现。以下是具体方法: #### 配置 Launch.json 为了支持多进程调试,可以利用 VSCode 的复合调试功能来分别附加到每个子进程中。 1. **创建 `.vscode/launch.json` 文件** 如果尚未存在该文件,则需要手动创建它。以下是一个典型的配置示例: ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Attach to Process", "type": "python", "request": "attach", "port": 5678, "host": "localhost" } ], "compounds": [ { "name": "Debug TorchRun (Multi-GPU)", "configurations": ["Python: Attach to Process"] } ] } ``` 上述配置定义了一个用于连接至远程调试端口的基础模板[^1]。 2. **修改代码以启用远程调试模式** 在 Python 程序入口处加入如下代码片段,以便允许通过指定端口号进行远程调试附着: ```python import ptvsd print("Waiting for debugger attach on port 5678...") ptvsd.enable_attach(address=('localhost', 5678)) ptvsd.wait_for_attach() ``` 此部分需放置于主函数之前执行的位置,从而确保当运行时会暂停等待开发者完成附件操作后再继续往下走逻辑流程。 3. **调整命令行参数** 当调用 `torchrun` 执行目标脚本的时候,记得加上额外环境变量设置或者直接嵌入断点监听器初始化语句作为模块导入的一部分。例如: ```bash TORCH_DISTRIBUTED_DEBUG=INFO python -m ptvsd --host localhost --port 5678 your_script.py ... ``` 或者更常见的方式是在实际训练脚本里集成这些机制而无需每次都重复输入冗长指令串。 4. **启动调试会话** 完成以上准备工作之后,在终端里面先正常发起分布式作业;与此同时切换回 IDE 内部界面激活预先定制好的组合方案即可同步跟踪多个 rank 下各自独立线程内部状态变化情况了! --- #### 注意事项 - 确认所有节点都能够访问共享存储区域存放检查点数据以防意外中断恢复困难。 - 不同操作系统可能对于防火墙策略有所差异,请酌情开放相应范围内的网络通信权限以免影响正常使用体验效果欠佳等问题发生几率增大许多倍数不等程度上造成困扰现象加剧恶化趋势明显增强等诸多不良后果产生出来呢?当然啦~这只是开玩笑而已啦!😊
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值