Handleiding voor het koppelen van een fysieke videokaart aan een virtuele machine op een Hyper-V-host

Handleiding voor het koppelen van een fysieke videokaart aan een virtuele machine op een Hyper-V-host

Mogelijk hebt u een videokaart (GPU) nodig in een virtuele machine voor taken zoals OpenGL, Direct3D en CUDA. In dat geval gebruiken we meestal een geëmuleerde videokaart, die niet zo goed presteert als een speciale GP. Daarom leren we in dit bericht hoe u een fysieke videokaart aan een VM op een host koppelt.

Hoe stuur ik mijn GPU via Hyper-V?

Om een ​​fysieke videokaart aan een virtuele machine op een Hyper-V-host te koppelen, gebruiken we GPU Passthrough.

GPU passthrough is een geavanceerde functie waarmee u een fysieke GPU aan een virtuele machine kunt toewijzen. Deze functie is met name handig voor toepassingen zoals gaming of 3D-rendering, waarbij grafische prestaties met hoge prestaties vereist zijn. In deze opstelling krijgt de virtuele machine directe toegang tot de fysieke grafische adapter zonder de overhead van emulatie, wat de grafische prestaties aanzienlijk kan verbeteren. Standaard gebruiken virtuele machines in Hyper-V een geëmuleerde grafische kaart, wat mogelijk niet voldoende is voor veeleisende grafische taken. Met GPU passthrough kan de virtuele machine de volledige kracht van de fysieke GPU benutten, waardoor deze intensievere grafische workloads efficiënt kan verwerken.

Wat zijn de systeemvereisten voor GPU Passthrough?

Voordat we GPU Passthrough instellen, moeten we ervoor zorgen dat aan de volgende vereisten is voldaan.

Hardwarevereisten

  • Controleer of uw processor Intel-VT- of AMD-V-virtualisatie ondersteunt.
  • Voor PCI Passthrough moet uw processor een Input-Output Memory Management Unit (IOMMU) ondersteunen.
  • Uw GPU moet GPU-virtualisatietechnologieën zoals NVIDIA GRID of AMD MxGPU ondersteunen. Deze technologieën zijn specifiek voor individuele leveranciers. Succespercentages kunnen worden verbeterd door gebruik te maken van server-class hardware. Oudere apparaten die afhankelijk zijn van PCI Interrupts (INTx) zijn niet compatibel.
  • Ten slotte moet uw systeem Single Root Input/Output Virtualization ondersteunen.

Softwarevereisten:

  • Besturingssysteem: Windows Server 2016 (of later) of Windows 11/10.
  • Kenmerken: Hyper-V moet ingeschakeld zijn.
  • VM-generatie: De virtuele machine moet van generatie 2 zijn.
  • Drivers: Alle GPU-drivers moeten worden bijgewerkt naar de nieuwste versie.

Beperkingen van GPU-passthrough:

Als u GPU Passthrough wilt gebruiken, moet u de volgende configuratie vermijden.

  • Uw virtuele machine mag geen dynamisch geheugen gebruiken.
  • GPU Passthrough is alleen beschikbaar op de hoogste Windows-edities, zoals Windows Server 2019 Datacenter.
  • Als Windows Subsystem for Linux op de Hyper-V-host is geïmplementeerd, kan er een VM-fout met code 43 optreden.
  • Clusteringfuncties zoals hoge beschikbaarheid en live VM-migratie worden niet ondersteund.
  • Opslaan en herstellen met VM-controlepunten wordt niet ondersteund.

Nadat we aan de eerder genoemde vereisten hebben voldaan, kunnen we GPU Passthrough inzetten.

Sluit een fysieke videokaart aan op een VM op een Hyper-V-host

Volg de onderstaande stappen om een ​​fysieke videokaart aan een virtuele machine op een Hyper-V-host te koppelen met behulp van GPU Passthrough.

  1. Intel-VT of AMD-V-virtualisatie inschakelen
  2. Configureer uw computer voor GPU Passthrough
  3. GPU Passthrough instellen voor Windows 11/10
  4. GPU Passthrough instellen voor Windows Server

Laten we er eens uitgebreider over praten.

1] Intel-VT of AMD-V-virtualisatie inschakelen

Hardwarevirtualisatie in- of uitschakelen

Zoals vermeld in de vereisten, zou onze eerste stap moeten zijn om Hardware Virtualization in te schakelen. Dus als u een Intel CPU gebruikt, moet u Intel-VT inschakelen, en AMD-gebruikers moeten AMD-V Virtualization inschakelen.

