Transfert de GPU (vDGA) dans VMware : un guide complet

Dernière mise à jour: 14/01/2026
Auteur: Isaac
  • Le GPU passthrough (vDGA/VMDirectPath I/O) dans VMware mappe un GPU physique complet à une VM pour obtenir des performances quasi natives.
  • Son utilisation exige des conditions strictes de matériel (VT-d/AMD-V, IOMMU, MMIO 64 bits) et firmware EFI/UEFI sur la machine virtuelle.
  • L'activation de vDGA entraîne la perte de fonctionnalités clés de vSphere telles que vMotion, DRS et les snapshots sur la VM utilisant le GPU en mode passthrough.
  • Par rapport à vGPU et à d'autres solutions, vDGA privilégie les performances dédiées à la flexibilité et à la possibilité de partager le GPU entre plusieurs machines virtuelles.

vDGA GPU Passthrough sur VMware

Connexion directe d'un GPU physique à une machine virtuelle dans VMware C'est l'un de ces changements qui fait toute la différence lorsqu'on travaille avec des charges graphiques importantes. IA ou le rendu 3D. Passer d'une carte graphique émulée à un accès direct via le transfert direct (vDGA / VMDirectPath I/O) peut rapprocher les performances de la machine virtuelle de celles d'une machine physique, mais cela ajoute en contrepartie de nombreuses exigences et limitations qu'il convient de bien comprendre avant de commencer.

De plus, dans l'écosystème actuel, plusieurs façons d'utiliser le GPU dans des environnements virtualisés coexistent : Transfert direct dédié, vGPU partagé et technologies telles que BitFusion ou le partitionnement du GPUComprendre le rôle de chaque élément, ses cas d'utilisation et sa configuration dans vSphere/ESXi (ainsi que ses liens avec des technologies similaires comme Hyper-V DDA) est essentiel pour éviter de se retrouver dans une impasse matérielle ou avec la version d'hyperviseur choisie.

Qu'est-ce que le GPU passthrough (vDGA / VMDirectPath I/O) dans VMware ?

Le transfert direct du GPU dans VMware, également appelé vDGA ou VMDirectPath I/OIl s'agit d'un mode de fonctionnement dans lequel une carte graphique physique installée sur l'hôte ESXi est directement attribuée à une machine virtuelle. Au lieu d'utiliser une carte graphique émulée par l'hyperviseur, le système d'exploitation invité perçoit le GPU comme s'il était connecté à une carte mère physique.

Ce raccourci permet à la machine virtuelle de tirer parti toute la puissance de la puce graphique, sa mémoire vidéo et ses fonctionnalités avancées Des technologies telles que CUDA, OpenCL, Direct3D et OpenGL sont prises en charge nativement, avec une surcharge minimale de l'hyperviseur. Lors de tests en laboratoire chez VMware, une perte de performance d'environ 4 à 5 % est généralement constatée par rapport à l'exécution du même GPU directement sur le matériel.

En pratique, l'utilisation du transfert direct du GPU signifie que Cette carte est entièrement dédiée à une seule machine virtuelle.Il n'y a pas d'allocation fine des ressources entre plusieurs machines virtuelles, ni de couche logicielle tierce chargée sur ESXi pour partager la carte graphique, contrairement aux solutions vGPU telles que NVIDIA LA GRILLE.

Il est important de distinguer cette approche des autres manières d'utiliser les GPU dans la virtualisation, telles que GPU virtuel NVIDIA (GPU virtuel partagé), RemoteFX/partitionnement sur solutions de type Hyper-V ou BitFusion, qui visent à répartir un GPU ou un pool de GPU entre plusieurs machines avec différentes techniques de virtualisation ou de redirection à distance.

Lorsque nous parlons de vDGA dans l'univers VMware, nous décrivons essentiellement ceci : attribution directe du périphérique PCIe du GPU à la machine virtuelle utilisation de VMDirectPath I/O, avec tous les avantages (performances) et les inconvénients (mobilité et restrictions de haute disponibilité) que cela implique.

