Hoe schakel je GPU-passthrough of -deling in met Hyper-V VM’s?
Alles rondom GPU-passthrough en virtuele machines kan snel ingewikkeld worden. Soms, vooral bij zwaardere programma’s of specifieke applicaties, wil je de GPU direct aan een virtuele machine toewijzen. Op Windows Server maakt DDA dat enigszins mogelijk, hoewel het niet super eenvoudig is. En als je Windows 10 of 11 gebruikt, ben je wat beperkter, maar er zijn nog steeds opties zoals GPU-partitionering. Het lastige? Alles precies goed configureren, met name de hardwarepaden, stuurprogramma’s en VM-instellingen. Daarom volgen hier een aantal beproefde methoden om de GPU soepel te laten werken in je Hyper-V-omgeving. We kunnen geen perfecte oplossing garanderen voor elke configuratie, maar het is een goed begin.
Schakel GPU-passthrough in voor Hyper-V VM’s op Windows Server.
Door automatische snapshots uit te schakelen en enkele VM-instellingen aan te passen, kunt u een PCIe GPU rechtstreeks aan uw VM doorgeven. Dit werkt alleen op Windows Server met de Hyper-V-rol, niet op Windows 10 of 11.Waarom dit helpt : Omdat het rechtstreeks doorgeven van de GPU aan de VM de grafische prestaties drastisch kan verbeteren als alles correct is ingesteld. Meestal verschijnt de GPU als een nieuw apparaat in Apparaatbeheer van de VM, waar u de stuurprogramma’s kunt installeren.Wanneer dit te gebruiken : Als u een VM host die veel grafische rekenkracht nodig heeft, bijvoorbeeld voor gaming, rendering of CUDA-taken, en u Windows Server gebruikt.Wat u kunt verwachten : Uw GPU verschijnt in Apparaatbeheer van de VM als een beeldschermadapter, samen met het Hyper-V-beeldschermstuurprogramma. Houd er rekening mee dat de VM vooraf geïnstalleerde grafische stuurprogramma’s nodig heeft voor de GPU die u doorgeeft, anders werkt het mogelijk niet correct.
De VM-configuratie wijzigen
Dit is een onderdeel van het proces waarbij Windows soms problemen veroorzaakt vanwege automatische momentopnamen of cachelimieten. Schakel eerst die momentopnamen uit om de installatie schoon te houden:
Set-VM -Name munGPUVM1 -AutomaticStopAction TurnOff
Vervolgens kunt u de cache- en geheugeninstellingen aanpassen — dit is soms nodig om conflicten te voorkomen:
Set-VM -Name munGPUVM1 -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb
—
Zoek het PCIe-apparaatpad naar de GPU.
Dit is het lastige gedeelte. Je moet het PCIe-slot van je GPU vinden. Hoe doe je dat? Open Apparaatbeheer, ga naar de GPU-eigenschappen onder Details, vink Locatiepaden aan en kopieer de regel die begint met PCIROOT. Of, als je net zo lui bent als ik, kun je PowerShell gebruiken:
Get-PnpDevice | Where-Object {$_. Present -eq $true} | Where-Object {$_. Class -eq "Display"} | Select-Object Name, InstanceId
Dit zou een lijst met beeldschermen en hun instantie-ID’s moeten weergeven. Kies het beeldscherm dat overeenkomt met uw GPU.
Haal de kaart eruit en geef hem aan de VM.
Om de kaart in de host uit te schakelen (zodat deze klaar is om aan een VM te worden toegewezen), voert u het volgende commando uit:
Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" –Force
Vervang dat pad door wat je eerder hebt gekregen. Om het vervolgens aan de VM toe te wijzen:
Add-VMAssignableDevice -VMName VMName -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)"
Schakel de virtuele machine in en controleer of de GPU wordt weergegeven in Apparaatbeheer onder Beeldschermadapters. Soms moet u de virtuele machine of zelfs de host na deze stap opnieuw opstarten. Vergeet ook niet dat de virtuele machine vooraf de juiste stuurprogramma’s moet hebben geïnstalleerd; anders wordt deze weergegeven als een onbekend apparaat.
Om de GPU-toewijzing ongedaan te maken of opnieuw toe te wijzen
Als er iets misgaat, of als je de GPU terug wilt geven aan de host, voer dan het volgende commando uit:
Remove-VMAssignableDevice -VMName munGPUVM1 -LocationPath $locationPathEn dan:Mount-VMHostAssignableDevice -LocationPath $locationPath---
De GPU delen in Windows 10 of 11 met GPU-partitionering (GPU-P).
Als je Windows 10 of 11 gebruikt, is de ondersteuning voor directe GPU-passthrough beperkt. GPU-partitionering (GPU-P) is echter een goed alternatief. Hiermee kun je je GPU in stukken verdelen, zodat een virtuele machine een deel ervan kan gebruiken – een beetje zoals het delen van een pizza.Waarom het helpt : Het is minder afhankelijk van de hardware dan volledige passthrough en werkt met ondersteunde stuurprogramma's in Windows 10/11.Wanneer dit te gebruiken : Als je gewoon fatsoenlijke GPU-prestaties in een virtuele machine wilt zonder te hoeven rommelen met PCIe-paden. Om te controleren of uw GPU GPU-P ondersteunt, voert u de volgende opdracht uit in PowerShell:
Get-VMPartitionableGpu(of op Win11)
Get-VMHostPartitionableGpuAls je GPU in de lijst staat, is dat goed nieuws. Nu gaan we de partities toewijzen:
Set-VM -VMName myVM1 -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32GbVoeg vervolgens de GPU-partitieadapter toe:
Add-VMGpuPartitionAdapter -VMName myVM1Het lastige punt? Je moet het stuurprogramma zowel op de host als op de virtuele machine installeren. Het script Easy-GPU-PV helpt bij het kopiëren van stuurprogramma's naar de virtuele machine – want Windows moet het natuurlijk weer ingewikkelder maken dan nodig. Voer het script voor de stuurprogramma-update uit:
.\Update-VMGpuPartitionDriver.ps1 -VMName myVM1 -GPUName "AUTO"Vervolgens kunt u in de VM-instellingen de GPU toewijzen via PowerShell of Hyper-V-beheer.---
Samenvatting
Het perfect werkend krijgen van GPU-passthrough of -deling is niet altijd even eenvoudig. Het hangt sterk af van je hardware, de ondersteuning van drivers en de Windows-versie die je gebruikt. Maar door deze stappen te volgen – en met name de apparaatpaden en driverstrategieën goed te controleren – kun je een groot verschil maken. In sommige gevallen is het een kwestie van een paar keer opnieuw opstarten of de commando's in een bepaalde volgorde uitvoeren. Ik weet niet precies waarom het werkt, maar in één geval viel het na een herstart gewoon op zijn plek. Hopelijk scheelt dit iemand een paar uur reistijd. Onthoud wel dat geduld en zorgvuldige begeleiding van de chauffeur hier essentieel zijn.