vendredi, novembre 22, 2024

Comment 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 comment attacher une carte vidéo physique à une VM sur un hôte.

Comment passer mon GPU via Hyper-V ?

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

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 Intel VT ou Virtualisation AMD-V.
  • Pour PCI Passthrough, votre processeur doit prendre en charge un 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 Virtualisation d’entrée/sortie à racine unique.

Configuration logicielle requise :

  • Système opérateur: Windows Server 2016 (ou version ultérieure) ou Windows 11/10.
  • Caractéristiques: Hyper-V doit être activé.
  • Génération de VM : La machine virtuelle doit être de génération 2.
  • Conducteurs : 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

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 à l’ Configuration > Technologie de virtualisation, puis réglez-le sur Activé, puisque ces étapes sont exclusives à HP, vous pouvez accéder à la publication liée pour voir comment activer la fonctionnalité pour votre ordinateur.

Lire: Comment activer ou désactiver la virtualisation imbriquée pour les machines virtuelles dans Hyper-V ?

2]Configurez votre ordinateur pour le GPU Passthrough

Ensuite, nous devons configurer l’ordinateur hôte pour le transfert GPU. 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 IOMMUmais il est généralement activé par défaut. Nous pouvons ouvrir PowerShell et exécutez la requête suivante pour vérifier si elle est activée.

(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.

Lire: Comment activer Hyper-V sur un PC Cloud Windows 365 ?

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

Set-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 VM à GPU Passthrough

.Update-VMGpuPartitionDriver.ps1 -VMName  -GPUName "AUTO"

Note: Assurez-vous d’ajouter le chemin du script et . Dans mon cas, le script serait C:UsersyusufDownloadsEasy-GPU-PV-mainEasy-GPU-PV-mainUpdate-VMGpuPartitionDriver.ps1 -VMName Ubuntu -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 

Pour supprimer la partition GPU, exécutez – Remove-VMGpuPartitionAdapter -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 ressembler à 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 l’appareil.
  • 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!

A lire aussi : Configurer le serveur Secured-core pour Windows Server.

Source-137

- Advertisement -

Latest