Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1

时间:2024-04-06 13:00:40

Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1

时隔小半年,这是我第二次尝试在Ubuntu18.04上安装Nvidia驱动。上学期安装失败,并且装坏了Ubuntu,就放弃了。这学期CV有一项作业要跑CNN,不得不重新安装Ubuntu与Nvidia驱动。这次比较幸运,花了小半个下午就安装成功了,于是在这里记录分享一下。

准备工作

首先,如果你的电脑上已经有了其他版本的nvidia驱动,并且不想用该版本了,则需要先卸载旧版本:

$ sudo apt-get remove --purge nvidia-*

还要输入以下代码:

$ sudo apt-get install linux-source
$ cat  /proc/version  //查看需要安装的版本
$ sudo apt-get install linux-headers-4.15.0-47-generic //后续的Nvidia就会被安装在这个版本上

然后需要禁用nouveau显卡,首先要把xxx加入黑名单:

$ sudo gedit /etc/modprobe.d/blacklist.conf

在弹出的文档最后一行加入blacklist nouveau,保存并退出。

正式安装Nvidia驱动

在Ubuntu主菜单中搜索software & update,点击Additional Drivers, 在其中选择想安装的版本,点击Apply Changes,等待安装。
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
安装CUDA:

$ sudo apt install nvidia-cuda-toolkit

安装完后,输入以下命令查看驱动是否安装成功:

nvidia-smi

出现的错误

如果运行完上一条指令后出现NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA DRIVER,说明安装还有问题,通过参考雪刚下的解决方案很快就能解决问题。感觉就是现在的linux内核版本并不是nvidia安装的内核版本,所以我们要返回ubuntu的开机启动页面,选择第二项Advancd Options for Ubuntu,会显示很多linux内核版本,选择与之前安装linux一致的版本进入Ubuntu,再打开terminal输入nvidia-smi,就可以正确显示啦~
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
然后输入nvidia-settings就可以打开Nvidia X server,看到的选项有这些就说明真的安装成功了:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
如果还是不能解决问题,并且发现自己的关机或重启会卡在logo界面,则需要如下修改:

$ sudo chmod +w /boot/grub/grub.cfg  //grub.cfg现在成为可编辑模式
$ sudo gedit /boot/grub/grub.cfg  //在里面找到acpi=off,将他改成acpi=force,就能解决关机卡死,并且显卡驱动也成功被检测到
$ sudo chmod -w /boot/grub/grub.cfg  //文件改回只读模式

Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
acpi这一句是我ubuntu系统安装时写入的,如果你们没有这句话自己加上并保存就行了

CUDA的安装

如果英语好的话,英伟达的官方安装指南也可以参考一下,不过有点长.

cuda toolkit archive上选择安装的CUDA版本,因为我是Ubuntu18.04, 按照官网上说是CUDA10可以支持,而且以后想学习的tensorflow也支持CUDA10,所以我就下载了他的runfile:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
深绿的是我的选择,选了这些就开始下载.下载好后按照官网提供的那句命令运行runfile.

运行的时候会出现一个more 0%,此时需要按回车至100%, accept条款,还会问你要不要安装和这个版本对应的一个nvidia驱动,如果已经安装好的驱动高于他的要求就不用管,如果低于的话,可以从软件更新的那个截图里选一个高级的驱动重新安装.

出现了以下问题:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
解决:输入以下命令并重新运行runfile

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

然而还是说安装失败:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1解决:
这是因为bin和lib的环境变量没有配置好,按照下面命令配置环境变量:

$ sudo vim ~/.bashrc

在打开的文件末尾加入这两句(具体路径根据自己的来改)

export PATH=$PATH:/usr/local/cuda-10.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH

保存退出后:

$ source ~/.bashrc   //保存环境变量的修改
$ nvcc -V  //查看是否安装成功

如果能显示如下信息说明安装成功了CUDA:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
如果还是失败,建议去/usr/local/cuda/bin下查看是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
如果没有nvcc可执行文件就要重新安装,如果按照提示命令安装很可能会出现多个版本的CUDA,要避免这样的情况

安装cuDNN

nvidia cudnn archive选择自己对应版本的cudnn,下载对应系统的library:
Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1
打开terminal,进入保存这三个文件的文件夹,依次运行:

$ sudo dpkg -i libcudnn7_7.3.1.20-1+cuda10.0_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.3.1.20-1+cuda10.0_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.3.1.20-1+cuda10.0_amd64.deb

运行一个例子,验证是否成功安装cuda+cudnn:

$ cp -r /usr/src/cudnn_samples_v7/ $HOME     //要把例子从系统路径里面复制出来,否则make会说权限不够(虽然sudo make也可以成功make)
$ cd $HOME/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN

Ubuntu 18.04+GTX 1050笔记本+Nvidia418+CUDA10+CUDNN7.3.1test pass说明安装全部成功!