Ubuntu运行命令nvidia-smi
出错。
问题描述
在Ubuntu18.04的命令行中运行命令nvidia-smi
,返回错误信息
1 | Failed to initialize NVML: Driver/library version mismatch |
方法1:重启解决大部分问题
博客解决Driver/library version mismatch讲述的很清楚,这里就不再赘述。
或者参考大型交友网站stack overflow的问题NVIDIA NVML Driver/library version mismatch
方法2:重装驱动
看返回的错误信息,这个问题出现的原因是NVIDIA Driver的版本不匹配。如果重启不能解决问题,我们需要卸载重装NVIDIA driver。
- 查看驱动程序版本
dpkg -l | grep nvidia
可以看到驱动版本是390.116
cat /proc/driver/nvidia/version
这里NVRM的版本是390.87
。错误信息就是这两个版本不匹配造成的。接下来先卸载NVIDIA driver,再重新安装。
卸载旧版本的NVIDIA driver
1
sudo apt-get remove --purge nvidia-\*
添加NVIDIA的ppa源
1
sudo add-apt-repository ppa:graphics-drivers/ppa
重新安装NVIDIA的驱动
1
sudo apt-get update && sudo apt-get install nvidia-390
用你自己的版本号替换
390
。
这时再用cat /proc/driver/nvidia/version
查看NVIDIA driver的驱动。 可以看到NVRM的版本是390.116
,这时版本就匹配了。
再次执行nvidia-smi
,终于看到
在nvidia driver各版本总览可以看到NVIDIA driver的各个版本。
额外的:update 与 upgrade
记录下sudo apt-get update
与sudo apt-get upgrade
的区别。
在windows系统中安装软件,只需要有exe文件,双击即可安装了。Linux系统中则不同,Linux会维护一个自己的软件仓库,几乎所有软件都在这个仓库里,而且里面的软件完全安全,绝对可以安装。
我们自己的Ubuntu服务器上,维护一个软件源列表文件/etc/apt/sources.list
,里面都是一些网址信息,每个网址就是一个软件源,这个地址指向的数据标识着有哪些软件可以安装使用。
查看源列表:
1
sudo vim /etc/apt/sources.list
更新软件列表
1
sudo apt-get update
这个命令对访问源列表里的每个网址,读取软件列表,保存到本地电脑。
更新软件
1
sudo apt-get upgrade
这个命令会把本地已安装的软件,与软件列表里对应软件做对比,如果有可更新版本就更新软件。
总的来说,sudo apt-get update
是更新软件列表,sudo apt-get upgrade
是更新软件。