Ubuntu16.04安装Nvidia显卡驱动与cuda和Cudnn

五迷三道 提交于 2019-12-02 01:34:06

一、安装显卡驱动

1.选择合适自己电脑的驱动:

(1):Nvidia官网下载驱动
可以根据自身电脑的情况对应选项,获得推荐的版本。
在这里插入图片描述
(2):通过终端命令行查看自己电脑的所支持的驱动版本:

sudo apt-cache search nvidia*

在这里插入图片描述
貌似能支持的显卡驱动版本最新到384,但官网的推荐是最新版本430版本,看别的文章也指出可以使用最新版本。

2.安装驱动

(1)通过系统的更新安装驱动:

(A) 更新apt-get源列表

sudo apt-get update
sudo apt-get upgrade

(B) 添加驱动源

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

然后在软件和更新的附加驱动里面就可以找到系统推荐的驱动了!
在这里插入图片描述
点上它后点击apply changes,等待五分钟左右驱动安装结束,然后重启电脑,你会发现界面都变得正常了。
一定记得重启!一定记得重启!
(C)检测安装情况:

nvidia-settings

在这里插入图片描述
或者使用:可以查看到显卡的信息和驱动安装的信息

nvidia-smi

在这里插入图片描述

(2)使用下载好的驱动文件在无图形界面安装:

(A) 删除之前安装的驱动:
 sudo apt-get remove --purge nvidia*

如果之前没有原始驱动则会提示:没有原有驱动

(B)禁用nouveau(安装NVIDIA需要把系统自带的驱动禁用)
sudo gedit /etc/modprobe.d/blacklist.conf

在文末添加以下两行:

blacklist nouveau
option nouveau modeset=0

然后保存,退出。
执行:

sudo update-initramfs -u

重启!!重启!!
然后终端输入:

lsmod | grep nouveau

此时无任何输出即为禁用成功。
(这里说明一下,其实在未重启前也可以运行上面命令检测是否禁用成功)

(C)在上一步验证禁用成功,并且重启后(不用登录进去),进行正式安装:

按Ctrl+Alt+F1进入命令行,输入用户名密码登录(通过Ctrl+Alt+F7可返回界面)
然后输入:(禁用图形界面服务)

sudo service lightdm stop

然后cd到驱动文件所在位置,例如:

cd ~/download/

本人是直接把驱动文件放在主文件夹下:/home/xsd/ 这样可以避免因为路径的中英文问题造成的无法预测的错误。
给驱动文件赋权限:(注意要是自己的文件名,直接使用补全功能即可)

sudo chmod 777 NVIDIA-Linux-x86_64-410.78.run 

进行带选项的安装:(不安装OPENGL)

sudo ./NVIDIA-Linux-x86_64-410.78.run –no-opengl-files

安装过程一路默认选项即可。
然后挂载驱动:(此步骤应该是不需要的)

modprobe nvidia

恢复图形功能:

sudo service lightdm start

通过Ctrl+Alt+F7可返回图形界面

安装完成后,检验安装情况:

nvidia-smi

二、安装CUDA

1.下载对应版本的CUDA

cuda版本选择与下载
应该是需要登录,并且答一个小问卷,然后可以下载。(也可以在Legacy Releases中查找历史版本下载)
在这里插入图片描述

2. 安装CUDA

由于安装过程与安装显卡驱动十分相似,且过程简单,推荐朋友的博客进行安装CUDA安装教程
检验CUDA的安装版本:终端输入

nvcc -V

在输出的结果最后一行的最后是cuda的版本。安装的默认位置是:/usr/local/cuda/

三、Cudnn安装

1.cudnn的版本选择与下载:cudnn版本选择

在这里插入图片描述
之前我们装的cuda10.0所以为了版本对应,我们下载cuDNN应该在7.4以上的版本。cuDNN下载

这里也可以选择cudnn下载
在这里插入图片描述
将下载好的文件cudnn-10.0-linux-x64-v7.6.0.64.tgz解压:出现一个名为cuda的文件夹
其实安装cuDNN就是把上面的cuda文件夹里的一些文件,复制到之前的cuda的安装路径里。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

检查cuDNN安装版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

四、利用anaconda在虚拟环境下安装tensorflow,并在pycharm中使用虚拟环境

详情见我的另一篇博客:tensorflow简便安装

五、安装完nvidia驱动后总是重启后就找不到驱动了!!

一篇总结较好的博客:地址

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

1、可能是华硕的主板的secure boot和 那个fast boot没关。

这里有一篇关于说这个boot的影响的:地址

2、可能是安装前没有装好对应的依赖项(尤其是刚装的系统)

 sudo apt-get update 
 sudo apt-get install dkms build-essential linux-headers-generic
 sudo apt-get install gcc-multilib xorg-dev
 sudo apt-get install freeglut3-dev libx11-dev libxmu-dev install libxi-dev  libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3、 可能是安装前没有申请更新你的内核版本;

 sudo apt-get install linux-source
 sudo apt-get install linux-headers-$(uname -r)
 #其中: uname -r 是查看自己的内核版本的,直接用第二行代码就行。

4、在安装好驱动后,不小心更新了内核版本,或者是关机重启时系统自动更新了内核~?

这个时候你用:

nvidia-smi

就会提示你:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.
有人说直接加sudo就行了,下次试试吧,个人感觉不太行吧~
(1)解决方案1:

sudo gedit /etc/default/grub

找到**GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash nomodeset”**这一行,把nomodeset这个参数和它前面相邻的空格删掉,即改成:
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash”
保存后,更新grub配置:

sudo update-grub

再重启电脑,显卡驱动又恢复效果了。
(2)解决方案2:卸载当前的不能使用的驱动,(一定要先卸载干净之前的)!!然后重新安装即可!

sudo /usr/bin/nvidia-uninstall
#下面这个卸载的更加干净,可以两行代码都用,保证卸载干净
sudo apt-get install autoremove --purge nvidia*

(3)解决方案3:此处跟之前的推测一致,必要依赖里这个dkms没装,导致一直悲剧。

cd /usr/src  # 查看驱动版本号(我的是430.26)
ls
sudo apt-get install dkms
sudo dkms install -m nvidia -v 430.26

(4)解决方案4:

sudo gedit /etc/default/grub

修改GRUB_DEFAULT=“Ubuntu,Linux 4.15.0-52-generic” # Linux 4.15.0-52-generic 是你想要启动的版本 (可以通过:uname -a 来查看你都有什么版本的内核,选择老版本的即可。)
执行:

sudo update-grub 

ok.
(5)解决方法5:

sudo modprobe nvidia ,然后再运行nvidia-smi

5、在安装完驱动后就禁止内核的更新:

在这里插入图片描述

uname -r
sudo apt-mark hold linux-image-x.xx.x-xx-generic
# x.xx.x-xx 为内核的版本号
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!