Ceci est une ancienne révision du document !
L'utilisation exclusive 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é comme le rendu 3D ou le machine learning.
Le GPU et les périphériques associés (contrôleurs audio, usb et série) présent sur l' hôte sont dédiés à l'usage exclusif de la VM : le système invité peut alors les piloter directement.
Pour que cela soit possible, le PCI passthrough doit être supporté matériellement :
C'est dans le BIOS de l’hôte qu'il faudra activer ces options.
Pour vérifier que les options de virtualisation nécessaires sont présentes sur le CPU de l’hôte :
Via la commande lscpu :
lscpu | grep "Virtualisation"
La commande doit retourner :
Virtualisation: VT-x # Intel Virtualisation: AMD-V # AMD
Via le fichier /proc/cpuinfo :
# La commande doit retourner une valeur supérieure à 0 egrep -c '(vmx|svm)' /proc/cpuinfo
Le service libvirt doit être actif et l'utilisateur doit appartenir au groupe libvirt :
Déterminer l'ID du GPU et des périphériques associés au même groupe IOMMU.
# Lister les périphérique PCI en affichant leurs IDs (ID Vendor:ID Device) et le groupe IOMMU lspci -nn -vmm
Dans l'exemple ci-dessous, un extrait du retour de la commande lspci. La carte graphique 10de:2786 et le contrôleur audio 10de:22bc font parti du même groupe IOMMU, ils seront donc paramétrés ensemble en accès direct
... Slot: 01:00.0 Class: VGA compatible controller [0300] Vendor: NVIDIA Corporation [10de] Device: AD104 [GeForce RTX 4070] [2786] SVendor: Gigabyte Technology Co., Ltd [1458] SDevice: Device [40ed] Rev: a1 ProgIf: 00 IOMMUGroup: 13 Slot: 01:00.1 Class: Audio device [0403] Vendor: NVIDIA Corporation [10de] Device: AD104 High Definition Audio Controller [22bc] SVendor: Gigabyte Technology Co., Ltd [1458] SDevice: Device [40ed] Rev: a1 ProgIf: 00 IOMMUGroup: 13 ...
Les identifiants correctement déterminés, on peut à présent interdire à l’hôte d'utiliser directement le matériel et le lier au pilote VFIO
Affiche les pilotes utilisés par l’hôte avant modification :
lspci -kd 10de:2786 01:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070] (rev a1) Subsystem: Gigabyte Technology Co., Ltd Device 40ed Kernel driver in use: nvidia Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
Mise à jour de grub:
Mettre à jour la valeur
# Mettre à jour la variable sans écraser le contenu existant
update-grub systemctl reboot