DoraCloud配置GPU半虚拟化(GPU-PV)

背景

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

1748079129571

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

1748078698025

桌面池创建后,等到桌面创建完毕。

可以在桌面属性中看到vGPU名称。

1748078901719

5、创建群组和用户,连接桌面

创建群组、用户。 然后连接桌面。可以选择 DoraClient 或者 DoraOS云终端连接。登录桌面后,可以看到桌面有GPU卡。

1748078995674

GPU-PV应用建议

1、GPU-PV没有官方支持,包括微软、显卡厂家、VDI厂家。稳定性未经市场验证。只能可以从一下在线社区得到有限的支持。

2、GPU-PV是多个虚拟机共享一个显卡,相互之间缺少资源的隔离。

3、Host 和 Guest 的Windows 版本不匹配,或者不适的显卡驱动,可能引发服务器和客户机同时崩溃。

4、建议用于开发、测试,或者小规模使用。