我能否在我的Optimus笔记本电脑上通过Intel集成显卡运行X11并在NVIDIA GPU上调试CUDA代码?

5

我知道在Linux上可以使用cuda-gdb进行CUDA调试,但是这并不太方便。我也知道如果X服务器在其他GPU上运行,可以使用Nsight Eclipse版进行CUDA调试。 因此,我有一台双GPU笔记本电脑(Geforce 525m和Intel 3000),我想知道是否可以在我的Intel显卡上运行X服务器,而我的CUDA代码则在我的NVIDIA显卡上运行?


在Windows上这不是问题,该平台支持单GPU调试... 我正在寻找在Ubuntu上可能提供GUI调试的解决方法... - Ognjen Kocic
当然,如果我们谈论的是例如带有独立NVIDIA GPU(和英特尔集成图形)的台式系统,那么这是可能的,而且相当简单,只需要一个适当的xorg.conf文件。 在您的笔记本电脑上也可能是可能的,但这取决于系统BIOS如何管理GPU硬件。 在我看来,您笔记本电脑的配置细节不在StackOverflow的讨论范围之内。 - Robert Crovella
这并不仅仅是适用于我的笔记本特定配置。许多笔记本都采用英伟达Optimus GPU与Intel独立显卡相结合。如果您知道如何为我的笔记本设置xorg.conf,那很可能也适用于其他笔记本。 - Ognjen Kocic
并非所有的Optimus笔记本电脑在图形方面都是相同的。例如,有些提供了让用户手动控制启用独立显卡的选项,而有些则没有。我认为,再次强调,通过所有这些内容是不相关的。这是我的观点。 - Robert Crovella
3个回答

2
如果你想在你的笔记本电脑上尝试让它工作,你应该先确保你的 xorg.conf 文件只引用了 Intel 集成 GPU。接着你需要尝试确认当你在 Linux 下运行时,笔记本是否同时启用了 Intel 集成 GPU 和 NVIDIA 独立 GPU。为此,我建议你可以首先运行 lspci 命令进行测试。如果该命令显示出了集成显卡和 NVIDIA GPU,则可以尝试在此时安装 CUDA 工具包。请确保在询问是否要更新 xorg.conf 文件时回答 "no"。
之后,它可能会正常工作。如果它不能工作,你可能需要检查你的 SBIOS 机器配置选项,看看是否有一种方法可以强制启用 NVIDIA GPU 和 Intel 集成显卡。
如果你能够让 Intel 集成显卡显示,并且成功加载并运行 CUDA 工具包,则在 NVIDIA GPU 上调试时不应该有任何问题。

感谢所有的建议。还有一件事情,当我想要启动CUDA应用程序时,我需要使用optirun命令来启动它。因此,在最新的bumblebee(3.2.1)中,有一个--no-xorg选项,可以确保optirun不会启动另一个X服务器。这个选项将是我的下一步行动。我已经转移到了Kubuntu 13.10,并将尝试使其工作。 - Ognjen Kocic

0

我回答是因为我还不能发表评论。

我不确定,但我认为这在Debian上不是问题。两个月前,我使用Debian而不是Ubuntu(CUDA 5.0),能够使用X服务器并使用cuda-gdb(我不确定是否可以在内核函数中调试,但我认为是可以的)。

当更改为CUDA 5.5的Ubuntu时,我需要以文本模式启动Ubuntu才能调试内核函数。

因此,如果您可以尝试,请尝试使用Debian。:)


你有多个GPU吗?你是使用命令行cuda-gdb调试,还是使用Nsight Eclipse调试器? - Ognjen Kocic
@OgnjenKocic,我只有一张GPU(GTX 480)。为了调试,我使用cuda-gdb,但我能够在同一个会话中运行Nvidia Visual Profiler的分析器并调试程序(通过cuda-gdb)。 - Blufter
是的,您可以对CUDA代码进行性能分析以获得更好的性能,但是如果单个GPU的计算能力小于3.5(只有少数GPU具备此能力),则无法使用Nsight Eclipse GUI调试器。这已经在https://dev59.com/XWvXa4cB1Zd3GeqPKY8k中得到了回答... - Ognjen Kocic
哇,谢谢你提供链接。我只是想帮忙,结果反而学到了东西。哈哈,谢谢。 - Blufter

0

在我看来,这个解决方案并不好,但它可以在ASUS B400V笔记本电脑上的Ubuntu 16.04上运行。

  1. 使用Intel显卡启动XServer(使用Nvidia XServer设置或sudo prime-select intel命令;您需要注销并重新登录)。
  2. 运行命令sudo prime-select nvidia,无需注销。
  3. 运行命令sudo tee /proc/acpi/bbswitch <<< ON

执行完这些步骤后,我可以调试我的CUDA程序。在重新启动或注销之前,您需要运行命令sudo prime-select intel


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接