Architecture GPU VMDirectPath VMware

Avantages de l'utilisation du GPU passthrough dans vSphere

La principale raison du passage à vDGA est que Les performances graphiques et de calcul sont très proches de celles d'un ordinateur physique.En omettant une grande partie de la couche de virtualisation pour ce périphérique PCIe, les goulots d'étranglement typiques du GPU émulé disparaissent et la VM peut fonctionner avec des jeux, des applications 3D ou des moteurs d'IA de manière beaucoup plus fluide.

Cela est particulièrement visible dans les scénarios où les GPU intégrés ou la carte graphique virtuelle émulée par défaut sont loin d'être à la hauteur : Conception graphique avancée, CAO, modélisation et rendu 3D, montage vidéo, animation et développement de jeuxIl est également essentiel pour l'entraînement des modèles d'apprentissage automatique et des charges de travail d'IA qui reposent fortement sur CUDA ou des équivalents.

Un autre avantage indéniable réside dans la plus grande flexibilité d'utilisation du matériel au niveau du centre de données. Au lieu d'avoir un poste de travail physique par utilisateur ou par projetIl est possible de dédier un hôte ESXi de taille appropriée à plusieurs machines virtuelles, chacune avec son propre GPU en mode passthrough, et de jouer avec les planifications ou la demande de pointe.

Dans certains environnements, notamment si des serveurs avec des emplacements PCIe libres sont déjà disponibles, le coût par utilisateur ou par projet Cela peut s'avérer moins coûteux que l'entretien d'un parc de stations de travail physiques puissantes, surtout si la carte graphique n'est pas nécessaire 24 heures sur 24 et peut être reconfigurée en fonction des périodes de travail intense.

Enfin, il existe également un avantage indirect en termes de sécurité et d'exploitation : en maintenant les charges de travail graphiques au sein de machines virtuelles isoléesEn cas de problème (une faille de sécurité, un pilote problématique, une mauvaise configuration), il est plus facile d'en limiter l'impact, de revenir à un instantané précédent ou de restaurer à partir d'une sauvegarde, à condition que les limitations du mode passthrough, que nous verrons plus tard, soient respectées.

Transfert direct du GPU versus vGPU et autres alternatives

Dans l'écosystème VMware, il existe plusieurs façons d'utiliser une carte graphique, et toutes n'impliquent pas de la dédier entièrement à une seule machine virtuelle. Les plus connues sont : E/S vDGA / VMDirectPath, vGPU (NVIDIA GRID ou autres) et solutions d'accès/calcul à distance telles que BitFusion.

  Comment désactiver la saisie semi-automatique dans les navigateurs Web étape par étape

En mode de transmission directe (vDGA), le GPU est alloué exclusivement à une machine virtuelleLes cœurs de calcul et la mémoire vidéo ne sont pas partagés entre plusieurs machines virtuelles, et le rôle de l'hyperviseur est quasiment inexistant, se limitant à acheminer le périphérique PCIe vers la machine virtuelle invitée. C'est l'option la plus simple à comprendre et celle qui ressemble le plus à un serveur physique doté d'une carte graphique dédiée.

Dans l'approche vGPU, des logiciels spécialisés (par exemple, GPU virtuel NVIDIA GRID sur VMware vSphereIl gère la virtualisation du GPU au niveau du contrôleur et expose des instances virtuelles du GPU pouvant être attribuées simultanément à plusieurs machines virtuelles. Chaque machine invitée dispose d'une « tranche » du GPU avec des ressources garanties ou partagées.

Les vGPU permettent à plusieurs bureaux virtuels ou serveurs de partager une seule carte graphique, ce qui est très utile pour… VDI, environnements de bureau légers et accélérés, stations de travail graphiques de première ligne dans le commerce de détail ou l'hôtellerieou dans des scénarios où l'utilisation graphique maximale est inégale d'un utilisateur à l'autre. En conséquence, cela engendre une certaine surcharge et les performances maximales ne sont pas identiques à celles obtenues avec un GPU physique dédié à une seule machine virtuelle.

