之前买了一张Tesla P40,装在了华硕X99 IPMI这块主板上,本来一开始是打算用做vgpu的,无奈这块主板装PVE,只要一打上vgpu驱动,运行nvidia-smi就卡死,开机进系统也会卡死,经过无数次实验,放弃了,大概率是华硕这块x99板子和tesla p40显卡的vgpu宿主驱动存在兼容性问题,无奈之下,tesla p40这块显卡只能用做直通,因此一直直通给ubuntu用来跑chatglm2-6b和Stable Diffusio,近来又再次验证了vgpu,以失败告终,不过既然折腾了,顺便直通给windows测试下游戏效果,然后就开干了。
在物理机上要使用P40这块卡是需要有核显或者亮机卡输出画面的,不过在PVE虚拟化平台下就不需要了,因为需求是云游戏而不是输出给实体显示器,本身PVE虚拟机就能创建监视器,不过这个监视器用作串流的话简直卡的令人发指,但是安装系统还是要借助它来完成。
看到网上有人使用了USB虚拟显示器,这个方案确实可行,不过有一些细节需要注意,比如重启后显示器就失效了,需要重新执行命令添加,这个后面通过windows计划任务运行脚本解决。解决了这个显示器问题,那么sunshine+moonlight或者parsec方案就能无缝衔接了。
1.PVE直通Tesla P40 过程略 (可以去看PVE直通教程)
2.PVE 安装win10 过程略
3.安装TESLA P40 windows驱动。
- 进入nvidia官网,注意驱动要选择standard,我装dch版本无法驱动https://www.nvidia.com/Download/Find.aspx?lang=en-us
- 装完驱动 按winodws+R,输入regedit 进入注册表,定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318}
显卡的配置信息即为000开头的项目,找到P40代表的那一项,通过DriverDesc字段来识别
将 AdapterType 值改为 1
将 FeatureScore 值改为d1 (如果已经是d1就不用改)
新建32位DWORD,名称为GridLicensedFeatures 值设置为7
定位进入HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318}
删除P40一项的AdapterType
新增32位DWORD键 EnableMsHybrid 值为1
如果物理机用核显或者亮机卡输出画面,需要在核显或亮机卡那项中添加32位DWORD键EnableMsHybrid 值为2,因为这里是云主机,所以这条不需要操作。
重启你就能看到tesla p40就正常被驱动了。
4.安装usb虚拟显示器
下载驱动usb虚拟显示器安装包 https://www.amyuni.com/downloads/usbmmidd_v2.zip
##解压缩usbmmidd_v2.zip
##管理员权限打开cmd
cd C:\Users\xxx\Desktop\usbmmidd_v2
deviceinstaller64 install usbmmidd.inf usbmmidd
deviceinstaller64 enableidd 1
安装完成后,就成功安装了一块USB虚拟显示器,但是重启后会失效,所以要把添加显示器这个动作做成任务计划,每次启动执行
###新建一个add_monitor.bat 文件,内容就是,路径改成你自己的路径
C:\Users\xxx\Desktop\usbmmidd_v2\deviceinstaller64 enableidd 1
windows打开任务计划程序
触发器选择启动时
操作指向你写的那个脚本文件
5.串流想要用sunshine+moonlight就安装sunshine
教程参考:pve-vgpu+moonlight+sunshine实现串流云桌面云游戏
6.使用parsec就安装parsec
下载地址:https://parsec.app/downloads 需要注册账户
7.安装完成 PVE将默认的显示设置为无,然后重启win10虚拟机
下面就是展示效果:
分辨率取决于你本地用什么显示器,不过建议设置为1920*1080就够了,玩游戏嘛,对tesla p40不要要求太高,但是4K也不是不行。
甜甜圈压测也好,玩游戏也好,随便玩
我随便玩了几把QQ飞车,效果全高,非常流畅。
看了你的文章,各种玩的六到飞。认真学习,摸着你过河。
感谢支持~
正塘坑,感谢指引,准备按照这套路走一遍
很有帮助,我目前是用pve的vga std显示模式, 把这个显示模式的分辨率调到2k,然后用rustdesk来远程桌面,分辨率就是2k, 不用再使用这个虚拟usb显示了,更方便一点
感谢分享,很有帮助,我目前是直接使用pve的vga std显示模式(注意显存改为64MB),在启动的时候按esc进入uefi配置界面,然后把分辨率调为2k,然后用rustdesk来远程桌面,分辨率就是2k,就不需要再用这usb虚拟显示了
要串流最好用usb虚拟显示器,rustdesk或者微软的rdp这种远程办公啥的 可能就不需要了。