全新 Ubuntu 20.04 系统上的 AMD CPU + Nvidia GPU

全新 Ubuntu 20.04 系统上的 AMD CPU + Nvidia GPU

我想知道如何设置我的系统,以便我可以使用 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这样我就不必一直记住它。

相关内容