欢迎光临散文网 会员登陆 & 注册

让Nvidia GT610和Tesla M40计算卡能够协同凑合用—仅作抛砖,无技术含量+相关知识学习

2023-02-14 18:30 作者:xmaojian  | 我要投稿

想到哪里写到哪里,其中一些知识笔记是为了自己日后查阅方便放在文章里面,毕竟到处找资料所消耗的时间成本很高,整体看起来很乱,各位同学凑合看了。请各位读完一遍再操作,免得走弯路。

注意:下面文中所指的两块卡“正常协同工作”,意为M40能正常打开WDDM模式,以便于能在游戏时被正常调用用于游戏渲染及图像输出,如你本身需求是深度学习(M40工作在TCC模式),则无需上述操作,直接下载计算卡专用驱动安装即可,请悉知。上述描述中的相关专业名词,下文中有解释。


背景:

最近NV黄世仁家过时淘汰的专用计算卡在PDD上大行其道,M40 12G版本券后仅需300元(拿券大神们的到手价格应该还能低上不少),因为专业所限,仅拿来折腾加游戏,无深度学习需求,所以就没有选择更贵的24G版本。

因为M40是纯计算卡,后面无显示接口,需要与带显示接口的显卡一起协同工作,到手后查了一些资料,均提到其与NV独立显卡配合使用时,后者不能太老,需至少7系以上,正好手上有一块白嫖来的GT610,于是就想着能不能把他俩放在一起使用,经过试验,还真的实现了,没啥技术含量,也只能用很老的驱动,但确实是能用来打游戏,属于是不想花钱临时救急的一个选择。

先来几张图,证明我不是编的:

请忽略走线,人懒难得搞
索泰GT610无扇版
散热用的是一个老HD3850上的风扇,我把风扇罩剪掉了一节,然后塞到M40里面,还比较合适,跑3DMARK timespy 满载在68摄氏度左右




实现过程:

先说说平台以及具体配置场景:

CPU:Ryzen 7 5700X(无核显,要是买的是一块5600G,就没有下面的笔记了)

主板:铭瑄电竞之心  B550M  (Ver2.3 BIOS)

内存:16G(2R×8)×2 DDR4 3200 OC 3600(1.35V,C18)(三星C-die颗粒)

存储:960G  Hynix洋垃圾 nvme 3.0( CPU直连PCI-E 4.0槽位)+2T Seagate sata

显卡:Tesla M40计算卡(CPU直连PCI-E 4.0槽)+ GForce GT610(PCH引出的PCIE 3.0×4 槽位)

OS:Win7 X64 Ultimate+Win11 X64 22H2

注意:在电竞之心的板子上,如要使用远离CPU槽的第二条PCI-E插槽,则远离CPU槽的第二条M2插槽必须空出,否则当后者插上nvme ssd时,第二条PCI-E插槽会被禁用。其他主板大多是类似设计,具体请到官方网站查找相关说明,或者自己试验。

主板BIOS设置:你使用的平台如是要正常支持大容量显存计算卡,需在主板BIOS中开启above 4g选项(电竞之心b550m在chipest大项中,老的主板可能没有该选项,可能需要使用amibcp进行修改),网上的教程一般提到需关闭csm支持,实际我没关也可以正常用,但是如是开启csm,显卡(video device)启动模式设置必须为uefi这里有一个问题就是很多老卡的BIOS缺乏uefi环境支持的模块,这种场景下的解决办法如下:看我的专栏(搬运一个GOPupd mod版本合集(免安装python环境) - 哔哩哔哩 (bilibili.com)),下载gopupd这个工具,解压到纯英文目录,然后用gpu-z保存你的老卡的BIOS到一个文件,将BIOS文件复制到解压后gopupd目录中,将BIOS文件拖放到gopupd.bat这个批处理文件上,然后按照提示操作即可,实施上述步骤即可为老显卡添加uefi环境支持的模块,然后使用nvflash刷入即可(我专栏里那篇gopupd搬运文章里面介绍了具体刷新的方法),刷好后重启电脑进入BIOS设置界面,开启csm后,将video device启动模式设置为uefi即可,当然在你刷了支持uefi环境的显卡BIOS后,也可以直接关闭csm,我开启的主要原因是因为平台上还有win7系统,有时需要使用。


需要了解的相关知识:

1.Tesla M40计算卡核心代号GM200,基于Maxwell 2.0架构(麦克斯韦架构),对应游戏领域产品为GeForce GTX 980Ti。基于GM200的NV相关产品如下图所示:


NV所有基于GM200核心推出的产品

这里请注意NVIDIA GeForce GTX TITAN X这个型号,该型号与M40 12G计算卡规格参数完全一致,可作为理想的被修改对象,此外,NVIDIA GeForce GTX TITAN X和NVIDIA TITAN X是两种不同产品,后者核心代号为GP102,采用Pascal架构,硬件规格略强于GForce GTX1080Ti,区分这两种型号是为了你自己尝试修改其他版本驱动时避免弄错。


