0

我尝试使用 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

  • 操作系统 - CentOS 6.5
  • 图形处理器
    • 1 Quadro 400
    • 2特斯拉C2070
    • 我的程序只使用了 1 个 GPU,但我选择的任何 GPU 都收到相同的错误消息
  • CUDA 版本 - 6.0
  • 显卡驱动
    • NVRM 版本:NVIDIA UNIX x86_64 内核模块 331.62 Wed Mar 19 18:20:03 PDT 2014
    • GCC 版本:gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)

更新 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.

4

2 回答 2

2

这是内部cuda-gdb错误。你应该报告一个错误。

您可以尝试从 NVIDIA 网站上的软件包安装 CUDA 工具包吗?

于 2014-06-02T16:39:17.903 回答
2

实际上,这个问题只是特定于一些旧的 NVIDIA GPU(如“Quadro 400”、“GeForce GT220”或“GeForce GT 330M”等)。

在 Liam Kim 的设置中,通过设置环境变量“CUDA_VISIBLE_DEVICES”,cuda-gdb 应该可以正常工作,并让 cuda-gdb 专门在 Tesla C2070 GPU 上运行。即 $export CUDA_VISIBLE_DEVICES=0(或 2) - 可以通过运行 cuda sample -“deviceQuery”找到确切的 CUDA 设备索引。

现在,这个问题已经修复,CUDA 开发人员可以在下一个 CUDA 版本中使用该修复程序(它将在 2014 年 7 月上旬左右发布)。

于 2014-06-20T06:09:43.753 回答