把显卡直接通到Hyper-V的虚拟机内,这样虚拟机内就可以使用显卡来加速游戏/物理模拟器,使用CUDA等等,并且还可以对显卡进行划分
使用场景可以是对破解版游戏的安全性有顾虑,或者不希望在宿主机加载会扫盘/影响性能等的反外{过}{滤}挂驱动,把游戏在虚拟机里运行,或者是想用虚拟机分割显卡性能,用串流软件多人同时玩等等
首先确保你使用的是Win10 20H1以上的系统
也可以使用自动化脚本:https://github.com/grrminator/Easy-GPU-PV
但是自动化脚本有个问题:必须要新建一个虚拟机,不能用原有的,而且对ISO的格式有要求,Windows Media Creation Tool创建的ISO不能用
本教程主要是手动搞Hyper-V显卡直通
先创建一个第二代虚拟机,安装的系统的版本最好和宿主机一样,注意要禁用检查点
然后打开管理员模式的Powershell
用Get-VMPartitionableGpu(Win11是Get-VMHostPartitionableGpu)列出可以分区的GPU,记住InstancePath
如果不确定对应关系的话去设备管理器里点开显卡看详细信息里的设备实例路径
执行Powershell命令:
然后把宿主机C:\Windows\System32\DriverStore\FileRepository\里对应的显卡驱动文件夹(比如nv_dispi.inf_amd64)复制到虚拟机的C:\Windows\System32\HostDriverStore\FileRepository\里,版本较低的系统可能还要把system32下面一些文件也复制到虚拟机system32里面,比如N卡就是nv开头的所有文件,具体可以用dxdiag导出到txt,设备管理器也可以看
然后重启就可以了
如果要限制虚拟机对显卡资源的使用的话:
具体数字参考刚才Get-VMHostPartitionableGpu的输出自行调整
然后,由于Windows的RDP的性能限制,安装一个串流软件
目前我用的是Parsec+VBCable(传递声音)+usbmidd(虚拟屏幕)
然后下面是我自己的一些见解和发现,不一定对,也可能有更好的解决方法:
1、自动脚本形式的显卡直通用的iso必须内置install.wim而不是install.esd
2、自动脚本形式的显卡直通在安装软件前会先ping google,这个要改才能用
3、一些软件检测虚拟机是靠检测CPUID的特定位,因此开启嵌套虚拟化,在虚拟机中启用Hyper-V可以骗过去,软件会误以为标志位是虚拟机中的Hyper-V设置的,比如原神
4、有些教程和脚本禁用了Hyper-V Video,但这会导致OpenGL出问题,因此,不要使用Parsec的VDD,使用usbmidd,如果手上有HDMI诱骗线是最好的
5、虚拟机内无法安装Geforce Experience
使用场景可以是对破解版游戏的安全性有顾虑,或者不希望在宿主机加载会扫盘/影响性能等的反外{过}{滤}挂驱动,把游戏在虚拟机里运行,或者是想用虚拟机分割显卡性能,用串流软件多人同时玩等等
首先确保你使用的是Win10 20H1以上的系统
也可以使用自动化脚本:https://github.com/grrminator/Easy-GPU-PV
但是自动化脚本有个问题:必须要新建一个虚拟机,不能用原有的,而且对ISO的格式有要求,Windows Media Creation Tool创建的ISO不能用
本教程主要是手动搞Hyper-V显卡直通
先创建一个第二代虚拟机,安装的系统的版本最好和宿主机一样,注意要禁用检查点
然后打开管理员模式的Powershell
用Get-VMPartitionableGpu(Win11是Get-VMHostPartitionableGpu)列出可以分区的GPU,记住InstancePath
如果不确定对应关系的话去设备管理器里点开显卡看详细信息里的设备实例路径
执行Powershell命令:
| $vm = "你的虚拟机的名字" Remove-VMGpuPartitionAdapter -VMName $vm Add-VMGpuPartitionAdapter -VMName $vm -InstancePath "刚才记住的路径" Set-VM -GuestControlledCacheTypes $true -VMName $vm Set-VM -LowMemoryMappedIoSpace 3GB -VMName $vm Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm |
然后重启就可以了
如果要限制虚拟机对显卡资源的使用的话:
| Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 1 Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionVRAM 11 Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionVRAM 10 Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionEncode 1 Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionEncode 11 Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionEncode 10 Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionDecode 1 Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionDecode 11 Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionDecode 10 Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionCompute 1 Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionCompute 11 Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionCompute 10 |
然后,由于Windows的RDP的性能限制,安装一个串流软件
目前我用的是Parsec+VBCable(传递声音)+usbmidd(虚拟屏幕)
然后下面是我自己的一些见解和发现,不一定对,也可能有更好的解决方法:
1、自动脚本形式的显卡直通用的iso必须内置install.wim而不是install.esd
2、自动脚本形式的显卡直通在安装软件前会先ping google,这个要改才能用
3、一些软件检测虚拟机是靠检测CPUID的特定位,因此开启嵌套虚拟化,在虚拟机中启用Hyper-V可以骗过去,软件会误以为标志位是虚拟机中的Hyper-V设置的,比如原神
4、有些教程和脚本禁用了Hyper-V Video,但这会导致OpenGL出问题,因此,不要使用Parsec的VDD,使用usbmidd,如果手上有HDMI诱骗线是最好的
5、虚拟机内无法安装Geforce Experience
文章来源:
网络小编D
版权声明:
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站立刻删除。
