AMD CPU + графический процессор Nvidia в новой системе Ubuntu 20.04

Мне было интересно, как я могу настроить свою систему так, чтобы я мог использовать свой nvidia dgpu для сложных задач и amd igpu для простых задач. Мне удалось заставить его работать на Manjaro, используя отличную версию, но я не могу понять это на Ubuntu, поскольку мне необходимо использовать Ubuntu.

Процессор: AMD Ryzen 7: 4800HS Графический процессор: Nvidia GeForce RTX 2060 с Max-Q

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 | Display' вывод :

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 (Core Профиль) Mesa 20.0.4 OpenGL основной профиль языка языка затенения версия строка: 3.30 Флаги контекста профиля ядра OpenGL: (нет) Ядро OpenGL маска профиля профиля: основной профиль Расширения основного профиля OpenGL: Строка версии OpenGL: 3.1 Mesa 20.0.4 Версия языка затенения OpenGL строка: 1,40 Флаги контекста OpenGL: (нет) Расширения OpenGL: ES OpenGL строка версии профиля: OpenGL ES 3.1 Mesa 20.0.4 Профиль OpenGL ES версия языка затенения строка: OpenGL ES GLSL ES 3.10

Так что о nvidia ничего нет.

Я пробовал разные решения уже неделю, и у меня ничего не получалось, когда я использовал Ubuntu.

Я могу предоставить любую другую информация, если требуется.

Заранее спасибо!

0
задан 20 June 2020 в 14:36

2 ответа

Сначала вам нужно установить ядро ​​>=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

Ответ без префикса будет использоваться ваша встроенная видеокарта

$ 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

Я не знаю как чтобы получить работу «On-Demand», но запускать только вручную.

Дополнительная информация здесь:

https://us.download.nvidia.com/XFree86/Linux-x86_64/450.57/README/primerenderoffload.html

EDIT: "On-Demand" запускается только вручную по запросу от eGPU. В линуксе нет автомата как в винде.

2
ответ дан 11 September 2020 в 15:33

I have an AMD iGPU and a NVIDIA eGPU. I manually created a xorg.conf and placed it in /etc/X11 to get both to work together and enable prime offloading.

For prime-offloading the relevant part of xorg.conf is -

Section "ServerLayout"
    Identifier     "layout"
    Option         "AllowNVIDIAGPUScreens"
EndSection

Reboot or restart for the new config to be used by X11.

Then use this __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia [program] to launch [program] on the Nvidia card.

I've created an alias for this in .bashrc so that I don't have to remember it all the time.

0
ответ дан 30 July 2020 в 22:24

Другие вопросы по тегам:

Похожие вопросы: