Menu Fermer

Linux : optimiser les pilotes NVIDIA

Pour ceux qui souhaitent tirer pleinement parti de leurs cartes graphiques NVIDIA sur votre PC en Linux, il est essentiel d’optimiser les pilotes. Bien que l’installation de pilotes sur Linux puisse être simple, leur configuration pour une performance maximale est une autre affaire, surtout quand il s’agit d’ajuster les paramètres pour des tâches spécifiques comme le jeu, le rendu graphique, ou l’apprentissage automatique.

Suivez ces étapes pour optimiser les performances de votre carte graphique et garantir une compatibilité maximale avec les logiciels qui exploitent la puissance de l’accélération GPU NVIDIA sur Linux.
Ce tutoriel fonctionne pour la plupart des distributions Linux Ubuntu, Fedora, Debian, Linux Mint et bien d’autres.

Comment optimiser pilotes NVIDIA sur Linux

Comment optimiser pilotes NVIDIA sur Linux

Utiliser Xorg à la place de Wayland

Xorg reste souvent recommandé pour les gamers sur Linux, principalement parce que Wayland peut encore causer une légère baisse de FPS dans certains jeux. Les différences de performance entre Xorg et Wayland se manifestent principalement à cause des différences dans la gestion de la composition et des pilotes graphiques.
De plus, Xorg est mieux pris en charge par de nombreux pilotes et outils de capture, et son architecture est plus stable pour les applications gourmandes en ressources, comme les jeux.

Sur la plupart des distributions Linux, il est relativement simple de passer d’un serveur X à l’autre.
Par exemple, sur Ubuntu, vous devez cliquer sur l’icône roue crantée pour choisir le type de session.

Basculer de Xorg à Wayland et inversement sur Ubuntu

Activer drm et fbdev

Le Direct Rendering Manager (DRM) est un composant essentiel du système Linux pour gérer les ressources graphiques en mode noyau, offrant ainsi des capacités de rendu direct aux applications graphiques. Avec les pilotes NVIDIA sur Linux, l’intégration de DRM est cruciale pour des performances optimales et la gestion des ressources, notamment dans les environnements graphiques et les jeux.

Les pilotes propriétaires NVIDIA incluent désormais une prise en charge de DRM via un module appelé nvidia-drm. Ce module permet d’utiliser le mode natif KMS (Kernel Mode Setting), une fonctionnalité qui améliore la stabilité et le rendu des écrans en définissant la résolution et la profondeur de couleur directement au niveau du noyau. Cela est particulièrement utile pour les configurations avec plusieurs écrans ou pour les applications nécessitant un rendu 3D intensif.

  • Pour activer drm, modifiez l’entrée suivante du fichier GRUB /etc/default/grub :
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 nomodeset nvidia-drm.modeset=1 nvidia_drm.fbdev=1"
  • L’option nvidia-drm.modeset=1 est un paramètre du module de noyau NVIDIA pour activer le Direct Rendering Manager (DRM) KMS (Kernel Mode Setting) sur les GPU NVIDIA. Elle permet de gérer directement les paramètres d’affichage au niveau du noyau, ce qui présente plusieurs avantages pour la gestion graphique sous Linux.
  • L’option nvidia-drm.fbdev=1 est une configuration spécifique au module DRM (Direct Rendering Manager) des pilotes NVIDIA sur Linux. Elle permet de créer un framebuffer (fbdev) géré par le pilote NVIDIA, ce qui offre un support pour les applications nécessitant un framebuffer (comme certains utilitaires ou écrans de démarrage). Le framebuffer est une couche d’abstraction qui permet de dessiner directement sur l’écran en mode texte ou en l’absence d’un serveur graphique comme Xorg ou Wayland
Activer drm et fbdev pour dans les pilotes NVIDIA Linux
  • Puis mettez à jour la configuration GRUB :
sudo update-grub
  • Enfin redémarrez votre appareil :
sudo reboot

Pour vérifier que ce dernier est activé :

sudo cat /sys/module/nvidia_drm/parameters/modeset

Cela doit retourner Y

Autres options du module Nvidia à activer

  • Vous pouvez aussi activer certaines options du pilote NVIDIA, pour cela, éditez le fichier /etc/modprobe.d/nvidia.conf et ajoutez :
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/tmp/tmp-nvidia
  • L’option NVreg_PreserveVideoMemoryAllocations=1 dans les pilotes NVIDIA pour Linux est un paramètre avancé du module du noyau qui permet de conserver les allocations de mémoire vidéo lorsque le pilote est déchargé puis rechargé. Cela peut être particulièrement utile dans des environnements où des applications nécessitent une continuité de la mémoire vidéo ou pour maintenir des performances optimales après la suspension ou l’hibernation du système
  • Module NVIDIA en mode basse latence : Ajoutez l’option suivante pour réduire la latence dans /etc/modprobe.d/nvidia.conf (créez le fichier si nécessaire) :
