Guide pour connecter une carte vidéo physique à une machine virtuelle sur un hôte Hyper-V

Guide pour connecter une carte vidéo physique à une machine virtuelle sur un hôte Hyper-V

Vous aurez peut-être besoin d’une carte vidéo (GPU) dans une machine virtuelle pour des tâches telles qu’OpenGL, Direct3D et CUDA. Dans ce cas, nous utilisons généralement une carte vidéo émulée, qui n’est pas aussi performante qu’un GP dédié. Par conséquent, dans cet article, nous allons apprendre à connecter une carte vidéo physique à une VM sur un hôte.

Comment passer mon GPU via Hyper-V ?

Pour connecter une carte vidéo physique à une machine virtuelle sur un hôte Hyper-V, nous utiliserons GPU Passthrough.

Le transfert GPU est une fonctionnalité avancée qui vous permet d’attribuer un GPU physique à une machine virtuelle. Cette fonctionnalité est particulièrement utile pour les applications telles que les jeux ou le rendu 3D, où des graphiques hautes performances sont nécessaires. Dans cette configuration, la machine virtuelle obtient un accès direct à la carte graphique physique sans la surcharge de l’émulation, ce qui peut améliorer considérablement les performances graphiques. Par défaut, les machines virtuelles dans Hyper-V utilisent une carte graphique émulée, ce qui peut ne pas être suffisant pour les tâches graphiques exigeantes. Avec le transfert GPU, la machine virtuelle peut exploiter toute la puissance du GPU physique, ce qui lui permet de gérer efficacement des charges de travail graphiques plus intensives.

Quelle est la configuration système requise pour GPU Passthrough ?

Avant de continuer et de configurer le GPU Passthrough, assurons-nous de respecter les conditions préalables suivantes.

Configuration matérielle requise

  • Vous devez vous assurer que votre processeur prend en charge la virtualisation Intel-VT ou AMD-V.
  • Pour le PCI Passthrough, votre processeur doit prendre en charge une unité de gestion de mémoire d’entrée-sortie (IOMMU).
  • Votre GPU doit prendre en charge les technologies de virtualisation GPU telles que NVIDIA GRID ou AMD MxGPU. Ces technologies sont spécifiques à chaque fournisseur. Les taux de réussite peuvent être améliorés en utilisant du matériel de classe serveur. Les périphériques plus anciens qui s’appuient sur des interruptions PCI (INTx) ne sont pas compatibles.
  • Enfin, votre système doit prendre en charge la virtualisation d’entrée/sortie à racine unique.

Configuration logicielle requise :

  • Système d’exploitation : Windows Server 2016 (ou version ultérieure) ou Windows 11/10.
  • Fonctionnalités : Hyper-V doit être activé.
  • Génération de VM : la machine virtuelle doit être de génération 2.
  • Pilotes : Tous les pilotes GPU doivent être mis à jour vers la dernière version.

Limitations du GPU Passthrough :

Si vous souhaitez utiliser GPU Passthrough, vous devez éviter la configuration suivante.

  • Votre machine virtuelle ne doit pas utiliser de mémoire dynamique.
  • GPU Passthrough n’est disponible que sur les éditions Windows les plus élevées, comme Windows Server 2019 Datacenter.
  • Si le sous-système Windows pour Linux est déployé sur l’hôte Hyper-V, une erreur de machine virtuelle avec le code 43 peut se produire.
  • Les fonctionnalités de clustering telles que la haute disponibilité et la migration de machines virtuelles en direct ne sont pas prises en charge.
  • L’enregistrement et la restauration avec des points de contrôle de machine virtuelle ne sont pas pris en charge.

Après avoir satisfait aux exigences mentionnées précédemment, nous pouvons exploiter le GPU Passthrough.

Connecter une carte vidéo physique à une machine virtuelle sur un hôte Hyper-V

Pour connecter une carte vidéo physique à une machine virtuelle sur un hôte Hyper-V à l’aide du relais GPU, suivez les étapes ci-dessous.

  1. Activer la virtualisation Intel-VT ou AMD-V
  2. Configurez votre ordinateur pour le GPU Passthrough
  3. Configurer le GPU Passthrough pour Windows 11/10
  4. Configurer le relais GPU pour Windows Server

Parlons-en en détail.

1] Activer la virtualisation Intel-VT ou AMD-V

activer ou désactiver la virtualisation matérielle

Comme mentionné dans les conditions préalables, notre première étape consiste à activer la virtualisation matérielle. Ainsi, si vous utilisez un processeur Intel, vous devez activer Intel-VT, et les utilisateurs AMD doivent activer la virtualisation AMD-V.

Pour ce faire, démarrez dans le BIOS, accédez à Configuration > Technologie de virtualisation, puis définissez-la sur Activée. Étant donné que ces étapes sont exclusives à HP, vous pouvez accéder à la publication liée pour voir comment activer la fonctionnalité pour votre ordinateur.