Il existe également des solutions telles que BitFusion Flexdirect et technologies similairesqui permettent d'utiliser les GPU sur le réseau à partir de différentes machines virtuelles, idéal pour les charges de travail d'IA et de HPC où le GPU agit davantage comme une ressource de calcul distante que comme une carte vidéo pour l'interface graphique de l'utilisateur.

Choisissez entre un modèle vDGA, vGPU ou un modèle GPU distant. Cela dépend si vous avez besoin d'utiliser pleinement un GPU pour une seule machine (transfert direct), si vous souhaitez répartir une carte coûteuse entre de nombreux utilisateurs ayant des charges de travail moyennes (vGPU), ou si l'objectif principal est d'orchestrer un pool de GPU pour le calcul distribué (BitFusion et solutions similaires).

Configuration matérielle requise pour l'utilisation de vDGA sur ESXi

Avant de planifier un déploiement de transfert direct de GPU dans VMware, vous devez vous assurer que La plateforme matérielle répond à une série de conditions qui vont au-delà du simple fait de « brancher une carte graphique au serveur ».

Tout d'abord, le processeur et le chipset de la carte mère hôte ESXi doivent prendre en charge virtualisation avec IOMMU. À Intel Ceci est possible grâce à Intel VT-x et VT-dy, et grâce à AMD via AMD-V avec IOMMU. Le BIOS/UEFI du serveur propose généralement des options spécifiques à cet effet. activer les extensions de virtualisation d'E/S.

