Hyper-V GPU直通可行但需严格满足前提:BIOS启用VT-d/AMD-Vi和VT-x/AMD-V,CPU与GPU兼容DDA,系统为Win11专业版22H2+或Server 2016+,虚拟机为第二代且已关机,禁用动态内存与检查点。
hyper-v 下 gpu 直通(gpu passthrough,简称 gpu-p)可行,但不是“开箱即用”,需硬件支持、系统配置和驱动协同配合。核心在于启用离散设备分配(dda),让虚拟机绕过宿主机直接控制物理 gpu。
硬件与系统前提必须满足
缺一不可,否则后续步骤全部无效:
- 主板 BIOS/UEFI 中开启 IOMMU:Intel 平台叫 VT-d,AMD 平台叫 AMD-Vi;同时确认 VT-x / AMD-V 已启用
- CPU 和显卡需兼容 DDA:推荐 NVIDIA Turing 架构及以上(RTX 20/30/40 系列或 Tesla/Quadro 数据中心卡),部分 AMD RDNA2+ 显卡也支持,但需查证具体型号是否出现在
SurveyDDA.ps1兼容列表中 - 操作系统为 Windows 11 专业版/企业版 22H2 或更新,或 Windows Server 2016+;已启用 Hyper-V 角色
- 虚拟机必须是 第二代,且处于 完全关机状态(非保存状态或暂停)
- 禁用虚拟机动态内存、检查点、安全启动(部分场景需临时关闭)
两种主流实现路径
根据技术偏好选择:
- 图形化方式(推荐新手):使用 DiscreteDeviceAssigner(DDA 工具)。下载编译后以管理员身份运行 → 扫描设备 → 绿色标识设备可直通 → 选中目标 GPU 和关机中的虚拟机 → 点击“完成分配”。工具自动处理设备隔离、MMIO 配置等底层操作
-
PowerShell 命令方式(适合自动化/进阶):先运行
.\SurveyDDA.ps1确认设备路径;再执行:Disable-PnpDevice -InstanceId "PCI\VEN_10DE&DEV_2484..." -Confirm:$false(禁用宿主机驱动)Add-VMAssignableDevice -LocationPath "PCI\VEN_10DE&DEV_2484..." -VMName "Ubuntu-VM"
虚拟机内关键配置与驱动
直通成功 ≠ 能用,驱动适配才是落地关键:
- Linux 虚拟机(如 Ubuntu):启动后识别到 GPU(
lspci | grep VGA),需安装对应厂商的 数据中心版驱动(NVIDIA Data Center Driver),普通桌面版驱动通常不支持直通环境 - Windows 虚拟机:不能直接用宿主机驱动。需从宿主机
C:\Windows\System32\DriverStore\FileRepository\找到对应显卡驱动文件夹(如nv_dispi.inf_amd64_...),完整复制到虚拟机C:\Windows\System32\HostDriverStore\FileRepository\,再通过设备管理器手动更新驱动 - 无论哪种系统,首次启动建议在安全模式下安装驱动,避免蓝屏或初始化失败
性能调优与常见避坑点
参数设错或忽略细节,会导致黑屏、低性能甚至无法启动:
- 显存与计算资源需合理分配:用
Set-VMGpuPartitionAdapter设置-Min/Max/OptimalPartitionVRAM(单位字节,如100MB = 0x6400000),避免设过高导致宿主机无显存可用 - 必须提前扩大 VM 的 MMIO 空间:
Set-VM -LowMemoryMappedIoSpace 1GB -VMName "VM"Set-VM -HighMemoryMappedIoSpace 32GB -VMName "VM" - 启用 Guest Controlled Cache Types:
Set-VM -GuestControlledCacheTypes $true -VMName "VM" - 宿主机务必禁用 GPU 设备(设备管理器中右键→“禁用设备”),否则会抢断 PCIe 控制权

















