Мне было интересно, как я могу настроить свою систему так, чтобы я мог использовать свой 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.
Я могу предоставить любую другую информация, если требуется.
Заранее спасибо!
Сначала вам нужно установить ядро >=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. В линуксе нет автомата как в винде.
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.