我想知道如何设置我的系统,以便我可以使用 nvidia dgpu 执行困难任务,使用 amd igpu 执行简单任务。我已经设法使用 prime-run 在 Manjaro 上使其运行,但我无法在 Ubuntu 上弄清楚,因为我需要使用 Ubuntu。
CPU:AMD Ryzen 7:4800HS GPU:带有 Max-Q 的 Nvidia GeForce RTX 2060
lspci | grep VGA 输出:
01:00.0 VGA 兼容控制器:NVIDIA Corporation TU106 [GeForce RTX 2060](rev a1)05:00.0 VGA 兼容控制器:Advanced Micro Devices, Inc. [AMD/ATI] Renoir(rev c6)
据我所知,最好的选择是主要渲染卸载,但如何在全新的 Ubuntu 20.04 系统上使其运行?我真的很感激一步一步的回答。
lspci -k | grep -EA3'VGA|3D|显示'输出:
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060] (rev a1)
Subsystem: ASUSTeK Computer Inc. Device 1e11
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
--
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev c6)
Subsystem: ASUSTeK Computer Inc. Renoir
Kernel modules: amdgpu
05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 1637
我很奇怪,因为glxinfo | grep OpenGL给出:
OpenGL 供应商字符串:VMware,Inc. OpenGL 渲染器字符串:llvmpipe(LLVM 9.0.1,128 位)OpenGL 核心配置文件版本字符串:3.3(核心配置文件)Mesa 20.0.4 OpenGL 核心配置文件着色语言版本字符串:3.30 OpenGL 核心配置文件上下文标志:(无)OpenGL 核心配置文件配置文件掩码:核心配置文件 OpenGL 核心配置文件扩展:OpenGL 版本字符串:3.1 Mesa 20.0.4 OpenGL 着色语言版本字符串:1.40 OpenGL 上下文标志:(无)OpenGL 扩展:OpenGL ES 配置文件版本字符串:OpenGL ES 3.1 Mesa 20.0.4 OpenGL ES 配置文件着色语言版本字符串:OpenGL ES GLSL ES 3.10
因此,没有关于 nvidia 的任何信息。
当我使用 Ubuntu 时,我已经尝试了不同的解决方案一周了,但都没有起到作用。
如果需要,我可以提供任何其他信息。
提前致谢!
答案1
首先你需要安装内核 >=5.8,除非 Renoir 架构无法工作:你可以在这里找到它https://wiki.ubuntu.com/Kernel/MainlineBuilds或者通过 ppa 轻松进行图形化使用:https://github.com/bkw777/mainline。
首先安装这个 5.8.* 内核,然后安装 nvidia 驱动程序。
其次,您需要如下所述的 Nvidia 450 驱动程序。
在全新安装(没有 xorg.conf 以及在其他地方提供给 xorg 的其他选项)做 :
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update sudo
sudo apt dist-upgrade
sudo apt install nvidia-driver-450
重启后,你将能够使用前缀启动 Nvidia 卡上的程序
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
__
意思是_ _
没有空间。
例如尝试
$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | egrep "(OpenGL vendor|OpenGL renderer|OpenGL version)"
你应该得到类似这样的结果,但是使用你的显卡(我有 Geforce 1660):
$ OpenGL vendor string: NVIDIA Corporation
$ OpenGL renderer string: GeForce GTX 1660 Ti/PCIe/SSE2
$ OpenGL version string: 4.6.0 NVIDIA 450.66
如果没有前缀,则将使用集成 GPU
$ glxinfo | egrep "(OpenGL vendor|OpenGL renderer|OpenGL version)"
$ OpenGL vendor string: X.Org
$ OpenGL renderer string: AMD RENOIR (DRM 3.38.0, 5.8.8-050808-generic, LLVM 10.0.0)
$ OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.8
我不知道如何让“按需”工作,只能手动启动。
更多信息请点击这里:
https://us.download.nvidia.com/XFree86/Linux-x86_64/450.57/README/primerenderoffload.html
编辑:“按需”仅指从 eGPU 按需手动启动。Linux 中没有 Windows 中那样的自动功能。
答案2
我有一块 AMD iGPU 和一块 NVIDIA eGPU。我手动创建了一个 xorg.conf 并将其放在 /etc/X11 中,以使两者协同工作并启用主要卸载。
对于主要卸载,xorg.conf 的相关部分是 -
Section "ServerLayout"
Identifier "layout"
Option "AllowNVIDIAGPUScreens"
EndSection
重新启动或重启以使 X11 使用新的配置。
然后使用它__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia [program]
在 Nvidia 卡上启动 [程序]。
我已经为此创建了一个别名,.bashrc
这样我就不必一直记住它。