2.NVIDIA Tesla/Quadro 系列高端计算卡在 Windows 环境下可以配置为 Tesla 计算集群(Tesla Compute Cluster,简称 TCC)模式或 Windows 显示驱动模型(Windows Display Driver Model,简称 WDDM)模式。

两种模式有不同适用场景。

TCC:该模式下,GPU 完全用于计算,不能作为本地显示输出

WDDM:该模式下,GPU 既用于计算又用于本地显示输出。(该模式可调用GPU进行游戏渲染并输出画面,正是我们需要的

(引用自https://help.didiyun.com/hc/kb/article/1410366/)


常规情况下,之所以GT610无法和Tesla M40协同工作,是因为缺乏合适的驱动。一般情况下,使用NV独显+M40计算卡,要使二者正常协同工作,基本条件是某一版特定驱动同时支持你的2块卡的GPU(可以通过查看驱动程序所包含的inf安装信息文件而获知)。之前我使用win10或win11系统,针对两块卡分别安装两版不同的驱动,尝试让610和m40协同工作,结果当GT610工作在WDDM模式,M40工作在TCC模式时,一切正常;但是当我使用nvidia-smi -dm 0 -i 0尝试切换M40的工作模式为WDDM时,重启之后设备管理器中的M40多了一个黄色叹号,无法正常工作,所以也就没法在游戏时正常调用。我在NV官网查阅了不少版本的NV驱动(Game Ready版本,GRID版本,Studio版本等等),均没有发现能对GT610和M40同时实施支持的版本,但找到了一版GT610的测试版驱动(见下图),能同时支持GT610和GeForce GTX TITAN X,既然M40的核心和后者完全相同,那么修改驱动也许可行。

PS:注意下图,Game Ready版本是为游戏GPU设计,除了部分测试版,正式版驱动很少会支持NV为其他领域推出的产品,如Quadro专业绘图卡和专用计算卡(很早的时候曾经有过,貌似NV现在是已经严格区分了),所以能选的基本就是Beta版本了,这也是我为什么说这个办法只能凑合用的原因,因为驱动很老,相关功能和游戏支持肯定没有最新版驱动完善,难以保证使用时不出现问题,另外mod过的驱动的数字签名就失效了,需禁用驱动的数字签名才能在启动时正常加载,这点请悉知。

NV官网GT610win10相关驱动




下载上图的385.12版beta驱动后(链接:https://cn.download.nvidia.com/Windows/385.12/385.12-desktop-win10-64bit-international.exe),双击打开,到下图的页面后点击取消即可:

385.12驱动安装页面



到C:\NVIDIA\DisplayDriver(驱动的默认解压目录),将385.12这个包含了驱动程序的目录拷贝到其他的盘,比如E盘的根目录,如下图:

复制粘贴图上目录到其他非系统盘



复制过去后,进入E:\385.12\Win10_64\International\Display.Driver这个目录找到nv_dispi.ini(安装信息文件)这个文件,双击打开,如下图:

找到nv_dispi.ini这个文件


利用记事本的查找功能,搜索17C2(17C2是NVIDIA GeForce GTX TITAN X的设备ID,一共只有5处,有4处是在2行代码中,还有1处是单独1行,实际改3行即可),如何修改,看下图,很简单:

(1)一处修改:如下图,左边是原始的nv_dispi.ini文件打开后的样子,右边是修改完成的:

打开后删除下面这行:

%NVIDIA_DEV.17C2%           = Section088, PCI\VEN_10DE&DEV_17C2 


然后将下面这行添加到17F1%和1B00%这两行之间,格式保持图中的样式即可:

%NVIDIA_DEV.17FD.1171.10DE% = Section088, PCI\VEN_10DE&DEV_17FD&SUBSYS_117110DE

第一处修改


(2)第二处修改:如下图,同上左边是原始文件,右边是修改完成的:

删除下面这行:

%NVIDIA_DEV.17C2%           = Section087, PCI\VEN_10DE&DEV_17C2 


然后将下面这行添加到17F1%和1B00%这两行之间,格式保持图中的样式即可:

%NVIDIA_DEV.17FD.1171.10DE% = Section087, PCI\VEN_10DE&DEV_17FD&SUBSYS_117110DE

第二处修改


(3)第三处修改:同上,左边是原始文件,右边是修改完成的:

删除下面这行:

NVIDIA_DEV.17C2 = "NVIDIA GeForce GTX TITAN X"

然后在原处加上下面这行:

NVIDIA_DEV.17FD.1171.10DE = "NVIDIA Tesla M40"

格式保持下图的样式即可。

第三处修改

改好之后,保存即可。


分割线————————————————————————————————分割线


因为驱动是修改过的,原有官方的数字签名已经失效,一定要以“禁用驱动的数字签名”模式启动电脑,否则mod过的驱动无法加载。所以接下来要做的——需使用软件打开win11的测试模式,同时禁用驱动数字签名(如下图),然后重启计算机,接着就能正常安装mod过的驱动了具体如何实现:

当你的驱动修改完成后,先别急着安装,请使用bootice 1.3.4(http://xz.w10a.com/Small/Bootice_V1.3.4.0.zip)这个软件,打开后如下图设置即可(注意右侧划线部分,前面的框框改成对勾,然后分别点击“保存当前系统设置”和“保存全局设置”即可)。

使用bootice修改bcd文件



分割线————————————————————————————————分割线



上述操作全部完成后,检查2者是否正常协同工作,如下面2张图即可,注意:使用此驱动安装成功后,无需使用nvidia-smi相关的命令开启wddm,装好直接就启用了:


GT610和M40两个设备均正常
GT610和M40均工作在WDDM模式下,运行游戏前只需设置即可正常调用GPU进行渲染及图像输出




分割线——————————————————————————————分割线


至于win11下如何调用GPU进行游戏渲染(win10下需修改注册表,具体请百度),选中“此电脑”,右键选择“属性”——点击左边的“系统”——点击右边的“屏幕”——接下来的页面中,点击最下面的”显示卡“(如下面两张图):

点击“系统”—“屏幕”
点击“显示卡”


接下来的页面中,按下面两张图来操作即可

点击“浏览”,选定游戏exe执行文件的路径
选中“特定GPU”——下拉框选择“Tesla M40”即可



最后来2张图,使用M40运行孤岛危机3(显卡危机3)和生化危机2重制版的截图,一切正常。GT610是无论如何也不能把显卡危机3运行到60帧的水平的。。。

正常调用,受显示器刷新率限制,最高只有60帧,游戏图形选项全部设置为非常高
正常调用,右上角的功耗显示有问题,应该是驱动的问题,请忽略,正常是160W左右




PS:本人属老龄中二油腻大叔,新游戏玩的不多,这么搞一搞,又可以剩下一张买K600的钱。用计算卡搞游戏输出,最理想的还是核显,I家和A家的均可;NV独显配计算卡的方案,想要使用较新的驱动,最好是搭配NV的绘图专业卡,看了不少驱动的inf安装文件,K600是最省钱的一个选择;或者你也可以选择AMD独显,代价就是只能使用win11,win10正式版中无法通过修改注册表开启M40 GPU的调用选项,我反复尝试均告失败,网上能查到的都是NV独显配M40/P40的win10教程,AMD独显貌似只有在21XXX及以后的win10开发者预览版中才能实现对计算卡游戏渲染的正常调用,如果有大神知道win10下如何修改注册表能正常调用M40,烦请告知,感激不尽!



2022.2.16将评论中的后续试验结果搬运至文章中,利于各位同学参考:

  1. 经过测试,文章中的那张NV GT610驱动列表中的最新版391.35版驱动https://cn.download.nvidia.cn/Windows/391.35/391.35-desktop-win10-64bit-international-whql.exe),同样可以经过修改而同时支持Tesla M40,方法同上,这些驱动并没有我所担心的去除对于非游戏特殊GPU产品的支持,修改时注意保留原驱动代码中的Section值(诸如Section096,Section095之类的,修改时后面三个数字维持原驱动给定,不要改动),修改完成后,最好是拔掉网线运行安装程序(避免GT610自动联网安装固定的388.13的系统自带驱动),勾选“执行清洁安装”的框框,安装完成后,重启计算机应该就可以了,安装成功即自动启用WDDM模式,无需命令切换,个人测试通过。

  2. 如是M40的24G版本,则将修改代码中的SUBSYS_117110DE改为SUBSYS_117310DE,最后一处修改的地方的代码则改为:NVIDIA_DEV.17FD.1173.10DE = "NVIDIA Tesla M40 24GB"

  3. 如是使用GT/GTX630,635,640,650,650ti,660,660ti,670,680,710,720,730,740,760,770,780,780ti(老卡bios需使用GOPupd工具添加uefi环境支持模块),则在官网自行下载472.12版驱动(https://cn.download.nvidia.cn/Windows/472.12/472.12-desktop-win10-win11-64bit-international-dch-whql.exe)Game Ready驱动后自行修改,这是最后一个同时支持开普勒架构和麦克斯韦架构GPU的NV正式版游戏驱动,后续一直到474.14版只支持开普勒架构老卡,且仅作为驱动安全更新发布。750/750ti用户,则直接使用最新版528.XX游戏驱动修改即可,因其虽然命名为7xx,但实际是麦克斯韦架构(和9系同源)。PS:750YYDS!

  4. 2022.2.15晚测试了win10 22H2环境下GT610和M40的组合,修改驱动正常安装,m40也能工作在WDDM模式,但无法通过修改注册表实现游戏对M40的调用,网上的一些教程来源于对Tesla K系列计算卡的调用实现方法,如同和使用AMD独显一样,反复尝试仍不能成功,我能采取的唯一“有效”办法是禁用GT610,虽然windows中相关调用选项出现了M40,但实际进入游戏仍没有正常工作。。。如实在是要使用win10,则可能需要购买K600专业卡,并使用相关驱动进行安装,然后修改注册表方能实现win10下的正常游戏调用。。。


让Nvidia GT610和Tesla M40计算卡能够协同凑合用—仅作抛砖,无技术含量+相关知识学习的评论 (共 条)

分享到微博请遵守国家法律