显卡虚拟化-Hyper-V上的GPU虚拟化
显卡虚拟化
适用于Hyper-V虚拟机的GPU虚拟化方案
适用于windows10、windows11
将显卡虚拟化后分配给一个或多个虚拟机使用
可以参考微软官方教程
点这里
主机上配置显卡虚拟化
#定义变量vm和gpu_path
#VM1是要分配虚拟显卡虚拟机的名字建议使用英文和数字排列
$vm = "VM1"
#获取gpu设备实例路径
Get-VMPartitionableGpu
$gpu_path = "\\?\PCI#VEN_10DE&DEV_2204&SUBSYS_145410DE&REV_A1#4&307d3e5d&0&0019#{064092b3-625e-43bf-9eb5-dc845897dd59}\GPUPARAV"
#分配虚拟显卡给虚拟机
Set-VM -Name $vm -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Add-VMGpuPartitionAdapter -VMName $vm
#如果是win11还可以使用instancepath参数指定特定显卡,适合有多张显卡时
Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu_path
#激活分配给虚拟机的虚拟显卡
Set-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
#设定虚拟显卡的具体配置(显存、算力等)
#设置mmio
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm
#移除虚拟化
Remove-VMGpuPartitionAdapter -VMName $vm
虚拟机里配置驱动
从主机上复制C:\Windows\System32\DriverStore\FileRepository目录到虚拟机C:\Windows\System32\HostDriverStore\
此时虚拟机上看到是这样的目录结构:C:\Windows\System32\HostDriverStore\FileRepository
备注:HostDriverStore这个目录要自己创建,FileRepository里面本质上只要有主机显卡驱动就可以了,这里偷懒直接复制整个目录,如果只想复制主机显卡驱动目录,可以通过设备管理器查看主机加载的显卡驱动目录
重启虚拟机,查看虚拟机设备管理器显卡,运行dxdiag查看显卡特性