Deuxièmement, vous devez vérifier que la plaque de support Cartographie de la mémoire MMIO supérieure à 4 Go (parfois désigné par des termes tels que « décodage supérieur à 4G », « E/S mappées en mémoire supérieures à 4G » ou similaires). Ceci est particulièrement important avec les GPU haut de gamme tels que Tesla, P100, V100 et équivalents, qui déclarent des régions de mémoire très larges dans leurs BAR (Registres d'adresse de base).

Certaines de ces cartes haut de gamme peuvent cartographier plus de 16 Go d'espace MMIOPar conséquent, en plus de jouer le BIOSEnsuite, certains paramètres des paramètres avancés de la machine virtuelle dans vSphere devront être ajustés afin qu'elle puisse démarrer avec ce GPU sans erreurs de ressources insuffisantes.

Bien sûr, le GPU lui-même doit être compatible avec la plateforme serveur et être pris en charge par le fabricant hôte (Dell, HPE, Lenovoetc.) lorsqu'elles sont utilisées en mode passthrough. En pratique, la plupart des GPU PCIe modernes fonctionnent, mais il est conseillé de vérifier les listes de compatibilité, notamment pour les cartes GRID ou les modèles très récents.

Configuration logicielle requise et compatibilité des versions

Au niveau logiciel, il est important de préciser que VMware prend en charge vDGA dans vSphere 6.x et les versions ultérieures.Cependant, certains utilisateurs ont signalé des problèmes spécifiques avec certaines combinaisons matérielles (par exemple, les GPU NVIDIA GRID dans les serveurs Dell R720 avec ESXi 6.x).

Dans ces cas, il est fréquent de rencontrer des erreurs telles que « l’appareil est déjà utilisé » ou des symptômes qui suggèrent que… Le mode Passthrough a cessé de fonctionner après la mise à niveau d'ESXi 5.5 vers 6.x.alors qu'en réalité, il s'agit de bugs spécifiques, de modifications dans la gestion des périphériques PCI ou des pilotes, plutôt que d'un retrait officiel du support.

Le système d'exploitation invité qui utilisera le GPU en mode passthrough doit avoir Pilotes officiels du fabricant installés dans la machine virtuelle (NVIDIA, AMD, Intel), étant donné qu'ESXi ne charge aucun pilote spécifique pour cette carte lors de l'utilisation de VMDirectPath I/O ; l'hyperviseur expose simplement le périphérique à l'invité.

De plus, la machine virtuelle doit être configurée pour démarrer dans Mode EFI ou UEFI Lors de l'utilisation de GPU déclarant de grandes régions de mémoire MMIO, ce détail est crucial : un firmware de machine virtuelle incorrect peut entraîner des défaillances. Botte ou que le GPU ne s'initialise pas correctement à partir du système d'exploitation invité.

Côté client, si l'accès à la VM se fait via Bureau à distance (RDP ou autres protocoles)Il faudra activer les politiques appropriées pour que le système invité utilise la carte graphique matérielle lors des sessions à distance et ne soit pas limité à un pilote générique sans accélération.

  Windows Update ne fonctionne pas sous Windows 7. Que puis-je faire ?

Configuration du transfert GPU dans VMware

Configuration de l'hôte ESXi pour utiliser le GPU en mode passthrough

La première étape pratique consiste à préparer le Serveur vSphere/ESXi pour exposer le GPU en tant que périphérique d'E/S DirectPathCela implique d'accéder au BIOS, de vérifier l'inventaire PCI sur l'hôte et de marquer la carte afin qu'elle puisse être attribuée aux machines virtuelles.

Si le GPU nécessite de grandes régions de mémoire MMIO (16 Go ou plus), vous devez rechercher des options telles que dans le BIOS/UEFI du serveur. « Décodage supérieur à la 4G » ou « Gestion des ressources PCI 64 bits supérieure à la 4G » et activez-les. Le nom exact varie selon le fabricant, mais il se trouve généralement dans les paramètres PCI ou dans la section des ressources avancées.

Une fois ESXi démarré avec ces paramètres, vous pouvez accéder à l'hôte correspondant dans le client vSphere. « Configurer → Matériel → Périphériques PCI → Modifier » Pour afficher la liste des périphériques PCI détectés, vous verrez les cartes NVIDIA, AMD ou similaires ainsi que le reste du matériel PCI du serveur.

Si le GPU n'est pas encore activé pour les E/S DirectPath, cochez simplement la case. boîte de passage à votre entrée dans cette liste. Lors de l'enregistrement des modifications, vSphere vous invitera à redémarrer l'hôte pour appliquer la configuration, car l'hyperviseur doit réserver et préparer le périphérique pour qu'il soit réaffecté aux machines virtuelles.

Après le redémarrage, en revenant à la section « Configurer → Matériel → Périphériques PCI » Une fenêtre intitulée par exemple « Périphériques PCI d'E/S DirectPath disponibles pour les machines virtuelles » s'affichera, listant tous les périphériques désormais disponibles pour une utilisation dans les machines virtuelles, y compris les GPU et, dans de nombreux cas, les adaptateurs réseau avancés comme Mellanox.

Préparation et configuration de la machine virtuelle

Une fois l'hôte prêt, l'étape suivante consiste à créer ou adapter la machine virtuelle qui utilisera le GPU. Il faut d'abord s'assurer que la machine virtuelle fonctionne correctement. Il a été créé avec un firmware EFI/UEFI compatible., notamment dans les scénarios avec des GPU haut de gamme et un MMIO élevé.

Dans le client vSphere, sélectionnez simplement la machine virtuelle, puis accédez à « Modifier les paramètres → Options de la machine virtuelle → Options de démarrage » Vérifiez que « EFI » ou « UEFI » est sélectionné dans le champ « Firmware ». Si ce n’est pas le cas, il faudra le modifier (et dans certains cas, la machine virtuelle ou le système d’exploitation devra être recréé s’il ne prend pas en charge le remplacement à chaud).

Lors de l'utilisation du mode passthrough avec des cartes qui allouent plus de 16 Go d'espace MMIO, il est conseillé d'ajuster certains paramètres avancés dans la configuration de la machine virtuelle, accessible depuis « Modifier les paramètres → Options de la machine virtuelle → Avancé → Paramètres de configuration → Modifier la configuration »Vous pouvez y ajouter des clés relatives à pciPassthru pour contrôler la manière dont l'espace d'adressage est réservé.

Plus précisément, l'utilisation de MMIO 64 bits est généralement activée et une taille est définie pour cette région, calculée à partir de Combien de GPU haut de gamme seront alloués à la machine virtuelle ?La règle générale consiste généralement à multiplier 16 par le nombre de GPU et à arrondir le résultat à la puissance de deux supérieure (par exemple, deux GPU de ce type donneraient 64 Go de MMIO 64 bits).

Après avoir ajusté ces paramètres, l'installation est effectuée ou il est vérifié que le Le système d'exploitation invité prend en charge EFI/UEFI et est capable de gérer la taille de la mémoire et le GPU en question.À ce stade, la carte graphique n'est pas encore connectée à la machine virtuelle ; l'environnement est simplement en cours de préparation afin que, lorsqu'il le sera, tout démarre sans erreurs dues à un manque de ressources ou à un firmware incompatible.

Attribuez le GPU à la VM en utilisant VMDirectPath I/O

Une fois que l'hôte a indiqué que le GPU était disponible pour les E/S DirectPath et que la VM est correctement configurée, il est temps de Associer physiquement la carte à cette machine virtuelleCette étape doit être effectuée avec la machine virtuelle complètement éteinte.

Dans le client vSphere, sélectionnez la machine virtuelle et saisissez les informations nécessaires. « Modifier les paramètres » pour examiner le matériel virtuelDans la liste des périphériques, cliquez sur « Ajouter un nouveau périphérique » et choisissez « Périphérique PCI » si le GPU n'y figure pas. Sélectionnez ensuite le périphérique PCI correspondant à la carte graphique (par exemple, la carte NVIDIA ou AMD détectée sur l'hôte).

