必须严格满足BIOS开启VT-d/AMD-Vi、Above 4G Decoding等硬件前提,运行Get-VMHostPartitionableGpu验证GPU兼容性,再通过PowerShell执行四步VM配置、GPU分区绑定与显存参数设定,并将宿主机驱动完整复制至虚拟机HostDriverStore目录后手动安装,缺一不可。

要在Win11宿主机上让Hyper-V虚拟机真正用上物理GPU做CUDA推理、4K硬解或3A游戏,必须绕过默认的虚拟显卡,把显卡直通给虚拟机独占使用——这不是点几下鼠标就能完成的事,BIOS设置错一步、PowerShell命令漏一个参数、驱动拷错目录,整套流程就会卡死在设备管理器里的黄色叹号上。
确认硬件与系统是否支持直通
先打开PowerShell(管理员),运行这条命令检查CPU和主板是否已启用IOMMU能力:
Get-VMHostPartitionableGpu
如果返回空,说明要么BIOS里没开VT-d(Intel)或AMD-Vi(AMD),要么Above 4G Decoding被禁用,又或者UEFI GOP不兼容。此时不要往下走,重启进BIOS逐项核对:VT-x/AMD-V、VT-d/AMD-Vi、Above 4G Decoding、Resizable BAR(部分新卡需要)、CSM必须关闭。缺任意一项,DDA直通直接失败。
确认显卡驱动版本≥WDDM 3.0:按Win+R输入dxdiag→“显示”选项卡→看“驱动程序模型”是否为WDDM 3.0或更高。N卡请去nvidia.cn下载Studio驱动,A卡用Adrenalin最新版,核显需Intel Arc显卡驱动。
配置虚拟机并分配GPU资源
确保虚拟机已关机,且是第二代虚拟机、版本≥9.0、已关闭动态内存和检查点功能。
以管理员身份运行PowerShell,依次执行以下命令(把YourVMName替换成你虚拟机的真实名称):
$vm = "YourVMName"
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
Add-VMGpuPartitionAdapter -VMName $vm
这四条命令必须严格按顺序执行,缺一不可。其中-HighMemoryMappedIoSpace 32GB是关键,低于16GB会导致显存映射失败,虚拟机启动后设备管理器里显卡显示“此设备无法启动(代码43)”。
绑定具体显卡并设置显存分区
方法一:自动匹配显卡型号(推荐新手)
执行:
$gpu = Get-VMHostPartitionableGpu | Where-Object { $_.Name -match "VEN_10DE" } | Select-Object -First 1
if ($gpu) { Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu.InstancePath }
VEN_10DE对应NVIDIA,VEN_1002对应AMD,VEN_8086对应Intel核显。若返回空,请重新检查驱动安装状态和Get-VMHostPartitionableGpu输出。
方法二:手动指定Location Path(适合多显卡环境)
第一步:运行Get-PnpDevice -Class Display | fl Name,InstanceId,找到目标显卡的InstanceId,形如PCIVEN_10DE&DEV_2484&SUBSYS...;
第二步:把InstanceId开头的PCI替换成\?PCI#,末尾去掉&及之后所有内容;
第三步:构造完整InstancePath,例如\?PCI#VEN_10DE&DEV_2484&SUBSYS_1462390B&REV_A1#4&1F7D5C2E&0&0008#{...};
第四步:执行Add-VMGpuPartitionAdapter -VMName $vm -InstancePath "你的完整路径"。
⚠️注意:InstancePath中不能含中文、空格或特殊符号,复制时务必核对是否截断。
配置GPU分区参数
执行以下命令设置显存与编解码资源分配(单位字节):
Set-VMGpuPartitionAdapter -VMName $vm `
-MinPartitionVRAM 80000000 `
-MaxPartitionVRAM 100000000 `
-OptimalPartitionVRAM 100000000 `
-MinPartitionEncode 80000000 `
-MaxPartitionEncode 100000000 `
-OptimalPartitionEncode 100000000 `
-MinPartitionDecode 80000000 `
-MaxPartitionDecode 100000000 `
-OptimalPartitionDecode 100000000 `
-MinPartitionCompute 80000000 `
-MaxPartitionCompute 100000000 `
-OptimalPartitionCompute 100000000
这些数值对应约1.25GB~1.58GB显存,适合大多数轻量AI推理和1080p游戏。若需更大显存,请按实际卡显存大小×0.8换算,但【不能超过宿主机GPU最大可分区值】,该值可通过$gpu.MaxPartitionVRAM查得。
复制显卡驱动到虚拟机
宿主机驱动路径固定为:
C:WindowsSystem32DriverStoreFileRepository
在该目录下找以nv_dispi.inf(N卡)或amd_*.inf(A卡)开头的文件夹,进入后确认包含nvlddmkm.sys或atikmdag.sys等核心驱动文件;
将整个文件夹复制到虚拟机的:
C:WindowsSystem32HostDriverStoreFileRepository
若该路径不存在,请在虚拟机中手动创建;
N卡还需额外复制C:WindowsSystem32
vapi64.dll到虚拟机相同路径;
A卡需把设备管理器→显卡属性→驱动程序→驱动程序详细信息里列出的所有文件,按原始路径结构一并复制。
驱动放好后,在虚拟机设备管理器中右键显卡→“更新驱动程序”→“浏览我的电脑”→指向C:WindowsSystem32HostDriverStoreFileRepository下的对应文件夹,强制安装。

















