我尝试使用cuda-gdb调试我的CUDA应用程序,但遇到了一些奇怪的错误。
我设置选项-g -G -O0
来构建我的应用程序。我可以在没有cuda-gdb的情况下运行我的程序,但没有得到正确的结果。因此我决定使用cuda-gdb,但是,在使用cuda-gdb运行程序时出现以下错误消息
Error: Failed to read the valid warps mask (dev=1, sm=0, error=16).
这意味着什么?为什么sm=0
以及error=16
的含义是什么?
更新1 :我尝试将cuda-gdb用于CUDA示例,但它失败并出现同样的问题。我刚刚安装了CUDA 6.0 Toolkit,然后是NVIDIA的指令。这是我系统的问题吗?
更新2 :
更新3 : 我试图在cuda-gdb中获取更多信息,但我得到了以下结果
(cuda-gdb) info cuda devices
Error: Failed to read the valid warps mask (dev=1, sm=0, error=16).
(cuda-gdb) info cuda sms
Focus not set on any active CUDA kernel.
(cuda-gdb) info cuda lanes
Focus not set on any active CUDA kernel.
(cuda-gdb) info cuda kernels
No CUDA kernels.
(cuda-gdb) info cuda contexts
No CUDA contexts.
答案 0 :(得分:2)
这是内部cuda-gdb
错误。你应该报告一个错误。
您可以尝试从NVIDIA网站上的软件包安装CUDA工具包吗?
答案 1 :(得分:1)
实际上,这个问题仅针对一些旧的NVIDIA GPU(如" Quadro 400"," GeForce GT220"或" GeForce GT 330M"等等) )。
在Liam Kim的设置中,cuda-gdb应该可以通过设置环境变量" CUDA_VISIBLE_DEVICES"来运行,并让cuda-gdb专门在Tesla C2070 GPU上运行。 即 $ export CUDA_VISIBLE_DEVICES = 0(或2) - 通过运行cuda sample - " deviceQuery"可以找到确切的CUDA设备索引。
现在,这个问题已得到修复,CUDA开发人员可以在下一个CUDA版本中找到解决方案(它将在2014年7月初左右发布)。