我无法在CUDA内核中设置断点

时间:2013-02-27 22:57:48

标签: cuda nsight

我是NSIGHT和CUDA的新手。我试图在我的CUDA内核代码中设置一个断点,但我不能 - 断点设置在我内核的末尾,而不是我想要调试的特定行。

  • 我正在使用VS2010(MFC项目)和NSIGHT 2.2和CUDA 4.2。
  • 我正在编译调试模式。
  • 我在一个不是“StratUp项目”的项目中使用CUDA。
  • 我正在使用“生成主机调试信息”和“是(-g)”
  • 我正在使用“生成设备调试信息”和“是(-G)”

我目前正在通过 Menu-> Nsight->启动CUDA调试运行该程序。 当我尝试在另一个项目(即“StartUp项目”)上设置断点时,我确实成功了。 关于如何让断点在特定行上运行而不是整个内核的任何建议?

2 个答案:

答案 0 :(得分:1)

我使用太多线程(256X256)来激活我的内核。     dim3个主题(256,256)     (内核<<< ...,&线程GT;>>

答案 1 :(得分:-2)

请务必注意,在调试CUDA时,如果计算机上的核心数大于正在运行的CUDA线程数,则设备代码中设置的断点将无法正常工作。此外,如果CUDA线程的数量不能被内核数量整除,则某些内核在最后一次迭代时不会遇到设备代码断点。