前言
众所周知,NVIDIA只在专业卡(包括专业矿卡上)上提供TCC模式。
之前演示了一下解除部分NVIDIA游戏卡的OpenGL负优化,这次来摸一手TCC。
游戏卡GeForce系列,多屏卡NVS系列等均禁用TCC模式并主动负优化OpenGL性能。
对于某些炼丹场景,WDDM存在一些显存与性能劣势。具体情况不在本文赘述。
本文将以修改驱动的方式,启用非专业卡的TCC模式。
如果是使用PVE,直接在直通设备上修改为Quadro系列专业卡的DeviceID就能启用TCC了。
本文以NVIDIA GeForce RTX 3070 Laptop GPU
为例,其设备ID为:0x249D10DE
。
未修改时
如图所示,使用未修改启用TCC的驱动时,尝试更改显卡工作模式为TCC时提示不支持。
C:\Windows\system32>nvidia-smi -dm 1
Unable to set driver model for GPU 00000000:01:00.0: Not Supported
Treating as warning and moving on.
All done.
修改并安装驱动
给nvlddmkm.sys打补丁
搜索31 1C 00 00 00 00
很快就可以找到如图所示的地方,想了解为什么是这个可以看后面的章节。
修改为如图下所示,我这里的设备ID是249D,因此此处按小端模式修改为9D 24
。
这个设备ID可以看看GPU-Z或者是使用命令nvidia-smi --query-gpu gpu_name,pci.device_id --format=csv,noheader
查看。
保存nvlddmkm.sys后,进行签名。
签名nvlddmkm.sys
签名没啥好说的,按一般给驱动签名的方法,签名就行。
安装驱动
安装前记得用DDU把系统原来的NVIDIA驱动清了,不然可能出现问题。
系统必须关闭签名检查与安全启动,具体关闭方法可以自行搜索。
然后按正常安装方法,安装修改后的驱动。
期间会弹出这个警告弹窗,因为是自签名证书。
直接点“始终安装此驱动程序软件”即可。
验证tcc模式是否可用
使用命令nvidia-smi -dm 1
切换tcc模式
在提示Reboot required.后,进入设备管理器停用并启用显卡。
随后就可以看看任务栏管理器内NVIDIA的GPU是否消失。
使用nvidia-smi --query-gpu gpu_name,pci.device_id --format=csv,noheader
命令查询,卡确实是之前那张不支持TCC的249D。
使用nvidia-smi
命令,可以看见已经工作在TCC模式下了。
为什么这样改
简单的来说,nvidia通过在驱动中验证DeviceId,来限制是否能启用TCC模式。
而这个名单sNvTccDevList就在如图所示的地方。
因此,搜索31 1C 00 00 00 00
就可以找到这个列表。
把我们自己不支持的设备塞进去,就可以启用TCC模式了。
结束语
我还能说什么呢?
有请评论区的各位评价吧!