Qu’est-ce que le passthrough GPU Hyper-V dans Windows 10 et Windows 11 ?
Le passthrough GPU consiste à donner à une machine virtuelle un accès direct ou quasi direct à une carte graphique physique installée dans le PC hôte. Au lieu de dépendre uniquement de l’adaptateur d’affichage virtuel basique de Hyper-V, le système invité peut utiliser l’accélération matérielle pour le rendu 3D, l’encodage vidéo, les charges CUDA ou DirectX, les sessions de bureau à distance, le jeu léger, les outils d’IA et les applications graphiques exigeantes.
Dans Hyper-V, l’expression « passthrough GPU » est souvent utilisée pour deux technologies différentes : Discrete Device Assignment (DDA), qui attribue un GPU PCIe entier à une seule VM, et le partitionnement GPU (GPU-P), qui expose une partition du GPU de l’hôte au système invité. Sur les systèmes clients Windows 10 et Windows 11, la méthode pratique que la plupart des utilisateurs particuliers et workstation essaient est GPU-P, et non le vrai DDA de type serveur.
Raisons courantes d’attacher un GPU à une VM Hyper-V
- Exécuter un logiciel qui refuse de démarrer avec l’adaptateur d’affichage Hyper-V de base.
- Activer DirectX, OpenGL, Vulkan, CUDA ou le décodage vidéo matériel dans une VM.
- Tester des pilotes graphiques, des lanceurs de jeux, des outils de rendu ou des éditeurs vidéo de façon isolée.
- Utiliser l’accélération GPU via une session améliorée, RDP, Parsec, Sunshine/Moonlight ou une autre pile d’affichage distant.
- Créer une VM jetable pour des essais sans installer d’outils lourds sur le système hôte.
Prise en charge du passthrough GPU Hyper-V : DDA ou GPU-P sous Windows 10/11
Avant de modifier les paramètres d’une VM, il faut comprendre les limites de prise en charge. Microsoft documente Discrete Device Assignment comme une technologie Windows Server permettant d’attribuer directement à une VM des périphériques PCIe pris en charge, y compris des cartes graphiques et des périphériques NVMe. Dans les recommandations de dépannage récentes de Microsoft, DDA et GPU-P sont présentés comme des scénarios de classe serveur ; le matériel de bureau et les systèmes clients Windows 10/11 ne sont pas la cible prise en charge pour ces workflows d’attribution GPU d’entreprise.
| Technologie | Fonctionnement | Meilleur cas d’utilisation | Réalité sous Windows 10/11 client |
|---|---|---|---|
| DDA | Transmet un GPU PCIe entier à une VM. L’hôte perd l’usage normal de ce GPU pendant qu’il est attribué. | Hôtes Windows Server, VM de confiance, matériel dédié, charges d’entreprise. | Ce n’est pas un scénario client PC normalement pris en charge. Il exige du matériel compatible, un firmware adapté, ACS/IOMMU et des décisions de sécurité prudentes. |
| GPU-P | Crée une partition GPU et l’attache à une VM Génération 2 avec PowerShell. | Partager une partie du GPU hôte avec une VM pour l’accélération. | Souvent utilisé de manière expérimentale sous Windows 10/11 Pro ou Enterprise, mais les changements de pilote et de mise à jour peuvent le casser. |
| RemoteFX vGPU | Ancienne technologie de GPU virtuel. | Uniquement anciens environnements Windows Server/Hyper-V. | Ne l’utilisez pas. RemoteFX vGPU a été supprimé à cause de problèmes de sécurité. |
Prérequis pour le partitionnement GPU Hyper-V sous Windows 10 et 11
Le partitionnement GPU dépend fortement du matériel, des pilotes et de la configuration exacte de la VM. Avant d’exécuter des commandes PowerShell, vérifiez chaque exigence ci-dessous.
Prérequis du PC hôte
- Édition de Windows : Windows 10 Pro, Enterprise ou Education ; Windows 11 Pro, Enterprise ou Education. Hyper-V n’est pas inclus par défaut dans les éditions Home.
- Hyper-V activé : la plateforme Hyper-V et les outils de gestion doivent être installés.
- Virtualisation matérielle : Intel VT-x/VT-d ou AMD-V/AMD-Vi doit être activé dans le BIOS/UEFI.
- Pilote GPU moderne : installez le dernier pilote stable NVIDIA, AMD ou Intel sur l’hôte avant de configurer la VM.
- Ressources suffisantes : au moins 16 Go de RAM sont recommandés si l’hôte et l’invité exécutent tous deux des charges graphiques lourdes.
Prérequis de la machine virtuelle
- VM Génération 2 : utilisez une machine virtuelle Hyper-V basée sur UEFI.
- OS invité : Windows 10 ou Windows 11 est la cible la plus simple. Les scénarios GPU-P Linux sont plus limités et dépendent davantage des pilotes.
- Mémoire dynamique désactivée : utilisez une allocation mémoire fixe pour une meilleure stabilité.
- Point de contrôle créé : créez un checkpoint avant d’ajouter l’adaptateur GPU.
- PowerShell administrateur : toutes les commandes côté hôte doivent être exécutées dans une console PowerShell élevée.
Activer Hyper-V s’il n’est pas installé
Ouvrez PowerShell en tant qu’administrateur et exécutez :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Redémarrez Windows lorsque cela est demandé. Après le redémarrage, ouvrez le Gestionnaire Hyper-V depuis le menu Démarrer.
Préparer la VM Hyper-V avant d’ajouter le GPU
La VM doit être arrêtée et configurée de façon cohérente avant d’attacher un adaptateur de partition GPU. N’exécutez pas ces commandes lorsque la VM est en état enregistré.
Étape 1 : définir la variable du nom de la VM
Remplacez Win11-GPU par le nom exact de votre machine virtuelle :
$vm = "Win11-GPU"
Étape 2 : éteindre la VM
Stop-VM -Name $vm -TurnOff
Étape 3 : désactiver les checkpoints automatiques et la mémoire dynamique
Set-VM -Name $vm -AutomaticCheckpointsEnabled $false
Set-VMMemory -VMName $vm -DynamicMemoryEnabled $false -StartupBytes 8GB
Étape 4 : configurer le cache et les paramètres MMIO
Ces paramètres sont souvent utilisés lors de l’attachement de ressources GPU à des VM Hyper-V. Ils aident l’invité à mapper correctement la mémoire du périphérique.
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
Comment activer le partitionnement GPU dans Hyper-V avec PowerShell
La commande centrale de GPU-P est Add-VMGpuPartitionAdapter. Elle ajoute un adaptateur virtuel de partition GPU à la VM sélectionnée. Sur de nombreux systèmes, Hyper-V choisit automatiquement le GPU partitionnable disponible. Si la commande échoue, votre matériel, votre pilote, votre build Windows ou l’ensemble de fonctionnalités Hyper-V peut ne pas exposer correctement GPU-P.
Étape 1 : vérifier la présence d’un GPU partitionnable
Get-VMHostPartitionableGpu
Si la commande renvoie des informations GPU, l’hôte expose au moins un GPU que Hyper-V voit comme partitionnable. Si elle ne renvoie rien, mettez à jour le pilote GPU, installez toutes les mises à jour Windows, redémarrez et vérifiez les paramètres de virtualisation du BIOS.
Étape 2 : ajouter l’adaptateur de partition GPU
Add-VMGpuPartitionAdapter -VMName $vm
Étape 3 : définir éventuellement des limites de ressources GPU
Certaines configurations permettent de définir des valeurs minimales, maximales et optimales pour la VRAM, l’encodage, le décodage et les ressources de calcul. Le comportement exact dépend du GPU et du pilote.
Set-VMGpuPartitionAdapter -VMName $vm `
-MinPartitionVRAM 80000000 `
-MaxPartitionVRAM 1000000000 `
-OptimalPartitionVRAM 1000000000 `
-MinPartitionEncode 80000000 `
-MaxPartitionEncode 1000000000 `
-OptimalPartitionEncode 1000000000 `
-MinPartitionDecode 80000000 `
-MaxPartitionDecode 1000000000 `
-OptimalPartitionDecode 1000000000 `
-MinPartitionCompute 80000000 `
-MaxPartitionCompute 1000000000 `
-OptimalPartitionCompute 1000000000
Étape 4 : démarrer la VM
Start-VM -Name $vm
À ce stade, Windows dans la VM peut détecter un périphérique lié au GPU, mais l’accélération matérielle ne fonctionne généralement pas correctement tant que l’invité n’a pas accès aux fichiers de pilote correspondants.
Copier les fichiers du pilote GPU de l’hôte vers l’invité Hyper-V
GPU-P dépend fortement de la présence, côté invité, de composants de pilote correspondant au pilote de l’hôte. L’approche manuelle courante consiste à copier le dossier de pilote nécessaire depuis l’hôte vers la VM, puis à installer le package de pilote GPU normal dans l’invité si nécessaire.
Trouver le dossier du pilote sur l’hôte
Sur l’hôte, ouvrez l’Explorateur de fichiers et vérifiez :
C:\Windows\System32\DriverStore\FileRepository
Recherchez les dossiers liés au fournisseur de votre GPU, par exemple :
nv_dispi.inf_amd64_...ou un nom similaire pour les pilotes NVIDIA.u*.inf_amd64_...,amdwddmg.inf_amd64_...ou un nom similaire pour les pilotes AMD.iigd_dch.inf_amd64_...ou un nom similaire pour les pilotes graphiques Intel.
Copier les fichiers du pilote dans la VM
Il existe plusieurs façons de transférer le dossier :
- Utiliser le copier-coller du mode Session améliorée.
- Attacher un VHDX temporaire à la VM et copier les fichiers par son intermédiaire.
- Utiliser un partage réseau si le réseau est activé et fiable.
- Monter le disque de la VM hors ligne depuis l’hôte, copier les fichiers, puis le détacher en toute sécurité.
Un emplacement cible courant dans l’invité est :
C:\Windows\System32\HostDriverStore\FileRepository
Comment vérifier l’accélération GPU dans la VM Hyper-V
Après le démarrage de la VM, connectez-vous à l’invité et vérifiez si Windows voit le chemin d’accélération GPU.
Vérifier le Gestionnaire de périphériques
- Dans la VM, appuyez sur Win + X et ouvrez le Gestionnaire de périphériques.
- Développez Cartes graphiques.
- Recherchez votre GPU ou un périphérique de partition GPU au lieu du seul Microsoft Basic Display Adapter.
- S’il y a une icône d’avertissement, ouvrez les propriétés du périphérique et vérifiez le code d’erreur.
Vérifier l’outil de diagnostic DirectX
- Appuyez sur Win + R, tapez
dxdiaget appuyez sur Entrée. - Ouvrez l’onglet Affichage.
- Vérifiez si l’accélération Direct3D est activée et si le nom du GPU apparaît correctement.
Vérifier le Gestionnaire des tâches
Ouvrez le Gestionnaire des tâches dans la VM, allez dans Performances et recherchez une activité GPU. Lancez ensuite une application utilisant le GPU, par exemple un navigateur avec accélération matérielle, un encodeur vidéo, un benchmark 3D ou un outil de rendu.
dxdiag
Get-PnpDevice -Class Display
Passthrough GPU complet avec Discrete Device Assignment : exigences principales
Discrete Device Assignment est l’équivalent Hyper-V le plus proche du passthrough PCIe traditionnel. Il retire le périphérique de l’hôte et le monte dans une VM. Pour les GPU, cela peut offrir une isolation plus forte et un accès plus complet au périphérique que GPU-P, mais les exigences et les risques sont également plus élevés.
Exigences DDA en pratique
- Hôte Windows Server Hyper-V, et non un hôte de bureau Windows 10/11 typique.
- Carte mère et firmware de classe serveur avec comportement PCIe ACS/IOMMU correct.
- GPU pris en charge par le fabricant pour DDA ou pour les scénarios de virtualisation d’entreprise.
- Deuxième GPU ou chemin de gestion à distance pour l’hôte, car le GPU attribué devient indisponible pour l’hôte.
- VM invitée de confiance, car DDA expose tout le périphérique à l’invité.
- Pas de mémoire dynamique, pas d’enregistrement/restauration de la VM et pas de migration dynamique ordinaire pendant que le périphérique est attaché.
Flux de commandes DDA typique
Les commandes suivantes montrent le flux conceptuel. Elles ne sont pas recommandées sur du matériel de bureau quelconque sans confirmation de compatibilité et sans plan de récupération.
$vm = "Server-GPU-VM"
$locationPath = "PCIROOT(...)#PCI(...)#PCI(...)"
Stop-VM -Name $vm -TurnOff
Set-VM -Name $vm -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 3GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280MB -VMName $vm
Disable-PnpDevice -InstanceId "PCI\VEN_..." -Confirm:$false
Dismount-VMHostAssignableDevice -LocationPath $locationPath -Force
Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm
Start-VM -Name $vm
Le passthrough GPU Hyper-V ne fonctionne pas : problèmes courants et solutions
Get-VMHostPartitionableGpu ne renvoie rien
- Installez le dernier pilote GPU stable sur l’hôte.
- Installez toutes les mises à jour Windows et redémarrez.
- Vérifiez les paramètres BIOS/UEFI liés à la virtualisation, VT-d, IOMMU et SR-IOV si disponible.
- Assurez-vous que Hyper-V est activé, et pas seulement la plateforme de machine virtuelle.
- Essayez une autre branche de pilote GPU si une mise à jour récente a cassé la détection.
La VM démarre mais affiche Microsoft Basic Display Adapter
- Copiez de nouveau les fichiers de pilote correspondants de l’hôte vers l’invité.
- Installez le pilote GPU du fournisseur dans l’invité si l’installateur l’autorise.
- Redémarrez l’invité, puis l’hôte si le périphérique ne s’initialise toujours pas.
- Supprimez puis ajoutez de nouveau l’adaptateur de partition GPU.
Le Gestionnaire de périphériques affiche le code 43
Le code 43 signifie généralement que le pilote n’a pas réussi à initialiser le GPU dans l’environnement virtualisé. Utilisez des fichiers de pilote hôte et invité correspondants, évitez les pilotes très anciens et testez avec une VM Génération 2 fraîche. Certaines combinaisons de GPU grand public et de pilotes ne fonctionnent tout simplement pas de manière fiable avec GPU-P.
La VM se fige ou affiche un écran noir
- Arrêtez la VM depuis le Gestionnaire Hyper-V et supprimez l’adaptateur GPU.
- Augmentez la RAM attribuée et les valeurs MMIO.
- Désactivez la mémoire dynamique.
- Connectez-vous d’abord avec une autre méthode d’affichage, par exemple VMConnect de base, puis RDP ou Parsec après le chargement des pilotes.
Supprimer l’adaptateur de partition GPU
Si la VM devient instable, supprimez l’adaptateur depuis une fenêtre PowerShell élevée sur l’hôte :
Stop-VM -Name $vm -TurnOff
Remove-VMGpuPartitionAdapter -VMName $vm
Start-VM -Name $vm
Avantages, limites et alternatives au passthrough GPU Hyper-V
✓ Avantages
- Permet à une VM d’utiliser une vraie accélération GPU au lieu du seul adaptateur d’affichage virtuel basique.
- Utile pour tester des applications graphiques, navigateurs, outils vidéo et logiciels sensibles aux pilotes.
- GPU-P peut permettre à l’hôte et à la VM de partager le même GPU physique.
- Inutile d’installer un deuxième hyperviseur si Hyper-V fait déjà partie de votre workflow.
- Fonctionne bien pour les essais lorsque le matériel et les pilotes sont compatibles.
✗ Limites
- Ce n’est pas une fonction grand public entièrement prise en charge sur les hôtes clients Windows 10/11.
- Les mises à jour de pilotes peuvent casser la configuration.
- Les performances ne sont pas toujours égales à un accès GPU bare metal.
- Les systèmes anti-triche, DRM et certains jeux peuvent refuser les environnements virtualisés.
- DDA exige du matériel de classe serveur et peut retirer le GPU du contrôle de l’hôte.
Alternatives au passthrough GPU Hyper-V
| Alternative | Idéal pour | Remarques |
|---|---|---|
| Exécuter la charge sur l’hôte | Jeux, éditeurs vidéo, applications 3D | Solution la plus fiable et la plus performante. |
| Windows Sandbox avec vGPU | Tests logiciels jetables | Simple, mais peu adapté aux charges GPU lourdes et persistantes. |
| Accélération GPU WSL 2 | IA, ML, CUDA et développement Linux | Souvent mieux prise en charge qu’une VM GUI complète pour les charges de développement. |
| Accélération 3D VMware / VirtualBox | Accélération de bureau 3D basique | Ce n’est pas équivalent à un passthrough GPU direct, mais c’est plus simple pour les besoins GUI légers. |
| DDA sous Windows Server | Charges GPU d’entreprise dédiées | Utilisez du matériel pris en charge et la documentation du fournisseur. |
Questions fréquentes sur le passthrough GPU Hyper-V
Q Puis-je faire passer mon GPU NVIDIA GeForce ou AMD Radeon dans Hyper-V sous Windows 11 Pro ? ▼
Q GPU-P est-il identique au passthrough GPU complet ? ▼
Q Ai-je besoin d’un deuxième GPU ? ▼
Q Cela améliorera-t-il les performances de jeu dans une VM Hyper-V ? ▼
Q Pourquoi le passthrough GPU a-t-il cessé de fonctionner après une mise à jour du pilote ? ▼
Q Puis-je utiliser RemoteFX vGPU à la place ? ▼
🧩 Résumé : la meilleure façon d’utiliser un GPU dans Hyper-V sous Windows 10/11
Sur les hôtes clients Windows 10 et Windows 11, l’approche la plus pratique est le partitionnement GPU avec Add-VMGpuPartitionAdapter. Il peut donner à une VM Windows Génération 2 accès à l’accélération GPU, mais il faut le traiter comme une configuration avancée et sensible aux pilotes, et non comme une fonction grand public garantie.
Pour un passthrough GPU complet de niveau production, utilisez Windows Server Hyper-V avec Discrete Device Assignment, du matériel de classe serveur, des GPU pris en charge par le fournisseur et un modèle de VM de confiance. Pour un usage quotidien, commencez toujours par une VM de test, créez un checkpoint, notez la version du pilote qui fonctionne et prévoyez un chemin de récupération avant de modifier les paramètres GPU ou Hyper-V.