Outils pour utilisateurs

Outils du site


sysadmin:linux:virtualisation:kvm:configurer-gpu-passthrough

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
sysadmin:linux:virtualisation:kvm:configurer-gpu-passthrough [2025/12/30 12:58] yoannsysadmin:linux:virtualisation:kvm:configurer-gpu-passthrough [2026/01/03 16:09] (Version actuelle) yoann
Ligne 7: Ligne 7:
 ====== KVM : Activer le GPU passthrough ====== ====== KVM : Activer le GPU passthrough ======
  
-L'usage direct du GPU de l'hôte par la VM (**GPU passthrough**) permet d'obtenir le plus haut niveau de performance exigé par certaines applications s'exécutant sur un système virtualisé ayant besoin d'exploiter au maximum les capacités du GPU comme le rendu 3D ou le machine learning.+L'usage direct du GPU présent sur la carte vidéo additionnelle de l'hôte par une VM (**GPU passthrough**) permet d'obtenir le plus haut niveau de performance exigé par certaines applications s'exécutant sur un système virtualisé ayant besoin d'exploiter au maximum les capacités du GPU comme le rendu 3D ou le machine learning.
  
-Le GPU et les contrôleurs intégrés à la carte graphique de l'hôte (contrôleur audio, parfois usb et série)  seront dédiés à l'usage exclusif de la VM : le système invité les pilote directement.+Le GPU et les contrôleurs intégrés à la carte graphique additionnelle de l'hôte (contrôleur audio, parfois usb et série)  seront dédiés à l'usage exclusif de la VM : le système invité les pilotera directement.
  
 <note> <note>
-Dans ce mode de fonctionnement, l'affichage sur l’hôte sera alors assuré par une autre carte vidéo : le plus souvent la carte intégrée à la carte mère.  +Dans ce mode de fonctionnement, l'affichage sur l’hôte sera alors assuré par une autre carte vidéo : le plus souvent la carte intégrée à la carte mère.
 </note> </note>
  
Ligne 66: Ligne 66:
  
 ===== Configuration de l’hôte ===== ===== Configuration de l’hôte =====
 +
 +
  
 ==== Rechercher l'ID matériel et le groupe IOMMU ==== ==== Rechercher l'ID matériel et le groupe IOMMU ====
  
 <note> <note>
-Afin qu'il puisse être correctement assigné à la VM, le périphérique et tous ceux qui partagent le même groupe IOMMU doivent avoir leur pilote remplacé par le pilote VFIO afin qu'il ne soient pas utilisés par l’hôte.+Afin qu'il puisse être correctement assigné et utilisé par la VM, le GPU et les périphériques partageant le même groupe IOMMU doivent avoir leur pilote remplacé par le pilote VFIO afin qu'il ne soient pas utilisés par l’hôte.
 </note> </note>
  
Ligne 163: Ligne 165:
  
 <note> <note>
-Si après redémarrage, l'affichage reste noir sur l' écran du système hôte c'est bon signe : il faut penser à connecter l'écran sur la sortie vidéo de la carte intégrée car la carte vidéo dédiée n'est plus directement utilisée par l’hôte.+Si après redémarrage, l'affichage reste noir sur l' écran du système hôte c'est bon signe : il faut penser à connecter l'écran sur la sortie vidéo de la carte intégrée car la carte vidéo additionnelle n'est plus directement exploitée par l’hôte.
 </note> </note>
  
Ligne 181: Ligne 183:
  
 <note> <note>
