How To Enable GPU Passthrough In Hyper-V | DDA vs GPU-P

GPU passthrough in Hyper-V works through two distinct methods: Discrete Device Assignment (DDA) for full GPU exclusivity and GPU Partitioning (GPU-P) for sharing resources across VMs.

Passthrough a physical graphics card to a Hyper-V virtual machine used to be a server-only trick, but modern Windows 10 and 11 hosts now support it with consumer GPUs. Which method you use hinges on one thing: whether you need the entire GPU dedicated to one VM or you want to share it. This guide covers both DDA and GPU-P step by step, including the traps that trip up even experienced admins.

Which Hyper-V GPU Passthrough Method Should You Use?

Your hardware and use case decide the method. DDA hands the whole GPU to a single VM so it sees the card as a native device — essential for CUDA workloads, gaming, or any task requiring full raw performance. GPU-P splits the GPU’s resources among multiple VMs, letting each one accelerate graphics without monopolising the card. DDA is the only option for most NVIDIA GeForce and AMD Radeon consumer cards; GPU-P works best with enterprise-grade GPUs like NVIDIA GRID or with modern Windows 11 hosts that support the newer partitioning API.

Feature Discrete Device Assignment (DDA) GPU Partitioning (GPU-P)
GPU exclusivity Full – one VM gets the entire card Shared – multiple VMs use the same GPU
Host can still use GPU No (GPU disabled on host) Yes
Performance Near-native, full raw power Some overhead, lower than DDA
Supported consumer GPUs NVIDIA GeForce TITAN, RTX 3080 Ti, 4090; AMD Radeon RX Only enterprise cards (NVIDIA GRID, AMD MxGPU) or certain Windows 11 hosts with GPU-P
Supported host OS Windows 10 21H2+, Windows 11, Windows Server 2022 (poor DDA support) Windows 10 21H2+, Windows 11, Windows Server 2022 (recommended)
Setup complexity Moderate – requires dismounting GPU, managing device paths More steps – driver scripts, memory configuration
VM checkpoint requirement Must remove all checkpoints before configuring Must remove all checkpoints before configuring

How To Enable GPU Passthrough With DDA

DDA gives a single VM exclusive control over a physical GPU. This is the path for any consumer NVIDIA or AMD card that must appear inside a VM as if it were a native device. The following steps assume you have already enabled Intel VT-d or AMD-V and IOMMU in your UEFI / BIOS, and that your motherboard supports SR-IOV (optional but recommended).

  1. Check GPU partitioning capability. Open PowerShell as Administrator and run Get-VMHostPartitionableGpu (Windows 11) or Get-VMPartitionableGpu (Windows 10). If the command returns your GPU, the host supports DDA.
  2. Disable the GPU on the host. Open Device Manager, expand Display adapters, right‑click your GPU, and select Disable device.
  3. Find the device location path. In Device Manager, right‑click the GPU again, select Properties > Details, and choose Device path from the dropdown. Copy the full path (e.g., PCIROOT(0)#PCI(0300)#PCI(0000)).
  4. Dismount the GPU from the host. In PowerShell (Admin), run Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -Force, substituting your own path.
  5. Assign the GPU to the VM. Run Add-VMAssignableDevice -VMName "YourVMName" -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)".
  6. Install drivers inside the VM. Start the VM, open Device Manager, verify the GPU appears (often under “Other devices”), and install the latest NVIDIA or AMD drivers from the manufacturer’s website.

Note: DDA requires you to delete all VM checkpoints / snapshots before you begin. The host will not see the GPU while it is assigned to a VM.

How To Enable GPU Passthrough With GPU Partitioning (GPU-P)

GPU-P lets multiple VMs share the host’s GPU, ideal for desktop virtualisation and light graphics acceleration. This method is the recommended approach on Windows 11 and Windows Server 2022, especially when you cannot reserve an entire card for one VM. The script-based workflow below relies on the community-maintained Easy-GPU-PV project. Be sure to run every PowerShell command as Administrator.

  1. Enable UEFI features. Verify Intel VT‑d / AMD‑V and IOMMU are enabled in the UEFI / BIOS. SR‑IOV should also be enabled if your motherboard supports it.
  2. Remove all VM checkpoints. Delete any snapshots on the target VM – they block GPU‑P configuration.
  3. Set PowerShell execution policy. Run Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force, then Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser.
  4. Copy host drivers to the VM. Download the Update-VMGpuPartitionDriver.ps1 script from the Easy‑GPU‑PV repository. Run .\Update-VMGpuPartitionDriver.ps1 -VMName "YourVMName" -GPUName "AUTO". This copies the GPU driver files from the host into the VM’s driver store.
  5. Configure VM memory. Run the following three PowerShell commands:
    Set-VM -VMName "VMName" -GuestControlledCacheTypes $true
    Set-VM -LowMemoryMappedIoSpace 1Gb -VMName "VMName"
    Set-VM -HighMemoryMappedIoSpace 32Gb -VMName "VMName"
  6. Add the GPU partition adapter. Run Add-VMGpuPartitionAdapter -VMName "YourVMName".
  7. Disable the hypervisor check inside the VM. This step is critical for NVIDIA consumer GPUs. Mount the Enterprise Windows Driver Kit (WDK) ISO inside the VM, launch E:\LaunchBuildEnv.cmd, and use the provided script to disable the hypervisor check for GPU drivers. Without this, drivers will fail to load.

Common Mistakes and How To Avoid Them

  • Using DDA on Windows Server 2022 with a consumer GPU. Microsoft’s own support forums confirm that DDA support on Server 2022 is “very poor” – the GPU often becomes inaccessible to both the host and the VM. Use GPU‑P instead on Server 2022.
  • Forgetting to remove VM checkpoints. Both DDA and GPU‑P will silently fail if any checkpoint exists. Delete them before starting.
  • Using the wrong location path. The Dismount-VmHostAssignableDevice command requires the exact Device Path from Device Manager, not the generic PCI string. Copy the full path from the Details tab.
  • Setting memory values incorrectly. A LowMemoryMappedIoSpace of 0 or a HighMemoryMappedIoSpace that is too large (above 32 GB) can cause the VM to fail to boot. Stick with 1 GB and 32 GB respectively.
  • Attempting GPU passthrough on a laptop. Most laptop GPUs are integrated or lack the IOMMU / SR‑IOV support required for either method. Desktop‑class hardware is necessary.
  • Forgetting to disable the hypervisor check inside the VM. Without this, NVIDIA consumer drivers will not install, even if the GPU appears in Device Manager.

For a deeper dive into error messages and recovery steps, consult the official Microsoft troubleshooting guide for Hyper‑V GPU assignment issues.

Checklist: Ready Your Hardware And Avoid Surprises

Requirement DDA GPU‑P
Intel VT‑d / AMD‑V enabled ✅ Yes ✅ Yes
IOMMU enabled in BIOS ✅ Yes (mandatory) ✅ Yes (mandatory)
SR‑IOV enabled in BIOS ✅ Recommended ✅ Required
Desktop / workstation motherboard ✅ Required ✅ Required
Latest GPU drivers on host ✅ Required ✅ Required
VM checkpoints removed ✅ Required ✅ Required
GPU licensing (enterprise cards) ❌ Not needed ✅ vGPU license per VM

References & Sources

Please use a real email you check. If it's fake or mistyped, your message won't reach us and we can't reply — wrong addresses are rejected automatically.