我收到错误:“所有cuda设备都用于显示,调试时无法使用” (使用Ubuntu)
有没有办法使用Nsight eclipse只用一个GPU进行调试? 我见过类似的解决方案 “sudo service lightdm stop” 杀死X但是杀死Nsight日食也是如此?重点是什么?
更新:由于无法使用运行X的相同GPU进行调试,因此我不得不问:如何在家庭网络中使用另一台计算机以X方式“远程”访问Ubuntu桌面渲染将由来宾计算机执行,同时让主机GPU运行调试器?
答案 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进行调试。
为此你必须:
如果您使用的系统没有板载显卡,那么您就不走运了!
这个人here已经能够使用Visual Studio和Nsight插件在Windows中运行它。
<强> P.S。您可能需要编辑xorg.conf以使X使用板载图形而不是Nvidia GPU。