让Nsight在执行某些内核函数后开始调试

时间:2015-03-23 02:08:00

标签: cuda nsight

我的CUDA程序有太多的内核函数,如果我打开CUDA调试模式,我必须在触发某个内核函数的断点后等待整整一个小时。

有没有办法让Nsight在某些内核函数之后开始调试,或者只调试某个内核函数?

我在VS2012使用Nsight

1 个答案:

答案 0 :(得分:0)

理论上您可以按照Nsight帮助文件(在线帮助本地帮助)中的说明进行操作。在撰写本文时页面是here)。

简而言之:

  • 在Nsight Monitor选项中, CUDA »使用此监视器进行CUDA附加应为 True
  • 在开始申请之前,请将名为NSIGHT_CUDA_DEBUGGER的环境变量设置为1
  • 然后在您的CUDA内核中,您可以添加如下的断点:

    asm("brkpt;");
    

这与主机代码中的__debugbreak()内在或int 3汇编指令类似。点击后,您将看到一个对话框,提示您附加CUDA调试器。

在实践中,至少对我而言 Just Are Not Work ™。也许你会有更多的运气。