我正在我的 NVIDIA 卡上运行 CUDA 程序(使用率为 100%),同时我想能够使用我的 iGPU 上网或编程。
我还希望当我不在 NVIDIA 上运行程序时能够在上面玩游戏,而不需要重新启动计算机。
我见过进行 GPU 直通的人,将他们的显示器连接到 iGPU 和 NVIDIA 卡,这样他们就可以运行 2 个桌面。
考虑到我不想使用不同的操作系统,这似乎有点多,我只希望我的 Ubuntu 显示 2 个桌面(不需要桌面之间进行交互,即不需要在它们之间传递窗口)——我是否必须在我的 Ubuntu 上运行带有 GPU 直通的虚拟 Ubuntu,或者有更好的方法来实现这一点?
我想我还必须将键盘和鼠标映射到不同的 USB 端口才能在桌面之间切换......
答案1
所以,这并不是我真正想要的,但我找到了一个可以满足我要求的解决方案。
我想要一种东西,可以让我在 NVIDIA GPU 忙于计算时将我的 iGPU 用于计算机,并在不用于计算时轻松切换回它来玩游戏。
解决方案是使用 NVIDIA Prime。
我还没有亲自做过,但我发现指示:
总而言之,为了使这个工作正常进行,你需要
- 确保您已在 BIOS 设置中启用板载显卡(或将其设置为主要显卡)
- 安装 xorg intel 驱动程序和 nvidia/cuda 驱动程序
- 启动 nvidia-settings,进入 PRIME 设置页面,将 Intel(省电模式)设置为默认
- 修改你的 .bashrc 并将 LD_LIBRARY_PATH 设置为至少包含 /usr/local/cuda/lib64:/usr/lib/nvidia-XXX ,其中 XXX 在我的情况下是 375。
- 注销以重新启动 X 或者重新启动
- 运行 ldd $( which glxinfo ) 以确保您的 GL 库指向 mesa,或运行 glmark2 确认 GL 状态
- (更新)如果从步骤 5 打印的 libGL 指向 nvidia 的驱动程序文件夹,则需要删除/重命名 nvidia 驱动程序文件夹下的 libGL.so*/libGLX.so*/libGLdispatch.so*,以便您的操作系统可以选择 mesa libGL 库。
- 运行 nvidia-smi 列出您的专用 NVIDIA GPU,并运行您的 CUDA 程序,您应该不会看到任何错误。