Om dit te doen, start u de computer op in het BIOS, gaat u naar Configuratie > Virtualisatietechnologie en stelt u deze in op Ingeschakeld. Aangezien deze stappen exclusief voor HP zijn, kunt u naar het gekoppelde bericht gaan om te zien hoe u de functie voor uw computer kunt inschakelen.

2] Configureer uw computer voor GPU Passthrough

Vervolgens moeten we de hostcomputer configureren voor GPU Passthrough. We begonnen met het inschakelen van Hardware Virtualization, zoals eerder vermeld. Vervolgens moeten we ervoor zorgen dat IOMMU is ingeschakeld en automatische controlepunten zijn uitgeschakeld.

U kunt dus de gekoppelde handleiding over het inschakelen van hardwarevirtualisatie raadplegen om IOMMU in te schakelen , maar dit is meestal standaard ingeschakeld. We kunnen PowerShell openen en de volgende query uitvoeren om te controleren of het is ingeschakeld.

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

Als er True staat, is de functie ingeschakeld en kunt u doorgaan naar de volgende configuratie. Als er False staat, moet u deze functie inschakelen.

Verwijder nu alle controlepunten van uw virtuele machine en gebruik vervolgens de volgende opdrachten om deze uit te schakelen.

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

Opmerking: Vervang de variabele NameOfVM door de werkelijke naam van de virtuele machine die u kunt ophalen door de vorige opdracht uit te voeren.

3] GPU Passthrough instellen voor Windows 11/10

een fysieke videokaart aansluiten op een VM op een Hyper-V-host

Laten we eerst leren hoe u GPU Passthrough op Windows-clientbesturingssystemen kunt inschakelen.

U moet de volgende opdracht uitvoeren om te controleren of uw videokaart GPU Passthrough ondersteunt.

Vensters 11

Get-VMHostPartitionableGpu

Vensters 10

Get-VMPartitionableGpu

Vervolgens moeten we de grafische driver van de hostclient naar de VM kopiëren. Om het proces te vereenvoudigen, raden we aan om het ZIP-bestand van github.com te downloaden en ergens uit te pakken.

Om dit script uit te voeren, moeten we eerst de uitvoering van het script toestaan ​​met behulp van de volgende twee opdrachten.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Nadat u de opdracht hebt uitgevoerd, moet u het script uitvoeren met de volgende opdracht. U kunt het uitvoeren vóór en/of ná het toevoegen van uw VM aan GPU Passthrough

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

Voer nu de volgende opdracht uit om uw VM toe te voegen aan GPU Passthrough.

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

Om de GPU-partitie te verwijderen, voert u – uit Remove-VMGpuPartitionAdapter -VMName <VMNAME>.

4] GPU Passthrough instellen voor Windows Server

Als u Windows Server gebruikt, moet u de volgende opdracht uitvoeren in de verhoogde modus van PowerShell om de cache en limieten voor 32-bits (3 GB voor 32-bits besturingssystemen) MIMO-ruimte in te stellen.

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

Deze limieten definiëren het geheugen dat VM-toegang tot het apparaat toestaat. Gebruik een Machine Profile-script van learn.microsoft.com om nauwkeurige MIMO-limieten in te stellen. Pas waarden aan als VM een resourcetekort vertoont; 33280 MB is nodig voor MIMO-ruimte groter dan 32-bits.

Vervolgens moeten we de locatie van het PCI Express-apparaat controleren. Voer hiervoor de volgende query’s uit.

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

EN

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*"})"; }

U moet kijken waar uw GPU zich bevindt. Het zou er ongeveer zo uit moeten zien: PCIROOT(0)#PCI(0200) .

Volg ten slotte de onderstaande stappen.

  • Open Apparaatbeheer, vouw Beeldschermadapters uit, klik met de rechtermuisknop op de beeldschermstuurprogramma’s en klik op Apparaat uitschakelen.
  • Voer de volgende opdracht uit om de GPU-driver te ontkoppelen nadat u het PCI-adres hebt gewijzigd.

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

  • Nadat u het PCI-adres en de VM-naam hebt gewijzigd, voert u de volgende opdracht uit om een ​​GPU-apparaat aan de VM toe te wijzen.

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

  • Schakel de virtuele machine in en controleer in Apparaatbeheer of er een fysieke videokaart aanwezig is.
  • Installeer de videokaartstuurprogramma’s van de NVIDIA- of AMD-website.

Als u wilt terugschakelen naar de hostmachine, sluit u de virtuele machine af en voert u de volgende query uit op het hostapparaat.

Remove-VMAssignableDevice -VMName VMNAME -LocationPath $locationPath

Voer vervolgens de volgende opdracht uit om de videokaart weer aan te sluiten op de Hyper-V-host.

Mount-VMHostAssignableDevice -LocationPath $locationPath

Dat is alles!

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *