0

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

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

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

4

2 回答 2

1

我使用了太多线程 (256X256) 来激活我的内核。dim3 线程(256,256)(内核<<<...,线程>>>

于 2013-02-28T20:24:33.790 回答
-2

需要注意的是,调试 CUDA 时,如果机器上的内核数大于正在运行的 CUDA 线程数,设备代码中设置的断点将无法正常工作。此外,如果 CUDA 线程数不能被内核数整除,则某些内核将不会在最后一次迭代中命中设备代码断点。

于 2013-04-03T13:43:46.553 回答