Windows Server 2022 Hyper-V 虚拟机开启 GPU-PV 功能

Windows Server系统处理

由于本人使用的是Windows Server2022,如果按照下文直接配置,最后结果会导致虚拟机无法启动并报错如下图。

%title插图%num

解决方法有2个:

方法1、不用GPU-PV功能,使用以下命令即可删除下文虚拟机中绑定的显卡(请自行修改 vm_name 为虚拟机名字)

$vm = "vm_name"
Remove-VMGpuPartitionAdapter -VMName $vm

方法2、修改注册表解决报错问题

首先打开使用 Win+R 输入 regedit ,打开注册表编辑器
转到以下路径(如没有请自行建立):

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\HyperV

然后在HyperV下新建两个 DWORD32 值为0项(创建完后默认为0)

RequireSecureDeviceAssignment
RequireSupportedDeviceAssignment

chatgpt自动生成的reg脚本(可直接创建 *.reg脚本一键建立以上内容)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\HyperV]
"RequireSecureDeviceAssignment"=dword:00000000
"RequireSupportedDeviceAssignment"=dword:00000000

修改完注册表后无需重启电脑,即可完美解决 Windows Server 中 GPU-PV 虚拟化功能运行报错的问题

GPU-PV 配置

  • 要求:
    • 理论上,win10 1809 以上都支持这个功能,但是最新的系统有最好的兼容性。
    • host 和 vm 可以是不同的系统,但是可能有兼容性问题。
    • 因此这里 host 是 win11,vm 也选择 win10 ltsc 2021,保证兼容性。
  • 配置
    • 管理员权限运行 powershell。
    • 依次执行以下命令。(请自行修改 vm_name 为虚拟机名字)
$vm = "vm_name"
Add-VMGpuPartitionAdapter -VMName $vm
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 8GB -VMName $vm

上面的 LowMemoryMappedIoSpace 和 HighMemoryMappedIoSpace,原帖中是 1G 和 32G,这里测试 NVIDIA Tesla P4 配置 8G 也能正常跑起来。

  • 拷贝驱动
    • 找到 host 的驱动文件夹,拷贝到 vm。
    • 目录在 C:\Windows\System32\DriverStore\FileRepository\ 路径中,找到nv开头的文件夹。根据驱动不同文件夹名也会不同,因为我的显卡是Tesla P4,所以文件夹有三个。
      • 分别为:
        • nvdimm.inf_amd64_37710613e4f18276
        • nvgridsw.inf_amd64_1ba273002a8f483e
        • nvraid.inf_amd64_144351277838b429
    • 之后将驱动文件夹拷贝到 C:\Windows\System32\HostDriverStore\FileRepository 路径下,注意 Host 和 Vm 的路径不一致!!,文件夹不存在则创建。

最后直接在资源管理器中重新禁用启用该显卡即可。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注