【发布时间】:2017-01-07 11:16:34
【问题描述】:
我正在使用 ALEA GPU 进行 GPU 编程 (C#)。如果我在内核中使用 atomic_add 之类的原子操作,则在内核调试期间,我的变量在 CUDA WarpWatch 窗口中出现“无法解析名称”错误。我看到了 blockIdx.x、blockDim.x、threadIdx.x 和数组的值,但无法解析变量名。内核按预期工作,但在调试期间无法监控变量,因此难以修复任何错误。 CUDA 8 Toolkit 已安装,我正在使用 Visual Studio 2015。
有什么想法吗?
【问题讨论】:
-
你是否编译了调试代码,即调试项目?
-
是的。我做了所有写在 ALEAGPU 网站上的事情。该项目在调试模式下工作。我已经可以调试它并逐步通过内核。如果没有任何原子操作,我可以看到变量的值。否则,我会在 Warp Watch 窗口中看到“无法解析名称”错误。我必须将变量值写入控制台(在内核代码中),以便我可以了解正在发生的事情。
-
@RobertCrovella,鉴于我对 ALEA GPU 的理解,我不确定这里是否涉及任何 CUDA 编译。调试信息似乎不是由 CUDA 编译器管理,而是由 ALEA 解决方案管理。