Une fois la configuration enregistrée, la machine virtuelle affichera un message similaire à celui-ci sur son matériel. « Périphérique PCI 0 » associé au GPU spécifiqueÀ partir de ce moment, au démarrage du système d'exploitation invité, celui-ci verra un adaptateur PCIe supplémentaire correspondant à la carte graphique physique.

Il est essentiel que la machine virtuelle possède a réservé toute la mémoire qui lui a été allouéeDans vSphere, ce paramètre se configure dans « Modifier les paramètres → Matériel virtuel → Mémoire », en définissant la valeur « Réservation » sur la quantité de RAM configurée pour la machine virtuelle. Sans cette réservation complète, le transfert PCI peut échouer ou présenter des problèmes intermittents.

  Le délai d'attente des feux de circulation a expiré | Solutions

Après avoir allumé la machine virtuelle, sur un système Linux La présence du GPU peut être vérifiée avec commandes tipo lspci | grep nvidia, tandis que sous Windows, il apparaîtra sous « Cartes graphiques » dans le Administrateur de l'appareilIl est normal de voir à la fois la carte graphique émulée par VMware et le GPU physique dédié.

La dernière étape consiste à installer les éléments suivants sur le périphérique invité : conducteurs responsables des fabricants de GPU, téléchargés depuis les sites web de NVIDIA, AMD ou Intel, en évitant d'utiliser des pilotes génériques ou ceux fournis Windows Updatequi peuvent ne pas être optimisés pour les scénarios de transit.

limitations et fonctionnalités de vSphere incompatibles avec vDGA

Le revers de la médaille du GPU passthrough dans VMware, c'est que Plusieurs fonctionnalités avancées de la plateforme sont perdues. en dédiant un périphérique physique directement à une machine virtuelle. C'est le prix à payer pour des performances quasi natives.

Le premier grand sacrifice est vMotion et DRSUne machine virtuelle dotée d'un GPU en mode passthrough ne peut pas être migrée à chaud vers un autre hôte car la carte est physiquement liée au serveur d'origine. Les stratégies d'équilibrage de charge automatisées impliquant le déplacement de la machine virtuelle entre les hôtes du cluster sont également inapplicables.

