7

我收到一个错误:“所有 cuda 设备都用于显示,不能在调试时使用”(使用 Ubuntu)

有什么方法可以使用只有一个 GPU 的 Nsight eclipse 进行调试?我见过像“sudo service lightdm stop”这样的解决方案来杀死X,但这也杀死了Nsight eclipse,那有什么意义呢?

更新:由于无法使用运行 X 的同一 GPU 进行调试,我不得不问:如何使用家庭网络中的另一台计算机“远程”访问 Ubuntu,以使 X 桌面渲染将由来宾计算机执行,同时让主机 GPU 运行调试器?

4

3 回答 3

5

通常,不支持在托管 X 显示器的同一个 GPU 上进行调试。从nsight 入门指南:“运行 X11(在 Linux 上)或 Aqua(在 Mac 上)的 GPU 不能用于调试 CUDA 应用程序,并且将对调试器中运行的应用程序隐藏。这样的 GPU 仍然可以使用用于分析 GPU 应用程序。

但是,我相信不同的窗口管理器之间实际上存在不同的行为。我有一台带有 Quadro1000M 和 RHEL 6.2(带有 GNOME)的笔记本电脑,带有 CUDA 5.0,我能够进入 nsight EE 中的调试器(项目...构建项目,然后运行...调试)。那时我可以单步执行并在主机代码中设置断点。如果我运行代码完成,我会得到正确的输出。但是,您仍然无法调试设备代码。如果您在设备代码中设置断点(并命中该断点),您将挂起 X 会话。

编辑: CUDA 5.5 及更高版本现在支持在单个 cc3.5 或更高版本 GPU 上进行调试的能力。

于 2012-12-01T19:20:49.330 回答
1

看来您可以使用 CUDA 5.5 在只有一个 GPU 的机器上调试 CUDA 程序。请参见第 1.7.3.2 节。CUDA_Toolkit_Release_Notes的 CUDA-GDB

于 2013-06-25T17:44:17.247 回答
0

另一种可行的方法是将板载视频输出用于显示器。这样,您就可以使用板载图形进行显示,使用 GPU 进行调试。

为此,您必须:

  • 转到 BIOS 并将主显示适配器更改为“板载”(这因制造商而异)
  • 将显示器物理连接到板载显示器输出馈送
  • 重启然后运行 ​​Nsight

如果您使用的是没有板载显卡的系统,那么您就不走运了!

这里的这个人已经能够使用 Visual Studio 和 Nsight 插件在 Windows 中启动并运行它。

PS 您可能需要编辑您的 xorg.conf 以使 X 使用板载图形而不是您的 Nvidia GPU。

于 2013-12-18T04:01:15.417 回答