gpupv.22.08.16

今天我突然看到极客湾也开始玩什么四人一机了🤔我对gpu虚拟化技术向来有比较高的兴趣,所以我看了下,他那个视频用到的应该是hyper-v的gpu虚拟化🤔

那玩意我以前应该介绍过,用起来相当灵活,没有其他负载的话虚拟gpu基本上和主机gpu性能差不多(其实,开启hyper-v后所谓主机也会便乘一个大虚拟机),有其他负载的话各个负载自己抢夺资源(确信🤔

但那个视频最有意思的是,他们最后用parsec和另外一款串流工具连上虚拟机玩了一把三排,另外一个没有排上的在虚拟机里跑3dmark和cinebench卡死那三个🤔原来极客湾也玩parsec啊(意味深🤔

parsecthonk

他们折腾到最后发现网上已经有全自动配置gpu虚拟化的powershell脚本了,好巧不巧,这个脚本是一个parsec的开发者做的🤔项目已经在github上开源了,叫做Easy-GPU-PV🤔

我打开看了下,发现它自动化程度还是非常高的,只需要指定一张win10的iso镜像,就能自动完成从设置hyper-v虚拟机参数到创建虚拟机到安装系统和驱动到安装parsec的全过程,甚至说是只需要等15分钟,虚拟机就会出现在parsec的主机列表里🤔

当然,最后一步我是持怀疑态度的,因为以我自己配置parsec的经验,登录parsec需要用proxifier拐,登录后也得在配置文件里面写入代理参数,它这个自动脚本准备如何解决parsec中心服务器在中修被墙这件事🤔除非,它其实可以将配置文件也自动加载进去,而且登录的时候直接从主机拷某种登录凭据过去,再对这些配置文件进行某种申必重新初始化操作生成一个新的peer id(我现在只知道一种生成新peer id的方法,就是删掉所有配置文件重新登录🤔

这么搞还有一个额外的好处,hyper-v的gpu虚拟化一直以来有一个问题,就是它得关掉什么增强屏幕会话,导致它基本上,只能用rdp来连虚拟机,而非像vmware workstation那样直接在一个窗口里玩虚拟机的游戏🤔换句话说,开了gpu虚拟化的hyper-v虚拟机无限接近于一个无头系统(确信🤔而rdp打游戏的体验那就不用多说了,此时用parsec取代rdp就太寄吧爽了,不仅可以4k 60fps,还能在自家局域网外打游戏,四舍五入算一个私有geforce now了(确信🤔

thonkeqing

另外,现在gpu虚拟化还进入了下一个阶段,那就是使用nvidia显卡自带的虚拟gpu功能🤔

话说nvidia一直以来和gpu虚拟化的一般通过用户极其不对付,因为在它看来,gpu虚拟化是只有grid和某些高端quadro等黑色高级显卡才能使用的功能🤔而所有新出的nvidia显卡,至少从⑨代(maxwell)开始,都有支持gpu虚拟化的硬件,它只是在驱动层面简单粗暴地阻止用户玩gpu虚拟化,无论是gpu直通虚拟机,还是所谓的虚拟gpu(恼🤔

以前我看到有人魔改显卡pcb板上的某些电阻,从而改变pci id让nvidia的死🐴驱动认为插入的是一张quadro,从而让gpu直通虚拟机用🤔或者用nvidia-vbios-vfio-patcher这样的玩意刷vbios(这玩意貌似只支持10系卡🤔但今天我看到了一个叫做vgpu_unlock的神奇项目,它也是魔改pci id,但它使用了一种极其巧妙的方法:hook内核模块🤔

具体来说,他们通过逆向工程等方法,发现nvidia驱动(以内核模块的形式存在)每次使用虚拟gpu功能时,会去读某段和显卡硬件相关的内核地址空间(如果我没记错的话,x86的所有io设备都是通过在内存中占据一片地址空间的方式被处理器使用的,使用io和读写内存的汇编语句应该没啥差别),从中读取两个加了密的申必参数,解密之后值就是pci id,然后通过比对pci id来判断要不要给开gpu虚拟化功能🤔所以他们用另外一个内核模块hook了这个内核模块,这样每次nvidia的内核模块要调用memcopy函数读这两个参数时,就先去解密这两个参数获取nvidia内核模块原来获取的pci id,再用其对应型号的grid卡的pci id给它重新构造那两个参数并返回给它,这样它解密后,发现是grid的pci id,いいよ!来いよ!把虚拟gpu塞进这些虚拟机的虚拟pcie槽里!pcie槽里!!(错乱🤔

而这个魔改内核模块如何知道该给nvidia的内核模块返回什么pci id?🤔他们又写了一个应该是用python实现的用户空间守护进程,用来检测这台机子上装的所有nvidia显卡,用它内置的数据库来判断这些显卡是否真的支持虚拟gpu,如果支持的话,它对应的grid显卡又应该是什么型号,也就是什么pci id应该替换成什么pci id,然后把这个信息通过syscall传递给魔改内核模块🤔

这玩意反正比魔改显卡pcb高级多了,至少它没有烧坏显卡的风险(确信🤔反正无论如何,此时迫真模仿linus竖起中指fuck you nvidia就vans了(吴慈悲🤔

dudiskAYAYA

与此同时,到今天积压在某些2.5寸sas硬盘里面的截图8GB档实在是太多了,我得开一次度盘转discord(恼🤔

上了某个月度共享账号,一个链接都没解析出来,换什么ip都是如此(恼🤔这可能说明月度账号就是不适合干解析,那么换我大号呢?貌似可以解析出来🤔

我肯定不会用大号解析,我得去买个会员🤔然而现在根本找不到什么20块钱左右的超级会员cdk,所以恐怕我只能接着去租4块钱一天的日抛账号了(悲🤔

但既然我又买了日抛,那我不整完今天的将近1TB存货外加上个月积压的玩意,那肯定是说不过去的🤔这些东西加起来到了26线程,这么说吧,26线程全开时,这狗逼玩意能卡到每个线程一两秒才完成一次请求(半恼🤔

好在它们几乎全解析完了,而且这些加起来4TB的玩意不到4个小时就全部完成了转存discord drive🤔不错,那我再安排4TB如何?🤔

现在这4TB也全部解析完了,而且也在转存中,不错,我今天一天就搞了8TB🤔现在居然只剩三个账号就彻底搞完了,考虑到这些玩意其实不完全是图片,加起来可能又是个4TB,最多5TB🤔接下来我能不能再搞第三波,恐怕就得看它能不能解析出来了,实在不行下个月再说(🤔

luminethonk

最后一波(迫真),顺便捎带一个服务器备份,还真是5TB🤔而且更牛批的是,它第三次还能解析🤔那真滴牛批,我今天一天搞完了11TB的度盘转discord drive(确信🤔

如果这部分转存也没问题的话,那么至此我基本上搞完了我自从开始将图片上传到度盘以来所有图片的度盘转discord drive(确信🤔也许还有那么两个文件夹里的东西由于度盘的死🐴文件名censor,导致完全没法分享出去,但那我以后再说⑧🤔

接下来也许还可以处理点什么年度备份啥的,每个文件夹可能1TB的那种🤔话说今年也只有四个多月就结束了,到年底也许还得备份点什么寄吧玩意,当然那是三四个月后的事情了(确信🤔

另外我接下来的度盘存储可能会面临一些坑爹情形,比如我很多年前攒的度盘账号只剩下两个空的了,就算给上会员,也只剩4TB了(恼🤔上超级会员?我还没有做好这种准备(🤔

发表评论