-
Qu'est-ce que le passage GPU Proxmox ?
-
Conditions préalables pour le passage direct GPU sur Proxmox
-
Comment configurer le passage GPU sur Proxmox ?
-
N'oubliez pas de sauvegarder votre machine virtuelle !
-
Proxmox GPU Passthrough FAQs
-
Conclusion
Le passage direct de GPU permet à une machine virtuelle d'accéder directement à un GPU physique. Cela améliore les performances pour les tâches de calcul ou graphiques. Cet article montre comment configurer le passage direct de GPU sur Proxmox VE.
Qu'est-ce que le passage GPU Proxmox ?
Le passage GPU lie un GPU hôte à une machine virtuelle via VFIO. Le noyau hôte détache le GPU et le transmet à l'invité. Cela offre des performances proches du natif. Proxmox VE utilise les modules KVM et VFIO pour gérer cette liaison. Vous devez vérifier la prise en charge matérielle et configurer IOMMU. Prévoyez d'ajuster le BIOS et le noyau afin que l'hôte accorde un contrôle exclusif à la machine virtuelle.
Conditions préalables pour le passage direct GPU sur Proxmox
Avant de commencer, vérifiez la prise en charge du processeur, de la carte mère, du BIOS et du GPU. Le processeur doit prendre en charge IOMMU : Intel VT-d ou AMD-Vi. Le BIOS doit activer ces options ainsi que le décodage 4G ou le décodage au-dessus de 4G.
Avertissement : Le fait de passer par le GPU principal de l'hôte peut rendre ce dernier inaccessible sans accès hors bande tel qu'IPMI ou KVM-sur-IP. Certains systèmes nécessitent la désactivation du mode CSM/démarrage hérité si vous transférez le seul GPU utilisé pour la console de l'hôte. Pour les machines virtuelles UEFI, le BIOS du GPU doit prendre en charge UEFI GOP ; sinon SeaBIOS fonctionne mais limite les fonctionnalités. Chargez les modules VFIO : vfio, vfio_pci, vfio_iommu_type1 (et vfio_virqfd sur d'anciennes versions de Proxmox). Vérifiez que les groupes IOMMU isolent le GPU et son audio ; évitez de les partager avec des périphériques critiques. Utilisez l'API Proxmox ou la commande lspci -nnk pour examiner les groupes.
Attention concernant la substitution ACS
Certains matériels ne disposent pas d'un regroupement ACS adéquat. Vous pouvez ajouter pcie_acs_override=downstream ou utiliser vfio_iommu_type1.allow_unsafe_interrupts=1. À n'utiliser que si nécessaire. La substitution ACS peut introduire des risques de sécurité ou de stabilité. Privilégiez un matériel disposant d'une isolation native.
Comment configurer le passage GPU sur Proxmox ?
1. Configuration de l'hôte
Tout d'abord, activez IOMMU dans le BIOS ou UEFI. Activez « Intel VT-d » ou « AMD IOMMU » et « Décodage au-dessus de 4G » si disponible. Désactivez CSM si vous utilisez UEFI pour la console hôte sur le GPU. Redémarrez dans Proxmox VE.
Modifiez GRUB en toute sécurité. Pour Intel, exécutez :
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& intel_iommu=on iommu=pt/' /etc/default/grub
Pour AMD, exécutez :
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& amd_iommu=on iommu=pt/' /etc/default/grub
Si une substitution ACS est nécessaire, ajoutez pcie_acs_override=downstream après un espace. Ensuite, exécutez update-grub et redémarrez. Vérifiez l'activation de l'IOMMU : cat /proc/cmdline | grep iommu et dmesg | grep -e DMAR -e AMD-Vi. Vous devriez voir le remappage des interruptions activé.
2. Charger et mettre en liste noire les modules
Créez un fichier modprobe dédié pour VFIO :
echo -e "vfio\nvfio_pci\nvfio_iommu_type1" > /etc/modules-load.d/vfio.conf
Sur les anciennes versions de Proxmox, chargez également vfio_virqfd. Excluez les pilotes GPU à l'aide de fichiers séparés. Pour NVIDIA :
echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nouveau.confecho "blacklist nvidiafb" > /etc/modprobe.d/blacklist-nvidia.conf
Pour AMD :
echo "blacklist amdgpu" > /etc/modprobe.d/blacklist-amdgpu.confecho "blacklist radeon" > /etc/modprobe.d/blacklist-radeon.conf
Pour Intel iGPU :
echo "blacklist i915" > /etc/modprobe.d/blacklist-i915.conf
Après la mise sur liste noire, régénérez l'initramfs : update-initramfs -u. Déboguez les problèmes d'initramfs : journalctl -b 0 | grep vfio. Redémarrez et vérifiez lsmod | grep vfio.
3. Vérifier le regroupement IOMMU
Exécutez :
pvesh get /nodes/<nodename>/hardware/pci --pci-class-blacklist ""
ou inspectez /sys/kernel/iommu_groups. Identifiez le groupe du GPU et de sa fonction audio. Assurez-vous qu'aucun périphérique critique ne partage ce groupe. Si le regroupement est trop large, utilisez la substitution ACS dans GRUB, puis redémarrez et vérifiez à nouveau. Confirmez les messages ACS dans les journaux : dmesg | grep ACS.
Utilisez lspci -tv pour mapper les périphériques aux sockets CPU. Cela permet d'optimiser la localité NUMA. Choisissez l'assignation du processeur hôte et celle de la machine virtuelle afin de les aligner sur le nœud NUMA du GPU.
4. Liaison du module hôte (avancé)
Si la liaison automatique échoue, spécifiez les ID dans la configuration VFIO :
echo "options vfio-pci ids=1234:5678,abcd:ef01" > /etc/modprobe.d/vfio-ids.conf
Remplacez par les identifiants du fournisseur : appareil à partir de lspci -nn. Ajoutez un softdep si nécessaire :
echo "softdep <drivername> pre: vfio-pci" > /etc/modprobe.d/<drivername>.conf
Mettez à jour initramfs et redémarrez. Confirmez que le GPU est lié à vfio-pci via lspci -nnk.
5. Configuration de la machine virtuelle
Sous Machine et firmware, choisissez le chipset q35. Pour UEFI, sélectionnez OVMF. Assurez-vous que la partition des variables firmware fait ≥1 Mo (Proxmox gère cela automatiquement). Vérifiez que le ROM du GPU prend en charge UEFI GOP. Sinon, utilisez SeaBIOS mais attendez-vous à des limitations.
Dans l'onglet Hardware de la machine virtuelle, cliquez sur Add, puis sur PCI Device. Sélectionnez l'adresse GPU (par exemple : 00:02.0). Cochez All Functions si l'audio est séparé. Activez PCIe (pcie=activé). Si c'est le seul GPU, cochez Primary GPU (x-vga=activé). Via l'interface en ligne de commande :
qm set <VMID> -machine q35 -hostpci0 01:00.0,pcie=on,x-vga=on
Pour multifonction :
qm set 100 -hostpci0 01:00.0,rombar=0 -hostpci1 01:00.1
Associez cette configuration à la machine virtuelle utilisée pour les tâches GPU.
6. Configuration du système d'exploitation invité
Installez le système d'exploitation invité normalement. Windows : chargez les pilotes GPU officiels ≥ version 465 pour NVIDIA afin d'éviter l'erreur Code 43. Masquez l'hyperviseur : ajoutez les arguments CPU :
args: -cpu 'host,kvm=off,hv_vendor_id=proxmox'
Si le pilote est verrouillé par le fabricant, extrayez le ROM du GPU ou modifiez les identifiants dans les paramètres avancés de la machine virtuelle. Sous Linux : installez les pilotes, testez CUDA/OpenCL ou des applications graphiques. Un moniteur local connecté au GPU ou une connexion RDP/VNC depuis l'invité est nécessaire ; la console Proxmox ne montrera pas la sortie graphique du GPU.
N'oubliez pas de sauvegarder votre machine virtuelle !
Pour garantir la protection de vos machines virtuelles Proxmox lors de la configuration du transfert direct de GPU ou de mises à jour futures, il est essentiel de disposer d'une solution de sauvegarde fiable. Vinchin Backup & Recovery est une solution professionnelle et de niveau entreprise pour la sauvegarde des machines virtuelles, prenant en charge Proxmox VE ainsi que d'autres plateformes leaders telles que VMware, Hyper-V, XenServer, oVirt, et bien d'autres. Grâce à des fonctionnalités telles que la sauvegarde sans agent, la sauvegarde incrémentielle basée sur CBT, la récupération instantanée et la planification automatique, Vinchin protège votre environnement virtuel Proxmox avec un effort minimal. Que vous exécutiez des charges de travail intensives en calcul ou des machines virtuelles accélérées par GPU, Vinchin garantit que vos données et configurations restent sécurisées et récupérables.
Pour sauvegarder votre machine virtuelle Proxmox, suivez quatre étapes liées à cette machine virtuelle :
1. Sélectionnez la machine virtuelle Proxmox à sauvegarder

