GPU Passthru using Hyper-V Server 2019

We found a Dell Precision 7920 tower sitting under a desk. It’s got dual Xeon Silver 4114 CPU’s, 32GB of RAM, 4TB of storage and for some reason DUAL Quadro P4000’s in it, and the warranty expired in April of 2021.

So I figured fun little system to play around with. Iv’e got Hyper-V Server non-GUI installed on it and running quite well. But I figured, hey let’s try to see if I can pass thru the Quadro’s to the VM’s and see what happens.

I have all the Virtualization options enabled in the BIOS, but by some script I found on Reddit it’s not passing the PCI info from the BIOS control.

Is there anyone around that help me figure out if this is actually possible?

Make sure “VT for Direct I/O” is enabled in the UEFI.

https://www.dell.com/support/manuals/en-us/precision-7920-workstation/precision_7920_om_pub/virtualization-support?guid=guid-e32aec55-1f73-4331-84c5-6fc875783b29&lang=en-bz

As I said, I have all the options check-marked in the BIOS.

Ok, then.

I’d personally try to see what happens in a Linux OS, if the IOMMU groups show up and what they look like. This would help separate hardware/firmware from the software.

Not all motherboards have VT-D under the virtualization section, or they separate it from the “Virtualization” (e.g. the VT-x toggle) option.

Have you tried using Powershell to attach the device? I can’t post links but you can search “Passing through devices to Hyper-V VMs by using discrete device assignment” (with quotes) and there’s a Microsoft dev blog post with details

At a high level, you find the PCIe device instance ID, disable it on the host, then attach it to the VM. I’ve never done a GPU but it was pretty easy to pass an HBA through

You’ll use the Powershell commands
Get-PnpDevice
Disable-PnpDevice
Add-VMAssignableDevice

I saw the MS articles on it, but it didn’t say it was done in Powershell, which I assumed, but I am using a non-GUI install so I can’t just cut/paste the commands. This is gonna be rough.

I just can’t seem to get the PCIe to passthru. All Virtualization options that I can find in the BIOS are turned on. It uses an Intel C621 chipset with support VT and SR-IOV.

This powershell command: curl -o SurveyDDA.ps1 https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/live/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1
.\SurveyDDA.ps1

Downloads a script that probes the system to find where the GPU’s are for the ID’s but it keeps returning that it isn’t supported on this system.