hyper-v连接显卡,hyper-v使用显卡能力

现在越来越多的软件在使用时,都会调用GPU获得更好的使用效果。如:浏览器的硬件加速模式。由于Nvidia和AMD都屏蔽了家用显卡虚拟化技术,常用的虚拟机也无法对显卡进行虚拟化。

通过上一篇文章https://lingkang.top/archives/hyper-v-to-window10),我们已经安装好了hyper-v虚拟机window10,但是打开设备发现没有显卡,玩游戏就没有图形处理支持:
image-1723772369725

我笔记本上的显卡是:NVIDlA GeForce GTX 1650 4G显存

image-1723773373667

哪我该如何设置把GPU提供给VM使用呢?网上的一些教程是禁用物理机使用显卡,再绑定到vm中。
实际上我们可以直接绑定到:

绑定显卡到VM

管理员命令打开Windows PowerShell

Set-VM -Name "lingkang" -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName "lingkang"

# 设置MMIO,总的io映射内存,我们直接设置为32GB(通用大小),出现其他问题再扩大即可
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName "lingkang"
Set-VM -HighMemoryMappedIoSpace 32Gb -VMName "lingkang"

# 添加虚拟化,
Add-VMGpuPartitionAdapter -VMName "lingkang"

# 指定显卡添加,这个显卡ID通过Get-VMPartitionableGpu命令获取到的“Name”字段值
# 注意,低版本的window10是无法使用这个命令指定的
# Add-VMGpuPartitionAdapter -VMName "lingkang" -InstancePath "显卡ID"
# 例如我的显卡ID是:\\?\PCI#VEN_10DE&DEV_1F91&SUBSYS_1AB11043&REV_A1#4&1885b93c&0&0008#{064092b3-625e-43bf-9eb5-dc845897dd59}\GPUPARAV


# 添加后,设置自动配置显卡
Set-VMGpuPartitionAdapter -VMName "lingkang"

# 删除虚拟显卡的分配,配置错误可重新来
Remove-VMGpuPartitionAdapter -VMName "lingkang"

复制显卡驱动文件

由于Nvidia屏蔽了家用显卡的虚拟化功能,所以此时虽然已经可以在设备管理器看到显卡已被正确识别,但仍然无法安装驱动,必须要手动复制宿主机的以下驱动文件到虚拟机上。

启动虚拟机:
image-1723790271840

可以看到设备中已经显示显卡了,但还不可用

我们先复制物理机系统的

C:\Windows\System32\nvapi64.dll

放到虚拟机的:

C:\Windows\System32\nvapi64.dll

再复制物理机中的

C:\Windows\System32\DriverStore\FileRepository

目录中以nv开头的文件夹到虚拟机中的

C:\Windows\System32\HostDriverStore\FileRepository

目录下,其中HostDriverStore\FileRepository目录需要自己创建:
image-1723796443917

重启虚拟机

这时虚拟机显卡已经可用:
image-1723796000376

使用娱乐大师测试一下显卡:
image-1723796048352
image-1723796306609
可以看到娱乐大师可以使用显卡了。

cmd执行

dxdiag

可以看到启用的功能
image-1723797099518