【发布时间】:2015-07-28 03:26:47
【问题描述】:
我正在运行 Visual Studio 2013。 我正在运行 CUDA 7.0.28
我可以通过选中或取消选中 CUDA 选项来切换运行时差异:
生成 GPU 调试信息。
我的设备内核使用 >> 运行,即使在那时也会发生错误。
我的问题是:
- 为什么会在发布和调试模式下给我不同的结果?
- 我应该寻找什么样的东西来尝试找出发生这种情况的原因。
- 有没有办法在内核函数中设置断点?事实并非如此。除了制作 printf 语句之外,我还可以使用哪些其他方法来追踪问题?
谢谢。
【问题讨论】:
-
通常在调试模式下运行会导致一些未指定的行为不会终止程序。例如,我在调试模式下默认将内存缓冲区初始化为零,而我没有明确要求这样做。或者有时对共享内存缓冲区的超出范围访问会导致内核没有终止。我建议使用this post 中解释的方法来捕获错误。您还应该能够在安装了 Nsight for Visual Studio 的情况下设置断点。
标签: visual-studio-2013 cuda nvcc