讓花成花 讓我成我

Hyper-v开启虚拟化显卡vGPU

Hyper-v默认没有给虚拟机分配显卡算力,在虚拟机中运行需要使用图形计算的程序很卡,Windows下使用Hyper-v配合VGPU方案来实现虚拟机调用显卡,微软使用的是所谓的GPU分区,所有虚拟机都可共享显卡资源(计算核心),且显存可以手动限制
以下为虚拟机分配AMD核显vGPU

[!warning]
需事先关闭虚拟机检查点

1. 获取GPU名称

Get-VMHostPartitionableGpu
# 复制Name值,例如\\?\PCI#VEN_1022&DEV_15BF&SUBSYS_134F12305&REV_C2#4&e5b94e7&0&03241#{064234b3-625e-43bf-9eb5-dc845897dd13}\GPUPARAV

2. 分配并限制

$gpu_path = "\\?\PCI#VEN_1022&DEV_15BF&SUBSYS_134F12305&REV_C2#4&e5b94e7&0&03241#{064234b3-625e-43bf-9eb5-dc845897dd13}\GPUPARAV" # 需更改
$vm = "win11"  # 需更改

Get-VMGpuPartitionAdapter -VMName $vm | Remove-VMGpuPartitionAdapter
Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu_path

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 32GB -VMName $vm

3. 驱动

设备管理器->右键显卡属性->驱动程序->驱动程序详细信息->
拉到最后看文件名,例如u0396198.inf_amd64_0d9fe540850149ea

打开宿主机目录C:\Windows\System32\DriverStore\FileRepository,复制文件夹u0396198.inf_amd64_0d9fe540850149ea
到虚拟机文件夹C:\WINDOWS\System32\HostDriverStore\FileRepository

虚拟机文件夹需自行创建

重启,解决

若是N卡,需拷贝Nvidia-api驱动文件到对应路径中
C:\Windows\System32\nvapi64.dll

Hyper-v开启虚拟化显卡vGPU

https://llb.im/posts/34.html

作者

Qin

发布时间

2025-03-19

许可协议

CC BY 4.0

添加新评论