zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

系统里有多套nvidia显卡驱动nvlddmkm.sys可能会有nvidia-smi.exe位置变化的困惑

驱动系统 可能 位置 变化 显卡 sys exe
2023-06-13 09:11:15 时间

这篇文档跟【如何更新GPU云服务器的NVIDIA驱动】这篇文档一脉相承。

系统里有2套驱动nvlddmkm.sys甚至3套nvidia-smi.exe会混乱不堪

安装了新版驱动后,C:\Program Files\NVIDIA Corporation\NVSMI目录过了一段时间消失了,未解之谜解开了

nvidia-smi.exe位置变化的逻辑在NVIDIA官网没找到直接文档,但通过测试纯净版系统单独安装旧版、单独安装新版驱动是能看到两版驱动差异的,旧版的nvidia-smi.exe在这个目录C:\Program Files\NVIDIA Corporation\NVSMI\,而新版的在C:\Windows\System32\目录并且C:\Program Files\NVIDIA Corporation\NVSMI目录不存在了。这不是windows操作系统决定的,而是nvidia驱动版本决定的。

对于存在多套驱动的情况,我请微软的朋友帮忙看了下,这种情况做的镜像买新机器,会自动安装新版驱动,在机器闲时会被系统自带的diskclean的计划任务清理掉C:\Windows\System32\DriverStore\FileRepository 目录下nv_打头的旧版驱动目录(1.5G左右,因为没用了还占空间,就被系统智能干掉了旧版,只留一个新版目录)

以其中一个版本举例,在更新过程中,会将c:\program files\nvidia corporation拷贝到临时目录C:\Users\ADMINI~1\AppData\Local\Temp下,然后再拷贝到C:\Windows\System32\DriverStore\Temp,最终拷贝到C:\Windows\System32\DriverStore\FileRepository目录。C:\Program Files\NVIDIA Corporation\NVSMI目录的一些文件会被强制删除,甚至NVSMI整个子目录被删除。

发现旧的版本突然消失,是由于系统触发了Device and Driver Disk Cleanup,会检测到系统中不需要的设备或驱动,oem7.inf(这个case中是oem7.inf,如C:\Windows\INF\setupapi.dev.log截图)为旧版本的驱动文件nv_dispsi.inf_amd64_db8d3f1ff9f89487\nv_dispsi.inf,被自动删除。

如果希望不执行disk cleanup的话,可以尝试将此任务禁用。

关于这个问题,“针对镜像里包含了3版nvidia-smi.exe和2版显卡驱动的情况,购买新机器后,显卡驱动和nvidia-smi.exe会如何去匹配,会不会存在重启下机器就变个状态的情况?”由于每个驱动都有自己的底层逻辑,Windows只能从C:\Windows\INF\setupapi.dev.log日志看到驱动的安装和卸载过程,关于显卡驱动和nvidia-smi.exe会如何去匹配,这种情况还是建议咨询下nvidia厂商,他们能提供更多的信息。

实际上咨询,nvidia回答得笼统,他们认为新版nvidia-smi.exe被他们安排在system32目录,连环境变量都无需用户配置了,岂不是很方便用户,他们不觉得这需要什么解释。在我看来,他们可能没考虑到客户业务在版本变化中的影响,应该前后保持路径的兼容性,你可以往system32目录放一份提升便利性,但原位置应该也保留一份呀,可nvidia目前没这个打算,未来说不定。因此,只能委屈有此需求的用户自己从system32目录拷贝一份到C:\Program Files\NVIDIA Corporation\NVSMI目录了,主要是这4个文件凑成NVSMI文件夹

关于更新nvidia驱动,从Windows层面,微软常规更新驱动的方式是在设备管理器中右击设备以更新驱动,或者直接双击运行驱动包。从系统稳定性角度来看,如果能将旧的版本完全删除,再安装新的版本,这样更保险些。