你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Visual Studio 中调试CNTK源代码

调试 CUDA 内核的步骤:

  1. 按照此处的说明安装 NVIDIA Nsight
  2. 按照“本地调试”的说明进行操作。
  3. NSIGHT_CUDA_DEBUGGER = 1 设置环境变量。
  4. 以管理员身份运行Visual Studio和 Nsight 监视器。
  5. 在 Nsight Monitor-Options-CUDA>> 中,将“将此监视器用于 CUDA 附加”设置为 True。 可能需要重启 Nsight。 再次以管理员身份运行。
  6. 在Visual Studio中,转到 Nsight-Options>,并确保这些选项与 Nsight 监视器中的选项匹配 (,例如端口是相同的) 。 特别是在两者中确保“建立安全连接”相同。
  7. 右键单击解决方案资源管理器中的 MathCUDA 项目,然后转到“属性”。
  8. 转到配置属性 -> CUDA C/C++ -> 设备和将“生成 GPU 调试信息”设置为“是”
  9. 转到配置属性 -> CUDA 链接器 -> 常规,并将“生成 GPU 调试信息”设置为“是”
  10. 在内核中添加断点,重新生成CNTK,并准备好运行尝试调试的任何内容。
  11. 在 VS 中,转到“调试 -> 附加到进程”、“将传输设置为 Nsight GPU 调试器”,并将限定符设置为 localhost。
  12. "开始"菜单 CNTK。
  13. 单击“刷新”并在进程列表中查找CNTK,然后附加。 当它命中断点时,应该能够从内核中看到所有局部变量。 如果只看到 CUDA 全局(如 threadIdx 和 blockIdx),则尚未在 MathCUDA 属性中正确设置 GPU 调试标志。