web-dev-qa-db-fra.com

AMD CPU + NVIDIA GPU sur un système frais Ubuntu 20.04

Je me demandais comment puis-je définir mon système afin que je puisse utiliser ma NVIDIA DGPU sur des tâches difficiles et AMD IGPU pour des tâches simples. J'ai réussi à le faire fonctionner sur Manjaro, en utilisant Prime-Run, mais je ne peux pas le comprendre sur Ubuntu, car j'ai besoin d'utiliser Ubuntu.

CPU: AMD RYZEN 7: 4800HS GPU: NVIDIA GEFORCE RTX 2060 avec max-q

LSPCI | Sortie VGA Grep :

01: 00.0 Contrôleur compatible VGA: Nvidia Corporation TU106 [GeForce RTX 2060] (Rev A1) 05: 00.0 Contrôleur compatible VGA: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (Rev C6)

Pour autant que je sache, la meilleure option est la déchargement du rendu prime, mais quelles sont les étapes à suivre pour le faire fonctionner sur un système frais Ubuntu 20.04? J'apprécierais vraiment une réponse étape par étape.

LSPCI -K | Grep -Ae3 'VGA | 3D | Affichage' Sortie:

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

Je me demande parce que GLXInfo | Grep OpenGL donne:

OpenGL Vendor String: VMware, Inc. OpenGL Renderer String: LLVMPIpe (LLVM 9.0.1, 128 bits) OpenGL Core Profil Version String: 3.3 (Profil de base) Mesa 20.0.4 OpenGL Profil de noyau OpenGL Shading Language String: 3.30 Contexte de profil de noyau OpenGL Drapeaux: (Aucun) OpenGL Core Profil Profil Masque: Profil principal Profil OpenGL Profil Profil Extensions: OpenGL Version String: 3.1 Mesa 20.0.4 OpenGL Shading Langue Version chaîne: 1.40 OpenGL Contexte Drapeaux: (aucune) OpenGL Extensions: OpenGL ES Profil Version String: OpenGL ES 3.1 Mesa 20.0.4 OpenGL ES Profil Shading Language Version String: OpenGL ES GLSL ES 3.10

Il n'ya donc que Nvidia.

J'ai déjà essayé différentes solutions pendant une semaine et rien n'a travaillé pour moi quand j'ai utilisé Ubuntu.

Je peux fournir toute autre information si nécessaire.

Merci d'avance!

1
Bobbie

Vous devez d'abord installer le noyau> = 5.8 Sauf si Renoir Architecture ne fonctionnera pas: vous trouverez ceci ici https://wiki.ubuntu.com/kernel/mainlinebuilds ou une utilisation graphique facile de PPA: - https://github.com/bkw777/mainline .

Installez ceci 5.8. * Driver du noyau d'abord et Nvidia Deuxième.

Deuxièmement, vous avez besoin de pilote NVIDIA 450 comme décrit ci-dessous.

Sur A Installation propre (sans Xorg.conf et d'autres options données sur d'autres endroits sur Xorg) DO:

Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt update Sudo
sudo apt dist-upgrade
Sudo apt install nvidia-driver-450

Après redémarrage, vous pourrez lancer des programmes sur la carte NVIDIA avec le préfixe __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

__ veux dire _ _ Sans espace.

Par exemple, essayez

$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | egrep "(OpenGL vendor|OpenGL renderer|OpenGL version)"

Vous devriez obtenir quelque chose comme ça, mais avec votre carte graphique (j'ai 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

ANS SANS PREFIX, votre GPU intégré sera utilisé

$ 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

Je ne sais pas comment obtenir le travail "à la demande", mais le lancement manuellement uniquement.

Plus d'informations ici:

https://us.download.nvidia.com/xfree86/xfree86/linux-x86_64/450.57/readme/primerenderendoffload.html

EDIT: La "demande à la demande" n'est que du lancement de Manuel sur la demande de l'EGPU. Sous Linux, il n'y a pas automatique comme dans Windows.

2
Oli

J'ai une AMD IGPU et un NVIDIA EGPU. J'ai créé manuellement un xorg.conf et l'ai placé dans/etc/x11 pour obtenir les deux pour travailler ensemble et activer le déchargement de la prime.

Pour le déchargement primordial, la partie pertinente de xorg.conf est -

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

Redémarrez ou redémarrez la nouvelle configuration à utiliser par X11.

Ensuite, utilisez ceci __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia [program] Pour lancer [Programme] sur la carte NVIDIA.

J'ai créé un alias pour cela dans .bashrc Pour que je n'ai pas à retenir tout le temps.

0
gautam