【问题标题】:NSight skipping breakpoints while debuggingNSight 在调试时跳过断点
【发布时间】:2013-04-21 06:53:29
【问题描述】:

我有一个 cuda 应用程序,我正在尝试使用并行 Nsight 调试器进行调试。我的内核函数中有一个断点。但是当我尝试调试代码时,调试器不会在断点处停止并立即打印出结果。我对此进行了搜索,并且还收到了this one 之类的帖子。 但是我在我的项目的属性页面中检查了“生成 GPU 调试信息”,它已经变成了“是(-G0)”。我还在 Nvidia 示例程序之一(如 matrixMulCUDA)中设置了断点,我可以轻松调试他们的程序并能够查看详细信息。所以我不知道我应该做什么或需要更改哪些其他设置才能调试我的程序。我想提供更多信息: 1. 我使用的是 Microsoft Visual Studio 2010 2. 我的显卡是 NVidia 560ti。 3 我正在使用 CUDA 5.0 和并行 NSight Visual Studio 2.2 版。

这里是我调用内核的host code function 的一些屏幕截图,以及我设置断点的kernel function 的一部分。任何帮助将不胜感激。

【问题讨论】:

  • 一种可能是您的内核根本没有执行。你在做proper cuda error checking吗?我在您提供的主机代码图片中看不到任何内容。您也可以尝试使用 cuda-memcheck 运行您的代码,看看是否报告了任何错误。
  • 不,你是对的。我还没有进行适当的 cuda 错误检查。但是有一件事。将矩阵复制回cpu后,我从printf得到的结果,我得到了想要的结果。所以我相信内核正在执行。但我还是会按照你的建议去做,我会告诉你的。但这种行为背后还有其他可行的原因吗?
  • 嗨!我刚刚使用 cudaGetLastError() 测试了我的内核(在本网站中有所提及:visualization.hpc.mil/wiki/Handling_CUDA_error_messages)并且内核正在执行而没有任何错误。那么调试还需要做什么呢?
  • 只是想知道你在哪里设置了 brsakpount?该指令是由线程执行的吗?
  • 嗨!我已经设置了评估线程 ID 的断点,如我上传的内核映像所示。

标签: debugging cuda gpu gpgpu nsight


【解决方案1】:

我们已经修复了许多错误,例如 NVIDIA Nsight 3.0 RC2 中的这些错误。我建议所有用户尽快升级到 NVIDIA Nsight 3.0。可从Nsight Registered Developers Program 免费下载。

【讨论】:

    猜你喜欢
    • 2012-06-05
    • 2010-12-13
    • 2011-09-28
    • 2020-01-27
    • 2013-10-04
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多