提到虚拟机,我们总是忽略Windows自带的Hyper-V技术,经过一番研究,Hyper-V可以轻松的实现家用显卡虚拟化,且待机时占用资源极低。这就是今天要说的GPU分区
前言
基本上所有的虚拟机平台(vitual-box,VMware等),默认的图形内容都是靠CPU来实现的,性能有限,这样就带来一个问题:虚拟机内部看视频或者运行游戏效果很差,目前较为主流的解决方法是显卡直通
,此方法优点是性能损耗低,缺点是显卡直接下放给虚拟机,直通后甚至宿主机都无法接管,没有解决复用的问题。一张显卡只能给一个虚拟机,如果我需要开几个虚拟机,那就需要几张显卡。其实很多主流显卡厂商都有给出相应的虚拟化方案,但是由于硬件和软件的许可,价格昂贵,不适合家用。
准备
- Windows10以上版本宿主机
- Windows镜像(20h2版本):Hyper-V开启vGPU很挑镜像,并不是所有都支持,此版本测试可用,建议小白直接下载
- 确保宿主机上能查看到安装的独立显卡,如下图
安装虚拟机
启用Windows功能-勾选Hyper-V(确保前面是✔)-重启宿主机
在控制面板搜索管理工具,找到Hyper-V
创建Hyper-V虚拟机
不多赘述,注意几个关键点:①选择第一代虚拟机 ②内存和硬盘自己分配大小 ③选择适合的虚拟机镜像(比如本教程提供的20H2)
编辑虚拟机CPU核心数量
然后开机,正常安装系统
开启虚拟机查看设备管理器
发现设备管理器中无显卡,由于默认图形页面是由CPU驱动,下面开始添加vGPU
配置vGPU(关机状态下)
备份虚拟机
右键虚拟机,导出备份
命令行启用GPU分区(在宿主机内打开PowerShell)
#管理员打开powershell,一行一行输入下面命令,虚拟机名称自己修改
$vm = "你虚拟机的名字"
Add-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
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
关闭虚拟机检查点功能
关闭检查点后开机,进行下一步配置vGPU驱动
配置vGPU驱动(开启虚拟机)
开机检查设备管理器中是否有独立显卡
查看到存在独立显卡,若存在,搜索dxdiag
,检查是否正常工作。如果提示未正常工作,继续进行下一步适配驱动
拷贝驱动文件到虚拟机
注意:英伟达和AMD都故意屏蔽了家用显卡的虚拟化功能(这就是前言中说的,购买专用的虚拟化显卡价格昂贵,要赚钱也可以理解的嘛),所以在虚拟机内部安装驱动是无法成功的。按照下面说明一步步拷贝驱动文件。
① 在宿主机内找到对应显卡的驱动文件位置
在宿主机 C:\Windows\System32\DriverStore\FileRepository\
文件夹找到框选出的这个文件夹,右键打压缩包备用
② 将压缩包复制到虚拟机并解压到对应位置
虚拟机拷贝路径:C:\Windows\System32\HostDriverStore\FileRepository\
不存在的文件夹需要手动创建
注意:由于权限问题,可能无法在此文件夹下解压,你可以在虚拟机桌面上解压后,拷贝文件夹到对应路径,另外,驱动文件夹应跟随FileRepository文件夹下,中间不要创建其他文件夹。比如正确示范:C:\Windows\System32\HostDriverStore\FileRepository\nvlt.inf_amd64_ba8361cbbfe5d815
最后的适配(重要)N卡和A卡不同,务必查看自己的显卡型号
N卡
拷贝宿主机上nvapi64.dll文件到虚拟机对应位置即可
宿主机文件路径:C:\Windows\System32\nvapi64.dll
虚拟机拷贝路径:C:\Windows\System32\nvapi64.dllA卡
参考youtube博主,大力出奇迹,直接将宿主机驱动列表中的所有文件都拷贝到虚拟机,提示重名的替换即可,需要一个个看,细心活
全部完成后,重启虚拟机,再次查看设备管理器和搜索dxdiag
,检查是否正常工作。如正常,则会显示类似如下内容,那么恭喜,你已经完成GPU虚拟化,enjoy!