使用 nsight 进行调试
我正在使用 NSight 调试我的 CUDA 代码,但我有问题: 如何为特定线程和块放置断点?
当我在内核上放置断点时,调试器始终停止在块 0 的线程 0 处。
I am using NSight to debug my CUDA code and I have question:
how can I place a breakpoint for a specific thread and block?
When I place a breakpoint on the kernel the debugger always stops at thread 0 of block 0.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 Nsight 在线帮助中所述,您可以设置断点并使其以块和线程 ID 为条件,如下所示:
要在 CUDA C 断点上设置块或线程条件:
类型:
@blockIdx(0,2,0) && @threadIdx(5,0,0)
单击“确定”。断点字形显示一个加号。
As discussed in the online help in Nsight, you can set a breakpoint and make it conditional on block and thread id like this:
To set a block or thread condition on a CUDA C breakpoint:
Type:
@blockIdx(0,2,0) && @threadIdx(5,0,0)
Click OK. The breakpoint glyph shows a plus sign.
尝试使用 CUDA 调试焦点。您可以调试任何您想要的块中的任何线程...
try to use CUDA Debug Focus. you can debug any thread in any block you want...