我昨晚在我的 Ubuntu 工作站上训练模型,然后今天早上醒来看到了这条消息:
Failed to initialize NVML: Driver/library version mismatch
显然 NVIDIA 系统驱动程序已自动更新,现在我需要重新启动机器才能使用我的 GPU...如何阻止 NVIDIA 自动更新?
如果这是因为无人值守升级(可能),那么您应该将 NVIDIA 驱动程序添加到其黑名单中。将
nvidia-
和 libnvidia-
添加到 /etc/apt/apt.conf.d/50unattended-upgrades
,如下所示:
Unattended-Upgrade::Package-Blacklist {
"nvidia-";
"libnvidia-";
...
}
如果您在
apt list --installed | grep nv
的输出中看到任何其他 NVIDIA 驱动程序名称,请考虑添加其他行
我想我也遇到过同样的问题。这是因为 Ubuntu 上所谓的无人值守升级。
检查 apt 历史日志
less /var/log/apt/history.log
然后你就可以看到哪些包发生了变化。使用
apt
或 aptitude
恢复更改。
使用this指南禁用无人值守升级。请考虑此解决方案是否适合您,因为在此更改后您必须手动安装安全更新。
使用this指南了解如何保存某些包裹。阅读上面提到的 apt 历史记录来确定您必须搁置哪些软件包。可能是 CUDA 相关的包,例如
nvidia-cuda-toolkit
。很难说,因为您的帖子中缺少一些信息。你可以像这样看到所有nvidia相关的包
dpkg -l *nvidia*
我希望我的解决方案至少有一个适合您:)
附注你必须改变标题。 NVIDIA 不会自行升级您系统上的任何内容。 Ubuntu 是给你带来麻烦的那个;)
如果您检查您的
/var/log/dpkg.log
,您会发现它会在清晨自动升级您的nvidia*
和libnvidia*
软件包,如屏幕截图所示。禁用此功能的更积极的方法是 sudo apt remove unattended-upgrades
参考