virtu-desk (virtu, IA & cyber...) VIRTU-DESK - Technologies de virtualisation et sécurisation de l'environnement utilisateurs.

VDI et processeurs graphiques : Mode pass-through ou vGPU ?

Francis MILLOT Par Le jeudi, 28 septembre 2023 0

Dans Virtualisation de postes de travail

Pour gérer de manière optimale des gros traitements en termes de visualisation de données « temps réel » ou encore pour des besoins d’accélération graphique dans des contextes de virtualisation d’applications ou de postes de travail (VDI), il est nécessaire, dans nombre de cas, d’activer la prise en charge de GPUs (processeurs graphiques) dans des machines virtuelles.

Et pour gérer ces GPUs au sein des hyperviseurs, deux modes sont disponibles :

  1. Le mode « pass-through »
  2. Le mode « vGPU » (virtual GPU).

1 - Mode pass-through

Le mode pass-through permet l’accès, le contrôle et l’utilisation d’un périphérique de manière entière. Lorsqu’un GPU fonctionne en mode pass-through, l’hyperviseur attribue l'intégralité de ses cœurs à une VM et elle seule utilise le GPU, sa puissance de traitement et sa mémoire graphique. Ce mode est également appelé vDGA (virtual Dedicated Graphics Acceleration) ou accélération graphique dédiée virtuelle.

Certaines cartes graphiques prennent en charge plusieurs GPUs, telles que les cartes Nvidia M6 (1 GPU), M60 (2 GPUs), M10 (4 GPUs), ce qui permet d’affecter, à partir d’un seul adaptateur multi-GPU, des GPUs à plusieurs VMs en mode pass-through. Ce mode est idéal pour les VMs qui exécutent des applications très exigeantes ou très gourmandes en ressources graphiques. Il offre les meilleures performances et présente un très bon rapport qualité-prix si plusieurs utilisateurs partagent la VM (multisessions RDS).

2 - Mode vGPU

Le mode vGPU permet à plusieurs VMs de partager les ressources du même GPU par fraction de temps. En fait, si un GPU est virtualisé en 10 vGPUs, et que chaque vGPU est attribué à l’une des 10 VMs, chaque VM aura accès au GPU (et à ses cœurs CUDA), pendant 10 % du temps. Ce mode est également appelé vSGA (Virtual Shared Graphics Acceleration) ou accélération graphique partagée virtuelle. La relation de base entre le GPU, l’hyperviseur et les VMs est illustrée dans le diagramme ci-dessous.

Un pilote graphique, implémenté dans chaque VM, permet de connecter l’application de la VM au vGPU. La mémoire graphique n’est pas partageable, chaque VM a accès à une fraction dédiée de cette dernière. Si la carte graphique est partagée entre 10 paires VM-vGPU et qu’elle dispose de 32 Go, chaque vGPU aura accès à 3,2 Go. Ce fonctionnement est limité au nombre de VMs qui peuvent partager un GPU.

Les performances des vGPUs vont dépendre à la fois du nombre de VMs qui partagent le GPU et des demandent graphiques des applications. Plus il y a de VMs et plus les demandes sont élevées, moins les performances seront bonnes. Il est néanmoins possible de les ajuster en allouant plus ou moins de temps GPU à une VM. De cette manière, les VMs les plus exigeantes pourront bénéficier d’un temps de fonctionnement GPU plus important, au détriment d’autres VMs, moins consommatrices de ressources graphiques.

Le mode vGPU permet d’allouer un nombre importants de machines virtuelles à un nombre limité de GPUs. Il est principalement dédié à des tâches graphiques « légères », comme l’accélération d’éléments graphiques dans un bureau distant, ce qui est généralement le cas dans des environnements VDI.

Vous pouvez vérifier que l’accélération GPU est active en utilisant un outil tiers tel que GPU-Z.

Sources de ce billet.

  • 26 votes. Moyenne 5 sur 5.
Vous devez être connecté pour poster un commentaire