为什么调试器不会破坏内核代码

时间:2013-10-01 20:02:36

标签: debugging cuda nsight

我在具有两个图形卡的64位Ubuntu 12.04计算机上安装了Eclipse Nsight 5.0(CUDA 5.0):用于调试的Geforce GT 240桌面UI和Geforce GTX 480。我可以很好地编译和运行Cuda程序。但是,当我在Cuda代码中设置断点并开始调试时,游标不会在行上停止,而是跳转到内核函数的末尾。

我在调试配置中设置了Geforce GTX 480作为调试器,并检查每个内核调用的返回值。我还能尝试什么?另外,我没有root权限。

1 个答案:

答案 0 :(得分:1)

在调试器下运行时是否会执行内核(例如,您是否看到正确的值更新)?可能是您的NVIDIA驱动程序与工具包不兼容。

如果内核没有执行,很可能这很简单,例如您的内核是针对与您用于调试的卡不兼容的体系结构进行编译的。

内核调用后你有cudaDeviceSynchronize吗?你检查它的返回值吗?