-Si après redémarrage les pilotes vfio ne sont pas utilisés, confère section [[sysadmin:linux:virtualisation:kvm:configurer-gpu-passthrough#gpu_hote_non_isole|dépannage : GPU  hôte non isolé]].+Si après redémarrage l'affichage n'a pas basculé et les pilotes vfio ne sont pas utilisés, confère section [[sysadmin:linux:virtualisation:kvm:configurer-gpu-passthrough#gpu_hote_non_isole|dépannage : GPU  hôte non isolé]].
 </note> </note>
 +
 +
 +==== Vérifier les logs ====
 +
 +Une fois que l’affichage de l’hôte fonctionne avec la carte intégrée et que la carte additionnelle utilise les pilotes VFIO, le paramétrage coté l’hôte est terminé.
 +
 +Vérifier cependant les **logs** et les **services** système. Dans le cas présent :
 +  * La command ''systemctl status'' retourne un état "dégradé" car le service ''nvidia-persistenced.service'' est en faute.
 +  * De nombreux messages sont générés en permanence dans le journal système et son occupation disque croit rapidement.
 +
 +Exemple de messages :
 +
 +<file>
 +déc. 30 13:19:56 juggernaut kernel: NVRM: No NVIDIA devices probed.
 +déc. 30 13:19:56 juggernaut kernel: nvidia-nvlink: Unregistered Nvlink Core, major device number 507
 +déc. 30 13:19:56 juggernaut (udev-worker)[3044]: nvidia: Process '/sbin/modprobe nvidia-modeset' failed with exit code 1.
 +déc. 30 13:19:56 juggernaut kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 507
 +déc. 30 13:19:56 juggernaut kernel: NVRM: GPU 0000:01:00.0 is already bound to vfio-pci.
 +déc. 30 13:19:56 juggernaut kernel: NVRM: The NVIDIA probe routine was not called for 1 device(s).
 +déc. 30 13:19:56 juggernaut kernel: NVRM: This can occur when another driver was loaded and 
 +                                     NVRM: obtained ownership of the NVIDIA device(s).
 +déc. 30 13:19:56 juggernaut kernel: NVRM: Try unloading the conflicting kernel module (and/or
 +                                     NVRM: reconfigure your kernel without the conflicting
 +                                     NVRM: driver(s)), then try loading the NVIDIA kernel module
 +                                     NVRM: again.
 +</file>
 +
 +
 +Comme la carte n'est plus utilisée directement par l’hôte, on désinstalle les pilotes propriétaire nvidia :
 +
 +<code bash>
 +# Lister les paquets installés
 +apt list --installed | grep nvidia
 +
 +# Suppression des paquets installés
 +apt remove --purge nvidia-*
 +apt autoremove --purge
 +</code>
 +
 +
  
 ===== Configuration de la VM ===== ===== Configuration de la VM =====
Ligne 254: Ligne 296:
 </note> </note>
  
- 
-===== Dépannage ===== 
- 
- 
-Après redémarrage, le service ''nvidia-persistenced.service'' est en erreur et génère de nombreux messages de la forme suivante dans les journaux système : 
- 
-<file> 
-déc. 30 13:19:56 juggernaut kernel: NVRM: No NVIDIA devices probed. 
-déc. 30 13:19:56 juggernaut kernel: nvidia-nvlink: Unregistered Nvlink Core, major device number 507 
-déc. 30 13:19:56 juggernaut (udev-worker)[3044]: nvidia: Process '/sbin/modprobe nvidia-modeset' failed with exit code 1. 
-déc. 30 13:19:56 juggernaut kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 507 
-déc. 30 13:19:56 juggernaut kernel: NVRM: GPU 0000:01:00.0 is already bound to vfio-pci. 
-déc. 30 13:19:56 juggernaut kernel: NVRM: The NVIDIA probe routine was not called for 1 device(s). 
-déc. 30 13:19:56 juggernaut kernel: NVRM: This can occur when another driver was loaded and  
-                                     NVRM: obtained ownership of the NVIDIA device(s). 
-déc. 30 13:19:56 juggernaut kernel: NVRM: Try unloading the conflicting kernel module (and/or 
-                                     NVRM: reconfigure your kernel without the conflicting 
-                                     NVRM: driver(s)), then try loading the NVIDIA kernel module 
-                                     NVRM: again. 
- 
-</file> 
- 
- 
-Désactiver le service : 
-<code bash> 
-systemctl stop nvidia-persistenced.service 
-systemctl disable nvidia-persistenced.service 
-</code> 
  
 ===== Références ===== ===== Références =====
  
-  * https://infotechys.com/gpu-passthrough-on-kvm/ +  * [[https://infotechys.com/gpu-passthrough-on-kvm/| Paramétrer l'accès direct au GPU pour les VMs KVM (infotechys.com) (en)]] 
-  * https://github.com/HarbourHeading/KVM-GPU-Passthrough?tab=readme-ov-file +  * [[https://github.com/HarbourHeading/KVM-GPU-Passthrough?tab=readme-ov-file| Paramétrer l'accès direct CPU et GPU pour une VM KVM (github.com) (en)]] 
-  * https://www.informatiweb.net/tutoriels/informatique/bios/activer-iommu-ou-vt-d-dans-le-bios.html +  * [[https://www.informatiweb.net/tutoriels/informatique/bios/activer-iommu-ou-vt-d-dans-le-bios.html|Activer les options de virtualisation dans le BIOS UEFI (informatiweb.net) ]] 
-  * https://itsfoss.gitlab.io/blog/how-to-enable-iommu-vt-d-from-the-bios-uefi-firmware-of-your-motherboard/ +  * [[https://itsfoss.gitlab.io/blog/how-to-enable-iommu-vt-d-from-the-bios-uefi-firmware-of-your-motherboard/|Activer les options de virtualisation dans le BIOS UEFI (itsfoss.gitlab.io) (en)]] 
-  * https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit+  * [[https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit|Le composant matériel IOMMU (wikipedia.org) (en) ]]
   * https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#Isolating_the_GPU   * https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#Isolating_the_GPU
 +  * [[https://www.baeldung.com/linux/nvidia-gpu-enable-disable | Comment activer ou désactiver le GPU (baeldung.com) (en)]]
sysadmin/linux/virtualisation/kvm/configurer-gpu-passthrough.1767099509.txt.gz · Dernière modification : 2025/12/30 12:58 de yoann