options nvidia NVreg_UsePageAttributeTable=1
  • Améliorer la gestion de la mémoire : Activez l’option MSI (Message Signaled Interrupts) dans le fichier de configuration du module pour améliorer les performances sur certaines configurations matérielles :
options nvidia NVreg_EnableMSI=1

Pour prendre en compte les modifications :

sudo modprobe -r nvidia && sudo modprobe nvidia

Vous pouvez aussi tester la prise en compte de fbdev comme ceci. Cela doit retourner Y :

sudo cat /sys/module/nvidia_drm/parameters/fbdev

Configurer nvidia-settings pour des performances optimales

L’outil nvidia-settings est fourni avec les pilotes et vous permet de personnaliser divers paramètres graphiques :

  • OpenGL Image Settings : Réglez-le sur “High Performance” dans nvidia-settings (sous “OpenGL Settings”)
Optimiser OpenGL Image Settings dans nvidia-settings de Linux
  • Powermizer : Passez la gestion de l’énergie en mode “Performance maximale” (Maximum Performance) pour éviter les baisses de fréquence de la carte graphique
Réglages Powermizer pour optimiser NVIDIA sur Linux
  • Antialiasing et Texture Filtering : Désactivez l’antialiasing ou réduisez les paramètres de filtrage des textures si vous recherchez les meilleures performances, au détriment de la qualité visuelle.
Optimiser Antialiasing et Texture Filtering pour les cartes graphiques NVIDIA sur Linux

Activer le mode de composition en pipeline (V-Sync)

Pour éviter les déchirements d’image (“tearing”), activez le “Full Composition Pipeline” :

  • Dans nvidia-settings, allez dans X Server Display Configuration.
  • Sélectionnez l’écran à configurer, cliquez sur “Advanced“, puis cochez Force Composition Pipeline et Force Full Composition Pipeline.
  • Appliquez les changements et sauvegardez la configuration X pour qu’elle persiste après redémarrage
Force Composition Pipeline et Force Full Composition Pipeline. pour optimiser NVIDIA sur Linux

Optimiser Xorg pour NVIDIA

Configurez votre fichier /etc/X11/xorg.conf.d/20-nvidia.conf pour tirer le meilleur parti de votre GPU. Vous pouvez inclure des options telles que :

Section "Device"
Identifier "NVIDIA Card"
Driver "nvidia"
Option "NoLogo" "True"
Option "TripleBuffer" "True" # Pour une meilleure fluidité
Option "ModeDebug" "True" # Pour diagnostiquer les erreurs du GPU
EndSection
Optimiser Xorg pour NVIDIA

Activer le GPU Scheduling (nvidia-smi)

Utilisez l’outil nvidia-smi pour ajuster les paramètres de votre GPU en fonction de vos besoins. Pour basculer le GPU en mode de performances maximales :

nvidia-smi -pm 1          # Activer le mode de gestion de puissance
nvidia-smi -pl <watts> # Limiter la puissance maximale en watts

Utiliser Vulkan pour les jeux compatibles

Vulkan est souvent plus performant qu’OpenGL pour les jeux et applications compatibles. Assurez-vous d’avoir installé les paquets vulkan-tools et vulkan-utils, et configurez les jeux pour utiliser l’API Vulkan.

Monitorer les performances et ajuster si nécessaire

Utilisez nvidia-smi pour surveiller l’utilisation du GPU, la température, et la fréquence. Cela peut vous aider à identifier les goulots d’étranglement et à ajuster les paramètres pour une performance optimale.

Vous pouvez aussi utiliser l’utilitaire glxgears pour mesurer les FPS de votre carte graphique.
Si glxgears bloque à 60 fps, lancez le avec la variable suivante :

__GL_SYNC_TO_VBLANK=0 glxgears
glxgears : mesurer les performances en FPS de votre carte graphique sur Linux

Utiliser les paramètres d’overclocking avec précaution

Si votre GPU le permet, vous pouvez overclocker pour améliorer les performances :

  • Ajoutez Option "Coolbits" "28" dans votre configuration Xorg.
  • Utilisez nvidia-settings pour ajuster la fréquence d’horloge et de mémoire. Attention, l’overclocking peut causer des surchauffes, alors assurez-vous que votre système est bien refroidi.
Section "Device"
    Identifier "NVIDIA Card"
    Driver "nvidia"
    Option "NoLogo" "True"
    Option "Coolbits" "28" # Pour activer l'overclocking et le réglage de la  vitesse des ventilateurs
    Option "TripleBuffer" "True" # Pour une meilleure fluidité
    Option "ModeDebug" "True" # Pour diagnostiquer les erreurs du GPU
EndSection