我在安装了 2 个 M2050 卡的 SUSE Linux 机器上运行 CUDA 5.5,这两个卡都不用于运行 X11。我正在尝试通过使用 Nsight Eclipse 调试器专门仅使用设备 0 的内核。如果我在内核中设置(无条件)断点,调试器首先在块 0/线程 0 上中断,然后如果我继续执行,它将在不同块中看似随机的线程上再次在同一点中断 5 或 6 次,之前退出内核并继续下一个内核。内核中的程序执行正确并正确显示。主机代码调试没有问题。
如果我将相同的断点设为有条件的,如本文所述:
我看不出调试器的行为有什么不同。断点上的条件似乎被忽略了,调试器在退出内核之前会在 5 或 6 个随机线程上中断。这些行为对我来说似乎都没有多大意义。我认为无条件断点应该在线程 0 或所有线程上中断。而且我认为条件断点应该只在它所依赖的线程上中断。我已经查看了所有的 NVIDIA 文档、stackoverflow 等,此时似乎已经用尽了我的选择。我想知道是否有其他人看到过类似的行为或可能有一些指示。