【问题标题】:How to debug CUDA using eclipse Nsight with only one GPU如何使用只有一个 GPU 的 Eclipse Nsight 调试 CUDA
【发布时间】:2012-11-19 16:38:32
【问题描述】:

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

有没有什么方法可以使用 Nsight eclipse 和只有一个 GPU 进行调试? 我见过像这样的解决方案 “须藤服务 lightdm 停止” 杀死X,但这也杀死了Nsight eclipse,那有什么意义呢?

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

【问题讨论】:

  • 如果您对机器有物理控制权,您可以添加一个通用的、廉价的显卡并在其上运行 X,以腾出 GPU 进行调试。

标签: eclipse cuda gpu nsight


【解决方案1】:

一般来说,不支持在托管 X 显示器的同一个 GPU 上进行调试。来自nsight getting started guide:“运行 X11(在 Linux 上)或 Aqua(在 Mac 上)的 GPU 不能用于调试 CUDA 应用程序,并且将对在调试器中运行的应用程序隐藏。这样的 GPU 仍然可以用于分析 GPU 应用程序。 "

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

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

【讨论】:

  • 谢谢,我浪费了很多时间来安装 ubuntu,学习如何使用和配置它——只是现在才发现。他们应该用 BLINKING RED BOLD 字母写这个警告......
  • 我知道您在问题中说“只有一个 GPU”。但是,如果碰巧您有一个(桌面)系统将图形集成到主板中,那么将 X 显示器移到那里并让 CUDA GPU 没有显示器并不是很困难。然后你可以很好地运行 nsight EE。
  • 不幸的是我没有。但万一有人这样做,我找到了关于如何配置它的解释:onextrabit.com/view/50310aea65e7d250c5000002
  • 我可以在 Nsight 中打开它,方法是转到 Window -> Preferences -> Nsight 并选中该框以启用 cuda 软件抢占调试。
【解决方案2】:

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

【讨论】:

  • software_preemption 功能需要具有计算 3.5 能力 (GK110) 的设备,这是目前相当高端的设备。几年后,这些设备将相当普遍。
  • 目前这意味着只有 GTX Titan 和 GTX 780 Geforce 卡支持此功能。所以对于爱好者和业余爱好者来说这是遥不可及的。:(
  • @Shayan RC:有趣的是,根据 CUDA GPU 网站 GeForce GT 640 (GDDR5) 卡具有 CC 3.5。最近还发布了带有 CC 5.0 的 Maxwell 显卡 GeForce 750 和 750 Ti,因此这些显卡也应该支持软件抢占。
【解决方案3】:

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

为此,您必须:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 1970-01-01
    • 2012-11-05
    • 2013-12-15
    • 2018-06-08
    • 2016-11-26
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多