logo vmware

NVIDIA GPU passthrough naar vSphere guest vm

Een remote desktop session host server heeft veel performance baat bij het toevoegen van een GPU kaart. Wanneer je RDSH server een VM is, denk je meteen aan PCI passtrough. Dat wordt onder andere bemoeilijkt door NVIDIA’s licentie beleid.

Zo zul je kun je bij een HPE ProLiant ML350 Gen11 een NVIDIA A16 64GB Accelerator kiezen. Hiervan kun je ook nog de passthrough instellen binnen VMWare, maar dan werkt je RDP nog steeds via de standaard video kaart. We zullen dus een aantal zaken moeten instellen en regelen.

We beginnen met het beschikbaar maken van de NVIDIA kaart voor Passthrough. Ga daarvoor naar Hardware > PCI Devices op je host en selecteer je GPU. Klik vervolgens op Toggle passthough om deze aan te zetten.

Edit vervolgens je vm en kies voor Add other device om vervolgens een PCI device te kiezen. Voeg de NVIDIA devices toe en sla je vm settings op. Let er op dat je niet een van die cores dubbel toevoegt, wanneer je dat doet kun je je VM niet booten.

Vervolgens dien je nog de pciPassthru.use64bitMMIO en pciPassthru.64bitMMIOSizeGB in te stellen op je vm. Dat doe je onder Advanced Configuration. Dit stel je in op machten van 2, dus 2, 4, 8, 16, 32, 64, 128, 256, 512 etc. Valt je totaal tussen 2 machten, kies je degene er boven en verdubbel je de waarde.

Voorbeelden:
32 GB / valt op een macht / neem 32, waarde keer 2 / pciPassthru.64bitMMIOSizeGB = 64
40 GB / valt tussen 32 en 64 / neem 64, waarde keer 2 / pciPassthru.64bitMMIOSizeGB = 128
64 GB / valt op een macht / neem 64, waarde keer 2 / pciPassthru.64bitMMIOSizeGB = 128
80 GB / valt tussen 64 en 128 / neem 128, waarde keer 2 / pciPassthru.64bitMMIOSizeGB = 256

Als laatste pas je de RAM reservation aan, naar een gelijke waarde als het toegekende RAM.
memory reservation (sched.mem.min) should be equal to memsize(40960).

Start nu je vm op en ga naar de NVIDIA Virtual GPU (vGPU) Software site. Maak een account aan, je hebt dat nodig om de juiste set drivers te downloaden en om alvast een 90 dagen test licentie te verkrijgen.

Download de “NVIDIA-GRID-vSphere-8.0-535.154.02-535.154.05-538.15.zip” set. Stel dat je de kaart wil aanspreken door 2 RDS hosts, dan zul je ook de host driver en management daemon moeten installeren op je host. Upload daarvoor de nvd-gpu-mgmt-daemon_xxx.zip en NVD-VGPU-800_535.154.02xxx.zip naar een datastore van je host.

esxcli software vib install -d /vmfs/volumes/datastore/NVD-VGPU-800_535.154.02xxx.zip
esxcli software vib install -d /vmfs/volumes/datastore/nvd-gpu-mgmt-daemon_xxx.zip

Reboot na de installatie je host. Na de herstart controleer je dat de management daemon gestart is middels

/etc/init.d/nvdGpuMgmtDaemon status

Binnen je vm pak je de driver set uit en installeer je deze…

Om te controleren dat de NVIDIA kernel driver de GPU’s kan aanspreken voer je het onderstaande controle commando uit. Ook toont deze commandline tool aan of je GPU in TCC of WDDM modus zit. Indien je kaart in TCC modus is uitgelerd, zul je nog een token moeten genereren.

nvidia-smi

Staat je kaart in TCC modus? Dan is het vereist om een token te genereren op de NVIDIA site . Dit moet je op je vm plaatsen, en wel in de map

%SystemDrive%:\Program Files\NVIDIA
Corporation\vGPU Licensing\ClientConfigToken

Na het plaatsen van het token herstart je de NvDisplayContainer service.

Hierna kun je binnen het NVIDIA Control Panel je licentie beheren. Standaard zal deze op NVIDIA Virtual Applications staan.

Stel binnen je group policies, op domein of lokaal, nog in dat de Remote Desktop session host de “hardware default graphics adapter” moet gebruiken. Vergeet daarbij de gpupdate /force niet.

Als laatste probeer je de fishbowl test <°))))>< WebGL Aquarium (webglsamples.org)

<°))))>< <°))))>< <°))))>< )><((((°>