【VSCode调试技巧】Pytorch分布式训练调试

目录

使用 VSCode 调试单机多卡分布式训练脚本的详细步骤:

1. 找到控制分布式训练的启动脚本

2. 配置 VSCode 的 launch.json 文件

3. 选择启动配置并开始 Debug

总结:


使用 VSCode 调试单机多卡分布式训练脚本的详细步骤:

1. 找到控制分布式训练的启动脚本
  • 分布式训练的启动脚本位于你的虚拟环境目录中,具体路径为:
    /lib/python3.9/site-packages/torch/distributed/launch.py
    
  • 这个 launch.py 文件是 PyTorch 用于控制分布式训练的脚本。你需要通过这个脚本启动多卡训练,因此在调试过程中,它是关键所在。
2. 配置 VSCode 的 launch.json 文件
  • 进入你的项目目录,在 .vscode 文件夹中找到或创建 launch.json 文件,这个文件用于配置调试的启动参数。

  • 关键点是正确配置 args 参数,包括分布式训练所需的参数和训练脚本本身所需的参数。参数的顺序必须与命令行执行的顺序一致。

  • 一个示例的 launch.json 配置如下:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Debug Distributed Training",
          "type": "python",
          "request": "launch",
          "program": "${workspaceFolder}/lib/python3.9/site-packages/torch/distributed/launch.py",
          "console": "integratedTerminal",
          "args": [
            "--nproc_per_node=4",  // 分布式训练参数,指定每个节点的 GPU 数量
            "--use_env",           // 指定使用环境变量传递配置
            "path/to/your/train_script.py",  // 你的训练脚本路径
            "--batch_size=32",     // 训练脚本的参数,如 batch size
            "--lr=0.001",          // 训练脚本的参数,如学习率
            // 其他训练脚本所需的参数
          ],
          "justMyCode": false    // 为了调试库代码,可以将这个设置为 false
        }
      ]
    }
    
  • 注意:

    • program 是指向分布式训练启动脚本 launch.py 的路径。
    • args 是调试过程中需要传递的参数,参数顺序应按照命令行执行的顺序。首先是分布式训练的参数(如 --nproc_per_node--use_env),接下来是训练脚本的路径及其所需的参数(如 --batch_size 等)。
    • 你可以参考命令行的执行顺序来确定 args 的顺序,以确保和实际的运行方式保持一致。
3. 选择启动配置并开始 Debug
  • 在 VSCode 中,点击左侧的 运行和调试 面板,选择你刚刚创建的 launch.json 配置项(如 "Debug Distributed Training"),然后点击运行按钮。

  • 此时,VSCode 会自动启动多 GPU 训练并进入调试模式。

  • 在调试时,你可以设置断点、单步执行,检查变量和日志输出等功能,帮助你排查分布式训练过程中的问题。


总结:

  1. 找到 PyTorch 的分布式训练启动脚本,路径通常在虚拟环境的 /lib/python3.9/site-packages/torch/distributed/launch.py 下。
  2. 配置 VSCode 的 launch.json 文件,确保 args 参数按正确的顺序传递,分布式训练的参数和训练脚本的参数要区分清楚,顺序保持一致。
  3. 选择调试配置并开始 Debug,VSCode 将帮助你进入多 GPU 的调试模式,方便追踪代码的执行流程并排查分布式训练中的问题。

这样,你就可以在单机多卡的分布式训练中使用 VSCode 进行调试了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开始学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值