Hyper-V 虚拟机显卡直通 VGPU 配置指北
Contents
如何在 Hyper-V 虚拟机中配置虚拟 GPU(VGPU)直通,使用 NVIDIA 显卡实现 GPU 加速。以下是详细的配置步骤和注意事项,基于 NVIDIA GeForce GTX 1650(GPU: TU117)测试环境。
前提条件
-
硬件要求:
- 显卡:NVIDIA 显卡,支持 NVENC 功能。本文以 NVIDIA GeForce GTX 1650(GPU: TU117)为例。
- 驱动:显卡驱动的 WDDM 版本需大于 2.4。测试环境中使用 WDDM 2.7(可通过 dxdiag 的“显示”页面查看)。
-
系统要求:
- 主机运行 Windows 10/11 专业版或企业版,支持 Hyper-V。
- 提前安装好win10或win11虚拟机且处于关闭状态以进行配置。
-
工具准备:
- PowerShell(建议以管理员权限运行)。
- NVIDIA 显卡驱动已正确安装在宿主机上。
配置步骤
1. 配置 Hyper-V 虚拟机 VGPU
以下 PowerShell 脚本用于为虚拟机启用 VGPU,并限制其最多使用主机 GPU 资源的 70%。请根据实际虚拟机名称修改 $vm 变量。
# 定义虚拟机名称,需要改成你自己的
$vm = "win10"
# 设置虚拟机的自动停止操作为关闭(TurnOff)
Set-VM -Name $vm -AutomaticStopAction TurnOff
# 移除现有的 GPU 分区适配器(若存在),确保从干净状态开始
Get-VMGpuPartitionAdapter -VMName $vm | Remove-VMGpuPartitionAdapter
# 添加新的 GPU 分区适配器
Add-VMGpuPartitionAdapter -VMName $vm
# 启用 GuestControlledCacheTypes,优化性能
Set-VM -GuestControlledCacheTypes $true -VMName $vm
# 设置低内存映射 I/O 空间为 1GB
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
# 设置高内存映射 I/O 空间为 32GB
Set-VM -HighMemoryMappedIoSpace 32Gb -VMName $vm
# 可选
# 设置 GPU 资源分配:显存(VRAM)、编码(Encode)、解码(Decode)、计算(Compute)
# 最小 1%,最大 70%,最佳 50%
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 1 -MaxPartitionVRAM 70 -OptimalPartitionVRAM 50
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionEncode 1 -MaxPartitionEncode 70 -OptimalPartitionEncode 50
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionDecode 1 -MaxPartitionDecode 70 -OptimalPartitionDecode 50
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionCompute 1 -MaxPartitionCompute 70 -OptimalPartitionCompute 50
2. 验证 VGPU配置
-
第一步的脚本运行后,启动虚拟机。
-
打开虚拟机的“设备管理器”,检查“显示适配器”下是否显示 NVIDIA GeForce GTX 1650(或其他对应显卡型号)。若黄色感叹号,则 VGPU 配置成功。
3. 配置显卡驱动
目前虚拟机的 GPU 还处于不可用状态,需要在虚拟机中安装与主机匹配的 NVIDIA 驱动文件。
-
宿主机驱动文件路径:
-
主机上的 NVIDIA 驱动文件通常位于:
C:\Windows\System32\DriverStore\FileRepository\
-
查找以 nv 开头的文件夹,包含 NVIDIA 驱动相关文件。
-
-
虚拟机驱动文件路径:
-
在虚拟机的 C:\Windows\System32\ 下手动创建文件夹:
C:\Windows\System32\HostDriverStore\FileRepository\
-
-
将第一步的 NV 开头文件夹复制到第二步创建的目录里
-
复制 NVIDIA API 文件:
-
将宿主机上的 nvapi64.dll 文件复制到虚拟机的相同路径:
C:\Windows\System32\nvapi64.dll
-
-
重启虚拟机
-
在虚拟机设备管理器查看驱动状态,黄色叹号已经消失了就代表可用
4. 调整虚拟机显示设置
- 禁用 Hyper-V 增强会话:
- 在 Hyper-V 管理器中,关闭虚拟机的“增强会话模式”(Enhanced Session Mode)。
- 设置分辨率:
- 在虚拟机内调整显示分辨率,确保与显卡性能匹配(例如 1920x1080 或更高,视需求而定)。
5. 推荐工具
一键配置工具(本人未验证,请自行验证)
- HyperVGPUApp:https://github.com/PIKACHUIM/HyperVGPUApp
注意事项
- 任务管理器可能无法显示 VGPU 使用信息,但只要设备管理器中显卡正常识别即可使用。
- 资源分配:
- 本文设置 GPU 资源最大为 70%,可根据需求调整 MaxPartition* 参数(例如 50% 或 90%)。
- 如果运行多个虚拟机,建议降低每个虚拟机的最大分配比例以避免资源竞争。
- 性能监控:
- 虚拟机任务管理器可能无法显示 GPU 使用率。
- 内存映射:
- HighMemoryMappedIoSpace 设置为 32GB 适用于高性能任务。如果主机内存有限,可降低到 16GB 或 8GB。