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。

  1. 查看驱动程序版本
  • dpkg -l | grep nvidia
    可以看到驱动版本是390.116
  • cat /proc/driver/nvidia/version
    这里NVRM的版本是390.87。错误信息就是这两个版本不匹配造成的。接下来先卸载NVIDIA driver,再重新安装。
  1. 卸载旧版本的NVIDIA driver

    1
    sudo apt-get remove --purge nvidia-\*
  2. 添加NVIDIA的ppa源

    1
    sudo add-apt-repository ppa:graphics-drivers/ppa
  3. 重新安装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 updatesudo apt-get upgrade的区别。
在windows系统中安装软件,只需要有exe文件,双击即可安装了。Linux系统中则不同,Linux会维护一个自己的软件仓库,几乎所有软件都在这个仓库里,而且里面的软件完全安全,绝对可以安装。
我们自己的Ubuntu服务器上,维护一个软件源列表文件/etc/apt/sources.list,里面都是一些网址信息,每个网址就是一个软件源,这个地址指向的数据标识着有哪些软件可以安装使用。

  1. 查看源列表:

    1
    sudo vim /etc/apt/sources.list
  2. 更新软件列表

    1
    sudo apt-get update

    这个命令对访问源列表里的每个网址,读取软件列表,保存到本地电脑。

  3. 更新软件

    1
    sudo apt-get upgrade

    这个命令会把本地已安装的软件,与软件列表里对应软件做对比,如果有可更新版本就更新软件。
    总的来说,sudo apt-get update是更新软件列表,sudo apt-get upgrade是更新软件。

参考链接