2] Configurez votre ordinateur pour le GPU Passthrough

Ensuite, nous devons configurer l’ordinateur hôte pour le GPU Passthrough. Nous avons commencé par activer la virtualisation matérielle, comme mentionné précédemment. Ensuite, nous devons nous assurer que l’IOMMU est activé et que les points de contrôle automatiques sont désactivés.

Vous pouvez donc consulter le guide lié sur l’activation de la virtualisation matérielle pour activer IOMMU , mais il est généralement activé par défaut. Nous pouvons ouvrir PowerShell et exécuter la requête suivante pour vérifier s’il est activé.

(Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasons

Si le message indique « Vrai », la fonctionnalité est activée, vous pouvez passer à la configuration suivante, mais si le message indique « Faux », vous devez activer cette fonctionnalité.

Maintenant, supprimez tous les points de contrôle de votre VM, puis utilisez les commandes suivantes pour le désactiver.

Get-VM Set-VM -Name NameOfVM -AutomaticStopAction TurnOff

Remarque : remplacez la variable NameOfVM par le nom réel de la machine virtuelle que vous pouvez récupérer en exécutant la commande précédente.

3] Configurer le GPU Passthrough pour Windows 11/10

connecter une carte vidéo physique à une machine virtuelle sur un hôte Hyper-V

Tout d’abord, apprenons comment activer le GPU Passthrough sur les systèmes d’exploitation clients Windows.

Vous devez exécuter la commande suivante pour vérifier si votre carte vidéo prend en charge le GPU Passthrough.

Windows 11

Get-VMHostPartitionableGpu

Windows 10

Get-VMPartitionableGpu

Ensuite, nous devons copier le pilote graphique du client hôte vers la machine virtuelle. Pour simplifier le processus, nous vous recommandons de télécharger le fichier ZIP depuis github.com et de l’extraire quelque part.

Pour exécuter ce script, nous devons d’abord autoriser l’exécution du script à l’aide des deux commandes suivantes.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

Définir-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Après avoir exécuté la commande, vous devez exécuter le script à l’aide de la commande suivante. Vous pouvez l’exécuter avant et/ou après avoir ajouté votre machine virtuelle à GPU Passthrough

.\Update-VMGpuPartitionDriver.ps1 -VMName <VMNAME> -GPUName "AUTO"

Maintenant, exécutez la commande suivante pour ajouter votre VM au GPU Passthrough.

Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb Add-VMGpuPartitionAdapter -VMName <VMNAME>

Pour supprimer la partition GPU, exécutez – Remove-VMGpuPartitionAdapter -VMName <VMNAME>.

4] Configurer le relais GPU pour Windows Server

Si vous utilisez Windows Server, vous devez exécuter la commande suivante en mode élevé de PowerShell pour définir le cache et les limites de l’espace MIMO 32 bits (3 Go pour les systèmes d’exploitation 32 bits).

Set-VM -Name VMNAME -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

Ces limites définissent la mémoire permettant à la machine virtuelle d’accéder au périphérique. Utilisez un script de profil de machine de learn.microsoft.com pour définir des limites MIMO précises. Ajustez les valeurs si la machine virtuelle présente un manque de ressources ; 33 280 Mo sont nécessaires pour un espace MIMO supérieur à 32 bits.

Ensuite, nous devons vérifier l’emplacement du périphérique PCI Express. Pour ce faire, exécutez les requêtes suivantes.

Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

ET

Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*"})"; }

Vous devez voir où se trouve votre GPU, cela devrait être quelque chose comme PCIROOT(0)#PCI(0200) .

Enfin, suivez les étapes mentionnées ci-dessous.

  • Ouvrez le Gestionnaire de périphériques, développez Cartes d’affichage, cliquez avec le bouton droit sur vos pilotes d’affichage et cliquez sur Désactiver le périphérique.
  • Exécutez la commande suivante pour démonter le pilote GPU après avoir modifié l’adresse PCI.

Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0200)"-Force

  • Après avoir modifié l’adresse PCI et le nom de la machine virtuelle, exécutez la commande suivante pour attribuer un périphérique GPU à la machine virtuelle.

Add-VMAssignableDevice -VMName VMNAME -LocationPath "PCIROOT(0)#PCI(0200)"

  • Allumez la VM et recherchez une carte vidéo physique dans le Gestionnaire de périphériques.
  • Installez les pilotes de la carte vidéo à partir du site Web NVIDIA ou AMD.

Si vous souhaitez revenir à la machine hôte, arrêtez la machine virtuelle et exécutez la requête suivante sur le périphérique hôte.

Remove-VMAssignableDevice -VMName VMNAME -LocationPath $locationPath

Ensuite, exécutez la commande suivante pour reconnecter la carte vidéo à l’hôte Hyper-V.

Mount-VMHostAssignableDevice -LocationPath $locationPath

C’est ça!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *