GPU 直通给 Windows VM:能测什么,不能测什么
规划 PVE GPU 直通 Windows VM,理解 IOMMU/vfio/vBIOS 问题,并把 VM 结果与物理机性能分开。
测试环境Pro (26H2) · 版本号 26300.9457 · x64
E1- 版本号
- 26300.9457
- 版本
- Pro (26H2)
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-28
- 页面类型
- 实验
GPU 直通把真实 GPU 通过 VFIO 给 VM。它很适合测驱动、UI、调优和不少游戏,但不是物理机 benchmark 机:
- CPU 开销和 VM exit 仍在;
- 显示/采集路径会增加延迟;
- 一些反作弊和 DRM 拒绝 VM;
- 厂商驱动可能检测/限制虚拟化;
- 单 GPU 宿主需要特殊处理。
VM 结果只能标 M-V,不能当绝对 FPS 结论。
| 要求 | 原因 |
|---|---|
| IOMMU 开启(VT-d/AMD-Vi) | 隔离 GPU |
| ACS / 干净的 IOMMU 组 | GPU 必须与宿主隔离 |
| vfio-pci 绑定 | 宿主不能占用 GPU |
| GPU vBIOS / reset 支持 | 某些卡需要 ROM 或 reset workaround |
| 第二块 GPU 或核显 | 直通后宿主仍要显示 |
| PVE hostpci 配置 | 把设备挂给 VM |
| Windows VM(q35/OVMF) | 匹配 GPU 驱动栈 |
- 固件和内核命令行开启 IOMMU。
- 确认 IOMMU 组:
find /sys/kernel/iommu_groups/ -type l。 - 黑名单宿主驱动,把 GPU/音频功能绑到
vfio-pci。 - 把 PCI 设备加到 VM(
hostpci0),按需设置 PCIe/ROM。 - Windows 里装厂商驱动。
- 用设备管理器 +
nvidia-smi/Adrenalin/Arc Control 验证。 - 跑已知负载,记录 VM 配置。
不要从论坛抄一行 hostpci 就上;先查自己的 IOMMU 组和设备 ID。只直通 GPU 不直通音频功能,或用错 ROM,可能黑屏。
| 问题 | VM 结果有用? | 限制 |
|---|---|---|
| 驱动能装吗? | 有用 | 驱动在 VM 里行为可能不同 |
| 游戏能启动吗? | 有用 | 反作弊可能拒绝 |
| 驱动/设置相对变化 | 有用,标 M-V | 同一 VM、同一宿主 |
| 与物理机绝对 FPS | 不能直接比 | CPU/VM 开销、显示路径 |
| 延迟 | 小心 | 采集/显示增加误差 |
| 续航/散热 | 无意义 | 不代表物理机 |
反作弊与许可
Section titled “反作弊与许可”一些反作弊把 VM 当不可信环境;一些 NVIDIA/AMD 功能或许可条款限制虚拟化。查厂商和游戏条款;不要试图对反作弊隐藏 VM。
更安全的测试设计
Section titled “更安全的测试设计”- 宿主用第二块 GPU,或用 IPMI/串口的无头宿主。
- 改 vfio/hostpci 前保留已知良好快照。
- 记录宿主 GPU、vBIOS、PVE 版本和 VM 配置。
- 只比较同一 VM、同一宿主的运行。
- 结果影响购买决策时,在物理机上复核。