# GPU 直通给 Windows VM：能测什么，不能测什么

> 规划 PVE GPU 直通 Windows VM，理解 IOMMU/vfio/vBIOS 问题，并把 VM 结果与物理机性能分开。

**测试环境**

- 版本号: 26300.9457
- 版本: Pro (26H2)
- 架构: x64
- 证据: 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 驱动栈 |

## 大致流程

1. 固件和内核命令行开启 IOMMU。
2. 确认 IOMMU 组：`find /sys/kernel/iommu_groups/ -type l`。
3. 黑名单宿主驱动，把 GPU/音频功能绑到 `vfio-pci`。
4. 把 PCI 设备加到 VM（`hostpci0`），按需设置 PCIe/ROM。
5. Windows 里装厂商驱动。
6. 用设备管理器 + `nvidia-smi`/Adrenalin/Arc Control 验证。
7. 跑已知负载，记录 VM 配置。

不要从论坛抄一行 hostpci 就上；先查自己的 IOMMU 组和设备 ID。只直通 GPU 不直通音频功能，或用错 ROM，可能黑屏。

## 可以测什么

| 问题 | VM 结果有用？ | 限制 |
|---|---|---|
| 驱动能装吗？ | 有用 | 驱动在 VM 里行为可能不同 |
| 游戏能启动吗？ | 有用 | 反作弊可能拒绝 |
| 驱动/设置相对变化 | 有用，标 M-V | 同一 VM、同一宿主 |
| 与物理机绝对 FPS | 不能直接比 | CPU/VM 开销、显示路径 |
| 延迟 | 小心 | 采集/显示增加误差 |
| 续航/散热 | 无意义 | 不代表物理机 |

## 反作弊与许可

一些反作弊把 VM 当不可信环境；一些 NVIDIA/AMD 功能或许可条款限制虚拟化。查厂商和游戏条款；不要试图对反作弊隐藏 VM。

> **警告: 本实验室没有 GPU 直通**
>
> 我们的 PVE VM 361 没有 GPU 直通。本页是 **E1** 指南；没有产出 M-V GPU 结果。不要把它当 benchmark。

## 更安全的测试设计

- 宿主用第二块 GPU，或用 IPMI/串口的无头宿主。
- 改 vfio/hostpci 前保留已知良好快照。
- 记录宿主 GPU、vBIOS、PVE 版本和 VM 配置。
- 只比较同一 VM、同一宿主的运行。
- 结果影响购买决策时，在物理机上复核。

## 来源

- [Proxmox VE — PCI 直通](https://pve.proxmox.com/wiki/PCI_Passthrough)
- [Proxmox VE — Windows 11 guest best practices](https://pve.proxmox.com/wiki/Windows_11_guest_best_practices)
- [NVIDIA — 虚拟化支持](https://www.nvidia.com/en-us/data-center/virtualization/)

---

来源页面: https://winbook.fyi/zh/windows/dev/gpu-passthrough/
