背景
公司新买了一台A100的GPU服务器,上面已经装好了nvidia等等,把机器分享给算法的同事做性能测试,他们发现了一个问题,Failed to initialize NVML: Driver/library version mismatch
,查阅资料发现是内核和nvidia不兼容导致的,所以卸载升级了一下nvidia,reboot重启了一下电脑,灾难来临了。开机开不了,去机房重装系统也开机不了,当时都是崩溃的,当然,这是后话。后来成功的解决了,费了好大的劲。
现在主要说这个问题的解决方法,当我装好系统,重新下载好nvidia生态链的所有环境,测试都没问题。然后中间耽搁了1个月(忙其他事情)没有给算法工程师测试,突然想起来了后告诉算法工程师去测试,关键来了,这个问题又复现了,当时人都麻了。
解决方案
经过讨论,我们得出方向,可能是nvidia自己升级了,这次一定要从根本上解决了这个问题,要不然谁能受得了。
直接上干货
-
在不做任何操作的情况下直接重启,
reboot
,发现又可以用了
不要问我为什么,我也不知道,亲测可用 -
以防下次出现同样的问题,我们找到了关键因素,可以停止机器上的nvida停止更新
sudo apt-mark hold nvidia-版本
3、你该问了,nvidia-中的版本从哪里看?
cat /proc/driver/nvidia/version
sudo dpkg --list | grep nvidia-*
所以观察完上述的版本,我们
sudo apt-mark hold nvidia-470
那就会报错:
sudo apt-mark hold nvidia-470.86
你可能这会儿已经急了,但是不要慌
sudo apt-mark hold nvidia-dkms-470
这个才是可行的,这个来自上述图片,可自适应。
疑惑
这时候你可能松了一口气,以为完全解决了,但是事情完全没有这么简单,我有记录的好习惯
当我报上述错误时,输入cat /proc/driver/nvidia/version
得到的结果是:
当我重启电脑后,输入cat /proc/driver/nvidia/version
得到的结果是:
而前后两次输入sudo dpkg --list | grep nvidia-*
的结果是相同的。
这就不是nvidia升级了,而是内核升级了。
这里我留下思考,也请评论区的小伙伴踊跃评论,下次我会带来我的见解。