• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!

互联网 diligentman 5天前 7次浏览

**

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!

**
笔者小白经历了从入门到放弃,坚持到成功的大起大落,决定写一些东西记录一下这一路爬过的坑!
废话不多说,直奔主题。
在跑代码的过程中发现无法调用GPU,于是输入 nvidia-smi命令查看GPU信息,结果报错!

NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

于是憨憨的打开Ubuntu附加驱动,如图:

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
选择了nvidia-430(开源),应用更改,结果循环登陆!(果然最简单的方法最不靠谱!千万别点应用更改)。

第一次遇到这种问题可把笔者吓坏了,到处搜解决方案,找师兄帮忙- –

其实循环登陆不要慌,删掉之前安装的NVIDIA驱动就OK了!

ALT+CTRL+F2进入命令行模式:

这里会关闭图形界面进入命令行如图:

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
输入用户名和密码,注意大小写,键盘可能不显示大写!

卸载英伟达驱动并重启

1 | sudo apt-get remove --purge nvidia-*

这里有个坑:sudo命令后会让输入密码,当时有四个菱形的东西一直闪,我就一直在等,其实是让你输密码呢!

1 | sudo apt-get autoremove #重要,删除安装的nvidia相关一切程序,并不保留配置文件
1 | sudo apt-get install -f #重要,把安装时添加的相关依赖包全删了
1 | sudo reboot

重启后可以顺利登入,循环登陆解决!

但现在只是从一个坑里爬出来,显卡驱动依旧没有安装

安装驱动

首先在 官网下载你自己显卡对应的驱动NVIDIA-Linux-x86_64-xxx.xx.run,拷贝到Linux的/home/目录后可以先改个简单点的名字如:NVIDIA-Linux-450.run,然后再更改权限:

1 | sudo chomod 777 NVIDIA-Linux-450.run

禁用nouveau驱动

#修改blackilist.conf文件
sudo vim /etc/modprobe.d/blacklist.conf
#增加内容
blacklist nouveau
options nouveau modeset=0
#使其生效
sudo update-initramfs -u
#重启机器
sudo reboot
#验证是否禁用nouveau
lsmod| grep nouveau	#如没有输出,说明禁用成功

临时关闭显示服务

1 | sudo service lightdm stop

运行安装程序

1 | sudo ./NVIDIA-Linux-450.run --no-x-check --no-nouveau-check --no-opengl-files

–no-x-check 非必须参数,表示安装驱动时不检查X服务

–no-nouveau-check 非必须参数,表示安装驱动时不检查nouveau

–no-opengl-files 必须参数,表示仅安装驱动文件,不安装OpenGL文件

这里改为自己的.run文件名字即可

安装过程中的选项:

The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。

Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。

问题大概是:Nvidia’s 32-bit compatibility libraries? 选择 No 继续。

Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续

这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。

安装后再重启显示

1 | sudo service lightdm start

检查驱动是否安装成功:

1 | nvidia-smi

出现下图表示驱动安装成功!

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
接下来是我一直纠结的东西…

终端输入nvidia-settings不能正常输出!如图:

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
图形界面也无法显示显卡信息:

Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
可是nvidia-smi可以正常显示显卡信息啊! 于是我开始疯狂的重装NVIDIA驱动,尝试各个版本,都是一样的错误。最后没办法向老师求助- – 老师去联系厂家,请求专家来帮忙解决问题。碰巧的是一个学长给我推过来一个专门安装服务器的专家。加上vx聊了以后发现和老师联系的是一个专家!

专家话不多说上来远程连接一顿操作,四块gpu发动起来了,风扇声很大!

专家说nvidia-settings 一般是接独显,还要配置文件是独显的才能显示,而且图形界面不显示显卡信息也是正常的!

驱动没问题!gpu可以调用!

不用管nvidia-settings报错和图形界面显示不显示,只要nvidia-smi可以正常输出就可以!

知道gpu可以调用,但我的代码还是不调用gpu – –

一番搜索后发现原来是CUDA和cuDNN有问题!

根据下面这篇博文选择CUDA以及cuDNN版本
tensorflow各个版本的CUDA以及Cudnn版本对应关系

根据下面这篇博文修改配置文件
ubuntu18.04 tensorflow-gpu1.13+cuda10.0+cudnn7.5安装配置

最后通过终端输入nvidia-smi查看显卡信息,nvcc -V查看CUDA信息,cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看cuDNN信息。

笔者最终安装的版本信息:
Driver Version: 450.57
CUDA-10.0
cuDNN-7.5.0
tensorflow-gpu==1.13.1

在pycharm下运行代码成功调用gpu!
Ubuntu16.04 LTS 安装NVIDIA驱动的辛酸史!
终于!!
虽然这次安装驱动配置环境道路曲折,但笔者也确实积累了一些知识,努力了还是有结果的,坚持还是很重要的,遇到问题多想多问,问题总会解决。


喜欢 (0)