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