Ubuntu16.04下安装NVIDIA驱动+cuda+cudnn
安装过程中遇到了许多的坑,在这里记下来希望看到这篇文章的人避开这些坑。
环境:
ubuntu 16.04
gtx 1060
未安装过cuda,cudnn
安装NVIDIA驱动
打开:系统设置-软件和更新-附加驱动,选择合适的NVIDIA驱动,点击应用更改,等待读条完成。
有的电脑可能无法通过此法安装驱动,可以搜索手动安装驱动的方法。
打开终端,输入
nvidia-smi
查看当前系统显卡驱动版本和对应的cuda版本。注意:此时显示的cuda版本跟实际安装的cuda版本可以不一样,此处的cuda version表示显卡驱动版本对应的cuda版本应为11.2及以上。不代表你的电脑里已经安装了cuda。
检查是否安装了gcc
gcc -v
# 若没有安装,则输入,直接把包括gcc在内很多开发工具包一同安装
sudo apt-get install build-essential
如果存在老版本cuda,先卸载,没有安装过cuda的可以跳过此步
sudo apt-get remove --purge nvidia*
#或者尝试
cuda-uninstaller #卸载cuda,位置在/usr/local/cuda-xx.x/bin。xx为之前安装的版本
nvidia-uninstaller #卸载驱动
禁用nouveau(比较稳妥的安装方法)
cd /etc/modprobe.d
sudo touch blacklist-nouveau.conf
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
# 在文件末尾添加
blacklist nouveau
options nouveau modeset=0
#保存文件,然后在终端输入
sudo update-initramfs -u
完成后先重启下电脑。
安装cuda
首先到官网选择自己需要安装的cuda版本,如果是初次登陆NVIDIA官网则需要先完成注册并填写问卷,待登陆成功之后在官网上选择对应的cuda版本。
打开终端,输入:
wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run
下载过程比较漫长,视网络情况而定。
下载过程中的问题
博主在下载时感觉速度慢,于是寻找加速方法,后来找到了用axel下载的方法,但是经此法下载的runfile的md5跟官网的md5不匹配,所以大家还是最好用wget下载,也不会慢多少。
待下载完成之后,进入家目录(下载下来的安装包会存放在此)并打开终端,输入:
md5sum cuda_11.2.2_460.32.03_linux.run
检查下载文件的md5并与官网提供的md5比较


确认无误后,打开终端,输入
sudo sh cuda_11.2.2_460.32.03_linux.run
开始安装。终端会在后台运行一段时间,看起来像是卡住了,并不是没有反应,请耐心等待。
如果第一步已经安装了驱动,则会出现:existing package manager installation driver found,不影响安装,选择继续即可,接下来的步骤会解决这个问题
然后选择:accept (安装时没截图,参考在文末)
这里将光标移到[X]Driver处,按enter键,取消勾选安装驱动。因为之前在第一步已经安装过了,这里是cuda推荐安装的驱动,不装也不影响,只要第一步安装好了这里取消掉是没问题的。
出现以下提示说明已经安装成功一大半了
在家目录下打开新终端,输入
sudo gedit ~/.bashrc
在文件末尾添加
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
再输入source ~/.bashrc,使设置生效
source ~/.bashrc
检查是否安装成功
nvcc -V
出现上图所示界面说明已经安装完成。
安装过程中的问题
gzip: stdin: unexpected end of file
Extraction failed.
Ensure there is enough space in /tmp and that the installation package is not corrupt
原因有二:
1.文件下载错误。用之前说过的md5进行核对,md5不对的需要重新下载runfile
2./tmp空间不足。在/home/你的用户名/ 文件夹下新建文件夹temp,然后打开终端,输入
sudo sh cuda_11.2.2_460.32.03_linux.run --tmpdir=/home/你的用户名/temp
安装cudnn
cudnn的安装比较简单,首先到官网下载对应版本的cudnn。此处安装的是cuda11.2,所以选择cudnn8.1,cundnn library for linux [x86_64]
下载过程会比较慢,这里提供一个加速的方法:chrome浏览器,先点击下载,等到开始下载之后再取消下载,然后在下载记录中会看到如下结果:
右键点击黑框中的网址,点击复制链接,打开迅雷进行下载(打开迅雷后会自动弹出下载)。博主是保存了网址后回到win10系统下载的,下载完成后生成的文件名为:cudnn-11.2-linux-x64-v8.1.1.33.null 。此时将.null改为.tgz即可恢复正常。
路径名称解释:CUDA 的文件夹路径为 /usr/local/cuda/ ;下载并保存cuDNN文件的路径称为 <cudnnpath>
安装cudnn:
- 进入cudnnpath(进入保存cuDNN文件的文件夹)
- 在该文件夹内打开终端,输入:
$ tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz # 输入cud之后按TAB键会自动补全 或者 $ tar -xzvf cudnn-x.x-linux-aarch64sbsa-v8.x.x.x.tgz
解压完成后会在当前目录下生成一个名为cuda的文件夹
- 将对应文件拷贝到系统内cuda的目录。在保存cuDNN文件的文件夹内打开终端,输入:
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
cudnn的安装就完成了。
参考