显卡驱动与NVML库版本不一致问题。
可到/usr/lib/x86_64-linux-gnu/
路径下查找libnvidia-ml*
相关软链和文件:
1 | root@10-101-72-17:/usr/lib/x86_64-linux-gnu# ll | grep libnvidia-ml |
一般libnvidia-ml.so
为软链指向libnvidia-ml.so.1
又为软链指向一个libnvidia-ml.so.xxx.yyy.zzz
的文件,xxx.yyy.zzz
为NVML版本号。
如果该目录下存在多个不同版本号的NVML动态链接库文件(如上述代码段中所示),则有可能手动安装过显卡驱动并随驱动安装了一个版本的NVML,而系统又因各种原因新安装了另一个版本,导致驱动版本与NVML版本不匹配。
这里一个可能的原因是Ubuntu的系统自动更新,可通过查阅/var/log/apt/history.log
日志,看是否自动更新过libnvidia或libcuda等可能与显卡相关的组件。
简单粗暴的解决方案:重启节点并重新安装驱动,手动安装或apt均可,保证将驱动和NVML刷成一致的版本即可。
另一个不想重启的解决思路(未验证):如果是手动安装的驱动,由系统更新造成了版本问题,不重启时直接重装原来装过的驱动时会失败,或许可以下载与系统更新出的NVML版本完全一致的驱动文件再手动安装。