我知道我可以在没有 GUI 的情况下使用 cuda-gdb 在 linux 上调试 CUDA,但这并不是很方便。我也知道如果 X 服务器在其他 GPU 上运行,可以使用 Nsight Eclipse 版本调试 CUDA。所以我有双 GPU 笔记本电脑(geforce 525m 和 Intel 3000),我想知道我是否可以在 Intel 卡上运行 X 服务器,而我的 CUDA 代码在我的 nvidia 卡上运行?
3 回答
如果您想尝试在您的笔记本电脑上进行这项工作,您应该首先确保您的xorg.conf
文件仅引用 Intel 集成 GPU。
然后,您需要尝试确定当您在 linux 下运行时笔记本电脑是否同时为 Intel 集成 GPU 和 NVIDIA 独立 GPU 供电。对于这个测试,我将首先运行lspci
如果该命令同时显示英特尔图形和 NVIDIA GPU,那么您可以尝试在此时安装 CUDA 工具包。xorg.conf
当它询问您是否要更新文件时,请务必回答“否” 。
之后它可能会起作用。如果它不起作用,您可能需要检查您的 SBIOS 机器配置选项,看看是否有一种方法可以强制启用 NVIDIA GPU 和 Intel 显卡。
如果您能够获得由 Intel 显卡托管的显示,并且 CUDA 工具包已加载并正常运行,那么您在该 NVIDIA GPU 上进行调试应该没有问题。
我正在回答,因为我还不能发表评论。
我不确定,但我认为这在 Debian 上不是问题。2 个月前,我使用 Debian 而不是 Ubuntu(CUDA 5.0),并且能够使用 X 服务器和 cuda-gdb(我不确定是否可以在内核函数内部进行调试,但我认为是这样)。
当使用 CUDA 5.5 更改为 Ubuntu 时,我需要以文本模式启动 Ubuntu 以调试内核功能。
因此,如果您可以尝试,我建议您尝试使用 Debian。:)
在我看来,这个解决方案并不好,但它可以在笔记本 ASUS B400V 的 Ubuntu 16.04 上运行。
- 使用 Intel 显卡启动 XServer(Nvidia XServer 设置或
sudo prime-select intel
;您需要注销并登录)。 - 运行命令
sudo prime-select nvidia
并且没有注销。 - 运行命令
sudo tee /proc/acpi/bbswitch <<< ON
执行此步骤后,我可以调试我的 CUDA 程序。在重新启动或注销之前,您需要运行命令sudo prime-select intel
。