虚拟机
PVE
PVE-创建虚拟机
PVE-CPU
PVE-多网卡
PVE-开机启动
PVE-容器配置
PVE-iKuai
iKuai-内部无法访问域名
iKuai-NTP服务器
PVE-群晖
群晖-PVE中无法关闭
PVE-直通
PVE-OpenWrt
OpenWrt-DDNS
OpenWrt-挂载U盘
OpenWrt-更换软件源
OpenWrt-单臂路由
OpenWrt-DNS
OpenWrt-端口映射
OpenWrt-静态地址
OpenWrt-常见问题
OpenWrt-断网自动重播
OpenWrt-限制联网
OpenWrt-配置路由表
OpenWrt-https证书(Lets Encrypt)
OpenWrt-单接口多IP
OpenWrt-Wan/Lan自由搭配
OpenWrt-Mesh组网
OpenWrt-WiFi双频合并
OpenWrt-ssh无法连接
OpenWrt-OAF(应用控制)
PVE-更新源
PVE-常见问题
PVE-Linux
PVE-Debian 11
PVE-SSL证书
PVE-添加用户
PVE-iStoreOS(路由兼轻NAS系统)
PVE-扩容磁盘
PVE-挂载 ISCSI
PVE-MQ iRouter(秒开路由器)
PVE-虚拟机 备份/还原
PVE-常用指令
PVE-电源键启动虚拟机
PVE-ntp(时间同步)
VMware
NAS系统
Hyper-V
Hyper-V_创建虚拟机
Hyper-V_虚拟网络
Hyper-V_GPU虚拟化
Web-虚拟机
本文档使用 MrDoc 发布
-
+
首页
Hyper-V_GPU虚拟化
非直通,而是把GPU资源分配给虚拟机,换言之可以同时直通给多个虚拟机,可以实现1拖N 目前只有N卡,故只测试过N卡 搭配 [Sunshine](https://github.com/LizardByte/Sunshine) [串流](/doc/604/)就可以实现一台电脑多人游戏,我使用Switch [Moonlight(串流)](/doc/604/) 进行连接的,注意串流的话可能需断开增强会话(加载虚拟显示器,增强会话是远程桌面) **相关链接:** - [相关 PowerShell 命令介绍](https://learn.microsoft.com/en-us/powershell/module/hyper-v/) - Get-VMHostPartitionableGpu:https://learn.microsoft.com/en-us/powershell/module/hyper-v/get-vmhostpartitionablegpu - Remove-VMGpuPartitionAdapter:https://learn.microsoft.com/en-us/powershell/module/hyper-v/Remove-VMGpuPartitionAdapter - Add-VMGpuPartitionAdapter:https://learn.microsoft.com/en-us/powershell/module/hyper-v/Add-VMGpuPartitionAdapter - Set-VMGpuPartitionAdapter:https://learn.microsoft.com/en-us/powershell/module/hyper-v/set-vmgpupartitionadapter - Set-VM:https://learn.microsoft.com/en-us/powershell/module/hyper-v/Set-VM ## GPU资源分配给虚拟机 选择对应虚拟机,`操作>设置` 1. 关闭内存的 `动态分配`,并且尽可能大一点  2. 关闭 `检查点`  ### 分配GPU资源给虚拟机 以管理员身份运行 `PowerShell`,执行下列命令 ```bash Get-VMHostPartitionableGpu # 查找可分配给虚拟机的GPU资源(多显卡会有多个资源) # 设置虚拟机和GPU资源(这里使用变量方便修改,可带注释在脚本中运行) # ================================================================ $vm = "Win11" # 定义分配的虚拟机名称 $gpu_path = "\\?\PCI#VEN_10DE&DEV_2503&SUBSYS_39031462&REV_A1#4&2283f625&0&0019#{064092b3-625e-43bf-9eb5-dc845897dd59}\GPUPARAV" # 定义要分配给虚拟机的GPU实例路径 # 清理已配置GPU资源并添加新的GPU资源 Remove-VMGpuPartitionAdapter -VMName $vm # 从虚拟机中移除现有的GPU分区适配器(防止有其它冲突) Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu_path # 将指定的GPU实例路径添加到虚拟机 # 设置虚拟机的GPU资源分配(若是不设置则不可访问宿主机的物理GPU资源) 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 # 限制了虚拟机可以使用的显存量(VRAM),影响虚拟机的图形性能(默认是字节单位) # -MinPartitionVRAM 80000000:设置GPU分区的最小视频内存分配量 # -MaxPartitionVRAM 100000000:设置GPU分区的最大视频内存分配量 # -OptimalPartitionVRAM 100000000:设置GPU分区的最优视频内存分配量 # 编码资源,常用于视频编码任务(如直播或视频会议),影响虚拟机进行视频编码的性能(默认是字节单位) # -MinPartitionEncode 80000000:设置GPU分区的最小编码资源分配量 # -MaxPartitionEncode 100000000:设置GPU分区的最大编码资源分配量 # -OptimalPartitionEncode 100000000:设置GPU分区的最优编码资源分配量 # 解码资源,常用于视频解码任务(如播放高清视频),影响虚拟机进行视频解码的性能(默认是字节单位) # -MinPartitionDecode 80000000:设置GPU分区的最小解码资源分配量 # -MaxPartitionDecode 100000000:设置GPU分区的最大解码资源分配量 # -OptimalPartitionDecode 100000000:设置GPU分区的最优解码资源分配量 # -计算资源,常用于GPU加速的计算任务(如机器学习或科学计算),影响虚拟机进行GPU加速计算的性能(默认是字节单位) # -MinPartitionCompute 80000000:设置GPU分区的最小计算资源分配量 # -MaxPartitionCompute 100000000:设置GPU分区的最大计算资源分配量 # -OptimalPartitionCompute 100000000:设置GPU分区的最优计算资源分配量 # 配置虚拟机内存映射I/O空间和缓存类型 Set-VM -GuestControlledCacheTypes $true -VMName $vm # 设置虚拟机使用客户机控制的缓存类型 Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm # 设置虚拟机的低内存映射I/O空间为1GB Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm # 设置虚拟机的高内存映射I/O空间为32GB # 其它命令 Start-VM -Name $vm # 启动虚拟机(已启动不会重复启动) Get-VMGpuPartitionAdapter -VMName $vm # 查看当前分配给指定虚拟机的GPU实例 ``` 分配完成后,可以在虚拟机的 `设备管理器>显示适配器` 中查看到该显卡(缺驱动) ### 复制显卡驱动文件 补充显卡驱动 1. 复制宿主机 `C:\Windows\System32\nvapi64.dll` 覆盖到虚拟机相应位置 这是N卡的,A卡尝试复制整个System32和SysWOW64 2. 查找显卡驱动文件 宿主机,`设备管理器>显卡>驱动>驱动程序>驱动程序详细信息`  3. 复制宿主机 `C:\Windows\System32\DriverStore\FileRepository` 下对应的驱动文件夹 4. 导入到虚拟机 `C:\Windows\System32\HostDriverStore\FileRepository` 下 虚拟机没有该目录的自行创建 直接粘贴可能权限不够,推荐先放到桌面,再从桌面复制过去 5. 现在可以在虚拟机的 `设备管理器>显示适配器` 中查看到该显卡驱动已安装 正常使用时会调用该显卡,虚拟机资源管理并不会显示GPU,但使用时可以查看到宿主机对应GPU是有负载的 注意:若是更新了显卡驱动,还需要重新替换虚拟机的驱动文件 **相关教程:** - [【Windows使用】之--Hyper-V显卡虚拟化VMGpu设置](https://blog.vlinyu.com/archives/windows-hyper-v-vmgpu-vgpu-set) - [虚拟机打游戏,Hyper-V使用独立显卡教程](https://www.bilibili.com/video/BV1o84y1y7i3) - [一分钟学会,怎样使客户机GPU发挥至接近主机的性能](https://www.bilibili.com/video/BV16K411P7ny)
造物者W
2024年11月19日 14:59
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码