如何使用只有一个GPU的eclipse Nsight来调试CUDA

时间:2012-12-01 18:40:31

标签: eclipse cuda gpu nsight

我收到错误:“所有cuda设备都用于显示,调试时无法使用” (使用Ubuntu)

有没有办法使用Nsight eclipse只用一个GPU进行调试? 我见过类似的解决方案 “sudo service lightdm stop” 杀死X但是杀死Nsight日食也是如此?重点是什么?

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

3 个答案:

答案 0 :(得分:4)

通常,不支持在托管X显示器的同一GPU上进行调试。从nsight getting started guide:“运行X11(在Linux上)或Aqua(在Mac上)的GPU不能用于调试CUDA应用程序,并且将在调试器中运行的应用程序中隐藏。仍可用于分析GPU应用程序。

然而,我认为不同的窗口管理器之间存在不同的行为。我有一台配备了Quadro1000M和RHEL 6.2(带GNOME)和CUDA 5.0的笔记本电脑,我可以进入nsight EE的调试器(Project ... Build Project,然后是Run ... Debug)。此时,我可以单步执行并在主机代码中设置断点。如果我运行代码完成,我得到适当的输出。但是,您仍然无法调试设备代码。如果在设备代码中设置断点(并点击该断点),则会挂起X会话。

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

答案 1 :(得分:1)

似乎您可以使用CUDA 5.5在只有一个GPU的计算机中调试CUDA程序。 见1.7.3.2节。 CUDA_Toolkit_Release_Notes的CUDA-GDB

答案 2 :(得分:0)

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

为此你必须:

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

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

这个人here已经能够使用Visual Studio和Nsight插件在Windows中运行它。

<强> P.S。您可能需要编辑xorg.conf以使X使用板载图形而不是Nvidia GPU。