背景
GPU-PV(GPU Paravirtualization)是Hyper-V虚拟化系统上的GPU半虚拟化技术。
半虚拟化(PV)提供与其基础硬件类似的虚拟机(VM)的接口。 在 PV 中,在安装虚拟机之前要明确移植客户操作系统,因为非定制的客户操作系统无法在虚拟机监控器 (VMM) 上运行。
优势:
1、多个 VM 共享硬件资源。
2、驱动程序代码中需要进行少量更改。
Windows支持GPU-PV主要是对Windows显示驱动(WDDM)的修改。WDDM 2.4开始支持GPU-PV。
微软的官方对外宣传只是提到了GPU-PV可以支持WSL2。并未官宣通过半虚拟化支持Windows桌面操作系统。可以Windows桌面支持GPU-PV还处于实验状态。
有关GPU半虚拟化与GPU分区的技术比较,参见如下文章。
https://www.doracloud.cn/news/GPUvirtualization-cn.html
安装前准备
硬件环境
i7-8700,32G,1TB SSD 显卡:NVIDIA RTX A4000
网络环境
局域网环境,可以访问互联网,局域网内开启了DHCP服务。
软件清单
- 服务器系统:Windows Server 2025
- 云桌面系统:DoraCloud V4.0 for Hyper-V
- 桌面操作系统:Windows 10/Windows 11
部署过程
1、安装 Windows Server 2025,安装显卡驱动,安装Hyper-V
Windows Server安装过程、显卡驱动安装、Hyper-V安装,不详细介绍。
安装完毕后,执行PowerShell 脚本命令,配置服务器,启用GPU-PV。
Enable-GPUPV
2、安装DoraCloud for Hyper-V
安装过程不详细介绍。
DoraCloud 安装后,在服务器的【我的文档】目录下,有一个 GPUPV.txt 文件。里面有关于GPU-PV的使用说明。 可以参考。
3、下载模板 win11LTSC2024Gen2
3、编辑模板,注入半虚拟化驱动,设置虚拟机属性
先执行驱动注入的命令,期间会验证 客户机的管理员账号。该命令会把 Windows Server上的显卡驱动拷贝到桌面虚拟机的Windows 系统目录内。
Inject-GPUDriverFiles -VMName "Win11LTSC2024Gen2"
然后执行如下脚本,设置模板虚拟机的属性。
$VMName = "Win11LTSC2024Gen2"
Set-VM -GuestControlledCacheTypes $true -VMName $VMName
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $VMName
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $VMName
然后启动虚拟机
Start-VM -Name "Win11LTSC2024Gen2"
接下来,回到浏览器,在模板编辑向导中,保存编辑后的模板。
4、创建桌面池,选择GPU名称和vGPU类型为 GPU-PV
桌面池创建后,等到桌面创建完毕。
可以在桌面属性中看到vGPU名称。
5、创建群组和用户,连接桌面
创建群组、用户。 然后连接桌面。可以选择 DoraClient 或者 DoraOS云终端连接。登录桌面后,可以看到桌面有GPU卡。
GPU-PV应用建议
1、GPU-PV没有官方支持,包括微软、显卡厂家、VDI厂家。稳定性未经市场验证。只能可以从一下在线社区得到有限的支持。
2、GPU-PV是多个虚拟机共享一个显卡,相互之间缺少资源的隔离。
3、Host 和 Guest 的Windows 版本不匹配,或者不适的显卡驱动,可能引发服务器和客户机同时崩溃。
4、建议用于开发、测试,或者小规模使用。