Hyper-V GPU直通配置指南
2026-06-18
什么是 Hyper-V GPU 直通?
Hyper-V GPU 直通允许将宿主服务器上的物理 GPU 直接分配给虚拟机,使虚拟机能够使用真实的 GPU 性能,而非依赖模拟图形。这对于机器学习、CAD 建模、视频编码或科学计算等资源密集型任务至关重要。
典型使用场景
-
AI/ML 模型训练与推理
-
CAD/CAM 与 3D 设计
-
视频编辑与渲染
-
虚拟桌面基础架构(VDI)
-
科学模拟
-
数据分析与高性能计算工作负载
Hyper-V 中 GPU 直通的关键优势
-
性能提升
-
应用程序兼容性
-
资源整合
-
增强的安全性与隔离性
-
灵活的开发与测试
-
成本效益
Hyper-V GPU 直通设置的先决条件
在设置 Hyper-V GPU 直通之前,请仔细检查硬件和软件两方面的要求。遗漏任一细节都可能导致令人困扰的错误。
硬件/软件验证清单
针对离散设备分配(DDA):
-
操作系统:Windows Server 2016 或更高版本,并已启用 Hyper-V 角色
-
GPU:支持的PCIe GPU(例如,NVIDIA Tesla、Quadro,AMD Radeon Pro/FirePro)
-
虚拟机类型:仅限第 2 代虚拟机
-
设置:已禁用动态内存和检查点
-
GPU 使用情况:目标 GPU 不能被宿主机或其他虚拟机使用
-
固件: UEFI,BIOS 中启用“4GB 以上解码”功能
-
可选: SR-IOV 支持(某些 GPU 推荐启用)
适用于GPU分区(GPU-P):
-
操作系统:Windows 10/11 专业版或企业版(版本1903及以上)
-
GPU:支持分区功能的现代 GPU
-
虚拟机类型:仅限第 2 代虚拟机
-
PowerShell: 驱动注入所必需
-
可选:在 BIOS 中启用可调整大小的 BAR 以获得更佳性能
-
安全性:如果出现问题,请禁用基于虚拟化的安全功能(例如核心隔离)
注意:在启用 GPU-P 的虚拟机上同时使用 WSL2 可能导致资源冲突,因为 WSL2 会独占某些 GPU 的访问权限。
启用GPU直通的终极指南
离散设备分配(DDA)适用于需要极致性能的场景,即将整块物理显卡独占分配给单个虚拟机——例如深度学习服务器或高端渲染节点。
Hyper-V GPU 直通部署的最佳实践
-
为顺利部署 Hyper-V GPU 直通,请遵循以下最佳实践:
-
尽可能同时更新主机和客户机驱动程序。
-
监控温度和风扇转速,尤其是在高密度机架式机箱中。
-
对于生产服务器,请至少专门配置一个非直通的板载/集成网卡,仅用于控制台/KMS 功能。
-
除非供应商明确支持虚拟化功能,否则请勿将消费级游戏显卡与数据中心工作负载混用。
-
仅使用第二代虚拟机,以获得更好的UEFI支持以及更完善的隔离性/安全边界。
-
首次部署前,请在 BIOS/固件菜单中启用 SR-IOV 和 Above4GDecoding 选项。
在 Windows Server 中启用 GPU 直通的分步教程:
首要事项:在进行涉及硬件分配的配置更改前,请先关闭目标虚拟机!
1. 禁用自动检查点和动态内存:
这些必须关闭,以免干扰直接设备映射。
Set-VM -Name <VMName> -AutomaticStopAction TurnOffSet-VM -Name <VMName> -DynamicMemoryEnabled $false
2. 预留内存映射 I/O 空间:
您需要预留足够的地址空间,以确保客户操作系统能够识别显卡所暴露的所有显存/固件区域。
Set-VM -Name <VMName> -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 3072 -HighMemoryMappedIoSpace 33280
数值单位为兆字节(MB):此处我们预留约3GB的低MMIO空间,以及约32GB的高MMIO空间。
3. 查找物理 GPU 的位置路径:
打开设备管理器 > 展开显示适配器,右键单击目标显卡 > 选择属性 > 切换到详细信息选项卡,将属性下拉菜单设为位置路径,然后复制以PCIROOT...开头的值。
或者通过 PowerShell:
Get-PnpDevice | Where {$_.Class -eq "Display"} | Select Name,InstanceId
如果“显示”下方没有任何内容,请尝试按厂商名称搜索(Where {$_.FriendlyName -like 'NVIDIA'})。
4. 从主机卸载设备:
请使用此命令——请注意,使用 –force 参数将立即从主机控制中移除该设备!如果这是您台式机系统的主显示适配器,而非配备集成显卡(可用于控制台输出)的无头服务器硬件,您可能会丢失本地显示画面!
Dismount-VmHostAssignableDevice -LocationPath "<YourLocationPath>" -force
如果因有活动进程锁定设备而导致卸载失败:请先在“设备管理器”中暂时禁用该设备,再重试上述 PowerShell 命令。
5. 直接将设备分配给目标虚拟机:
Add-VMAssignableDevice -VMName <VMName> -LocationPath "<YourLocationPath>"
6. 启动虚拟机并安装驱动程序:
启动您的客户操作系统;在“显示适配器”下打开其自身的设备管理器——此时您应该能看到“Microsoft Hyper-V 视频”以及您实际的独立显卡均已列出!如有需要,请在客户操作系统内安装最新版驱动程序(NVIDIA 或 AMD),务必确保驱动程序版本与客户操作系统的版本相匹配,而非使用宿主机的驱动程序!
7. 稍后移除/收回卡片:
将控制权从客户机返回到宿主池:
Remove-VMAssignableDevice -VMName <VMName> -LocationPath "<YourLocationPath>"Mount-VMHostAssignableDevice -LocationPath "<YourLocationPath>"
验证是否成功
完成设置且客户机设备管理器中驱动程序加载后未显示错误图标,或运行一个快速基准测试应用程序后,即表示已准备就绪!由于应用程序代码与物理硬件之间不存在虚拟化开销,因此性能接近裸机水平。
在 Windows 10/11 中启用 GPU 直通的分步教程
如果灵活性比极致性能更重要——例如,多个用户需同时获得中等程度的加速——可考虑采用微软较新的“GPU 分区(GPU-P)”模型,通过分区虚拟 GPU(vGPU)将一块大型显卡分配给多个较小的任务。
1. 确认您的卡片支持分区功能:
在 Windows 的最新版本中:
Get-VMPartitionableGpu # 适用于 Windows 10 及更高版本 Get-VMHostPartitionableGpu # 适用于 Windows 11 及更高版本
如果结果显示有任意兼容设备,则说明配置正常!
2. 向目标虚拟机添加 GpuPartition 适配器:
请确保目标虚拟机已关机,然后再继续操作!
添加-VMGpuPartitionAdapter -VMName <VMName>
3. 使用脚本将主机驱动程序复制到客户机中:
一个名为 Easy-GPU-PV 的流行脚本可自动注入驱动程序([GitHub 项目链接可根据要求提供])。请将其下载并解压到宿主系统,然后运行:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force.\Update-VMGpuPartitionDriver.ps1 -VMName <VMName> -GPUName "AUTO"
此操作会将当前正在使用的驱动程序复制到客户机镜像中,确保应用程序在启动后能正确识别其分配的虚拟 GPU 分区——即使官方安装程序禁止在虚拟化环境中安装!
4. 为访客访问预留充足的MMIO空间:
再次提醒:以下数值单位为兆字节(MB),而非千兆字节(GB)!
Set‑VM ‑Vmname <Vmname> ‑GuestControlledCacheTypes $true ‑LowMemoryMappedIoSpace 1024 ‑HighMemoryMappedIoSpace 32768
如果使用大容量显存的显卡(VRAM > 24 GB),请将数值调高。
5.(可选)按分区精细调整资源分配 (仅限 Windows 11):
您可以为每个适配器实例设置最小/最大显存(VRAM):
Set‑VMGpuPartitionAdapter –Vmname <Vmname> –MinPartitionVRAMBytes <min_bytes> –MaxPartitionVRAMBytes <max_bytes>
示例:根据工作负载需求,为每个分区分配约 800 MB 至 1 GB 的显存。
6.(重要)避免与 WSL 或其他服务发生冲突:
如果同时安装并运行了 WSL2,它可能会对相同的底层硬件获取独占锁,从而导致客户机在启动或资源分配过程中出现故障!如果问题持续存在,请暂时禁用 WSL(参阅微软官方指南)。
验证成功
启动目标客户操作系统;在其“设备管理器”中打开“显示适配器”选项卡——此时应出现一个新条目,名称类似于“虚拟渲染设备”,与默认的视频输出设备并列。运行测试应用程序,例如 Blender 的 Cycles 渲染器或 TensorFlow 训练任务;这些程序将通过各自的 API 报告已映射的可用 CUDA/OpenCL 资源。
Hyper-V GPU 直通故障排除
即使是经验丰富的管理员也会遇到问题!以下是一些常见问题及解决方法:
-
客户操作系统中安装驱动程序后出现代码43错误:这通常意味着安装了错误版本的驱动程序,或存在其他进程遗留的锁定。请在客户操作系统内卸载并重新安装正确的驱动程序包,而非通过标准安装程序进行安装。
-
“启动失败”或开机黑屏:确保在整个生命周期内禁用动态内存和检查点功能,并确认集群节点中没有任何其他进程占用同一PCIe设备ID的锁。
-
-
分配成功但性能不佳:检查是否存在 CPU/内存瓶颈,并确保存储子系统与网络子系统之间的带宽充足。
-
WSL/GPU 资源争用:若使用 WSL2,请在虚拟机或容器中执行 GPU 密集型任务期间暂时禁用 WSL2。
提示:使用专业解决方案保护您的 Hyper-V 虚拟
机
当您已完成 Hyper-V 的 GPU 直通配置,并在 Hyper-V 环境中运行关键业务负载时,必须采取措施防范数据丢失或停机风险,以保障您的投资安全——此时,Vinchin 备份与恢复作为一款专为虚拟化基础设施(如您的环境)打造的企业级备份解决方案,便派上了用场。
Vinchin 专注于为超过十五种主流虚拟化平台(包括 Hyper-V、VMware、Proxmox VE、oVirt、XenServer、OpenStack 等)量身打造的专业备份与灾难恢复解决方案。
借助 Vinchin,无论您的虚拟机采用标准配置还是直通等高级配置,均可通过强大的备份功能、高效的备份策略以及灵活的恢复选项获得保护。该解决方案还提供易于使用的 Web 控制台,让您能够轻松、快速地上手使用。
Vinchin 备份与恢复的操作非常简单,只需几个简单的步骤。
步骤 1:在主机上选择 Hyper‑V 虚拟机
步骤 2:然后选择备份目标位置
步骤 3:选择策略
第四步:最后提交任务
Vinchin 为您的虚拟机提供全面保护,包括高级直通配置。全球数千家机构信赖 Vinchin,我们为您提供 功能完整的 15天免费试用,让您在投入任何成本之前,零风险体验全部功能。
下载免费试用版
适用于多种数据备份
* 15天全功能免费安全下载
Hyper-V GPU 直通常见问题解答
问题1:我能否在 Windows 家庭版上使用 Hyper-V GPU 直通功能?
A1:不支持。您需要 Pro、Enterprise 或 Education 版本;Home 版本不支持所需的虚拟化功能。
Q2:升级主机后,如何更新直通驱动程序?
A2: 重新运行 Easy-GPU-PV 脚本,目标为更新后的驱动程序堆栈;随后重启受影响的客户机。
问题3:GPU直通会增加虚拟机的启动时间吗?
A3:通常不会。任何增幅通常都很小。
Q4:我能否向正在运行的虚拟机热添加 GPU?
A4:否。大多数GPU直通场景要求在进行更改之前先关闭虚拟机。
结论
Hyper‑V 直通功能为高要求工作负载打开了新大门——但需在硬件兼容性、驱动程序管理及持续监控方面进行周密规划。借助 Vinchin,无论工作负载多么复杂,您都能安心确保每一项关键任务始终受到保护。立即开启 15 天免费试用!