Des fonctionnalités telles que instantanés traditionnels ou certains mécanismes de haute disponibilité pour cette machine virtuelle en particulier. Étant donné qu'elle repose sur un matériel physique très spécifique, la capacité à figer et à restaurer des états complexes est compromise.

Un autre aspect à prendre en compte est que, dans ce mode, Le GPU n'est pas partagé entre plusieurs machines virtuelles.Si plusieurs ordinateurs de bureau ou serveurs avec accélération graphique sont nécessaires sur la même machine, une carte par machine virtuelle sera requise, ou bien un modèle vGPU peut être utilisé où la carte est virtualisée sur plusieurs instances.

Du côté du support, il peut y avoir des cas spécifiques où Certaines combinaisons de matériel et de pilotes peuvent causer des problèmesComme certains utilisateurs l'ont constaté lors de la mise à niveau vers ESXi 6.x avec des cartes NVIDIA GRID sur des serveurs spécifiques (par exemple, Dell R720), il est conseillé de consulter la documentation de VMware et du fabricant du GPU dans ces scénarios, et d'ouvrir des tickets d'assistance si nécessaire.

Enfin, il convient de noter que certaines technologies ou certains services qui interagissent avec les graphismes, tels que bureaux à distance, sous-systèmes Linux sous Windows ou fonctionnalités avancées du système d'exploitationIls peuvent interférer avec les pilotes NVIDIA ou provoquer des erreurs « Code 43 » s'ils détectent que vous travaillez dans une machine virtuelle avec transfert direct du GPU.

Transfert direct du GPU dans d'autres hyperviseurs : parallèle avec Hyper-V

Bien que l'accent soit mis ici sur VMware, il est important de comprendre comment d'autres hyperviseurs (par exemple virtualisation avec KVM et virt-manager) répondent au même besoin d'allouer un GPU physique à une machine virtuellecar la terminologie et les outils changent, mais l'idée de base reste la même.

Dans Hyper-V, l'équivalent de VMware VMDirectPath I/O est le Affectation directe de périphériques à l'aide de DDA (Discrete Device Assignment)Cette technique permet de mapper un périphérique PCIe spécifique, tel qu'un GPU ou un NVMe, directement au sein d'une machine virtuelle Windows, avec un niveau de contrôle et de performance similaire au passthrough dans ESXi.

Les anciennes versions de Windows Server utilisaient cette technologie RemoteFX pour offrir la virtualisation GPU et partager une carte graphique entre plusieurs machines virtuelles. le tempsEn raison de problèmes de sécurité et de limitations de performances (telles que la limite de 1 Go de VRAM par VM et de 30 FPS), Microsoft a abandonné RemoteFX et a laissé DDA comme voie principale pour les scénarios de GPU dédiés.

Sous Windows 10 et Windows 11Notamment avec certaines compilations, une prise en charge est apparue pour Partitionnement du GPU et mécanismes réutilisés de WSL2 et Windows SandboxCependant, sa configuration implique généralement des scripts complexes et la copie de pilotes de l'hôte vers l'invité, ce qui n'est pas aussi simple que l'attribution d'un périphérique dans vSphere.

Connaître ces alternatives nous permet de voir que La philosophie consiste à offrir un accès quasi natif au GPU via un canal PCIe direct. Elle est commune à plusieurs hyperviseurs, bien que chacun ait ses propres nuances, commandes et restrictions de compatibilité.

Cet écosystème complet de transfert direct, de vGPU et de DDA démontre que, correctement configuré et avec le matériel approprié, Il est parfaitement possible d'utiliser des GPU puissants au sein de machines virtuelles pour la production Pour les charges de travail allant des ordinateurs de bureau graphiques exigeants à l'IA et au HPC, partez toujours du principe que vous devrez renoncer à certains avantages de la virtualisation traditionnelle et portez une attention particulière aux pilotes, aux versions d'hyperviseur et à la prise en charge par le fabricant du GPU.

virtualisation matérielle
Article connexe:
Comment activer la virtualisation à partir du BIOS ou de l'UEFI étape par étape