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
,等待安装。
安装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
,就可以正确显示啦~
然后输入nvidia-settings
就可以打开Nvidia X server,看到的选项有这些就说明真的安装成功了:
如果还是不能解决问题,并且发现自己的关机或重启会卡在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 //文件改回只读模式
acpi这一句是我ubuntu系统安装时写入的,如果你们没有这句话自己加上并保存就行了
CUDA的安装
如果英语好的话,英伟达的官方安装指南也可以参考一下,不过有点长.
去cuda toolkit archive上选择安装的CUDA版本,因为我是Ubuntu18.04, 按照官网上说是CUDA10可以支持,而且以后想学习的tensorflow也支持CUDA10,所以我就下载了他的runfile:
深绿的是我的选择,选了这些就开始下载.下载好后按照官网提供的那句命令运行runfile.
运行的时候会出现一个more 0%
,此时需要按回车至100%, accept条款,还会问你要不要安装和这个版本对应的一个nvidia
驱动,如果已经安装好的驱动高于他的要求就不用管,如果低于的话,可以从软件更新的那个截图里选一个高级的驱动重新安装.
出现了以下问题:
解决:输入以下命令并重新运行runfile
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
然而还是说安装失败:
解决:
这是因为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:
如果还是失败,建议去/usr/local/cuda/bin下查看是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装:
如果没有nvcc可执行文件就要重新安装,如果按照提示命令安装很可能会出现多个版本的CUDA,要避免这样的情况
安装cuDNN
去nvidia cudnn archive选择自己对应版本的cudnn,下载对应系统的library:
打开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
test pass说明安装全部成功!