2. Choisissez le stockage de sauvegarde

3. Configurer la stratégie de sauvegarde

4. Soumettre le travail

Vinchin bénéficie d'une base d'utilisateurs mondiale et de hautes évaluations. Obtenez dès maintenant un essai gratuit de 60 jours avec toutes les fonctionnalités.
Proxmox GPU Passthrough FAQs
Q1 : Comment vérifier la prise en charge IOMMU du processeur ?
A1 : Exécutez dmesg | grep -e DMAR -e AMD-Vi et recherchez l'activation du repositionnement des interruptions.
Q2 : Comment isoler un GPU dans un groupe IOMMU ?
A2 : Utilisez la substitution ACS uniquement si nécessaire : ajoutez pcie_acs_override=downstream à GRUB et redémarrez pour séparer les appareils.
Q3 : Comment accéder à l'affichage invité lorsque la console est vide ?
A3 : Connectez le moniteur à l'unité graphique ou configurez RDP/VNC dans le système d'exploitation invité.
Q4 : Pourquoi la GPU passée en l'état affiche-t-elle « Erreur 43 » ?
A4 : Masquer Hyper-V/KVM, utiliser les derniers pilotes, falsifier les ID du fabricant/de l'appareil ou extraire le ROM du GPU s'il est verrouillé.
Conclusion
Le passage direct du GPU sur Proxmox débloque des performances élevées pour les machines virtuelles. Effectuez les vérifications matérielles, les ajustements du BIOS et les modifications du noyau. Chargez les modules VFIO, isolez les groupes IOMMU et liez le GPU à VFIO. Configurez la machine virtuelle avec q35 et OVMF lorsque cela est possible. Ajustez l'assignation CPU et NUMA pour de meilleurs résultats. Résolvez les problèmes liés au code 43, aux bogues de réinitialisation et aux journaux. Sauvegardez toujours avant les modifications importantes. Vinchin propose des sauvegardes fiables pour protéger vos machines virtuelles et vos données.
Partager sur :