如何在ubuntu18.04中安装 cuda11.0 + cudnn8

问题描述:

我想使用libtorch的cuda11.0版本,因此需要先安装cuda+cudnn,可是网上的教程又少又旧,整了好多天,因此记录下来。

下面是安装cuda11.0+cudnn8的教程


安装cuda11.0:

这个不难,首先到官网下载cuda11.0:
 https://developer.nvidia.com/cuda-toolkit-archive

选择cuda11.0版本,然后再选择如下

如何在ubuntu18.04中安装 cuda11.0 + cudnn8_第1张图片

或者你可以直接用下面的链接下载run文件,如果下不了复制这个链接用迅雷下
(tips:迅雷特别技巧,先把要下的链接添加到迅雷云盘,然后再下,速度就很快)

wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run

安装

sudo sh cuda_11.0.2_450.51.05_linux.run

安装完毕之后,使用

sudo nautilus

进入/usr/local把cuda-11.0重命名为cuda(这样nvcc --version显示的就是11.0了)

使用

sudo gedit ~/.bashrc

将以下三条加入.bashrc文件中.

export PATH=/usr/local/cuda/bin${PATH:+:$PATH}}     
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

然后

source ~/.bashrc

使用下面的命令来检查版本

nvcc --version

结果如下,说明安装成功

ljt@ljt-TUF-GAMING-FX504GE-FX80GE:/usr/local$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0

安装cudnn8:

进入cudnn官网,你需要注册一个账号才能下,我是用微信注册的。
https://developer.nvidia.com/rdp/cudnn-archive

然后选择一个可以用于cuda11的版本,我选的是8.0.5,然后下载下图的这个
如何在ubuntu18.04中安装 cuda11.0 + cudnn8_第2张图片下载完之后是一个cudnn-11.0-linux-x64-v8.0.5.39.tgz,需要解压,使用

 tar zxvf cudnn-11.0-linux-x64-v8.0.5.39.tgz -C 指定目录

解压到指定目录,解压出来是一个文件夹名叫cuda。
随后是重点!!
很多教程会教你使用

sudo cp cuda/include/cudnn.h    /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn*    /usr/local/cuda/lib64

来把解压出来的cuda文件夹里面的include文件夹和lib64文件夹里面的内容拷贝过去,但是我发现这样的方法会漏掉一些文件,以至于后面cudnn没办法用(大坑),我猜测是他们写这个方法的时候用的是cudnn的早期版本,可能会跟现在的8版本有所区别。
这里我用来一个简单粗暴的方法,直接使用

sudo nautilus

以管理员身份(这样才可以修改user里面的文件)打开/usr/local/cuda/,把我们刚刚解压的cuda文件夹里面的include文件夹和lib64文件夹复制过去,就好了。然后使用下面的命令

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

就安装好了。
以及很多博客说使用

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

来检查安装结果,但是cudnn8及以上版本版本信息放到了上面指令中路径的另一个cudnn_version.h中,因此在系统中安装了8及以上版本的终端输入上一条指令没有反应,应输入如下指令:

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

然后就会显示

ljt@ljt-TUF-GAMING-FX504GE-FX80GE:/usr/local$ cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#endif /* CUDNN_VERSION_H */

就安装完成了。

如果有什么错误遗漏的地方请跟我反馈,我用了很多笨方法,但最后确实是实现了我想要的效果。如何在libtorch上面使用gpu请看下一篇文章。


你可能感兴趣的:(cuda,ubuntu,linux,深度学习,自动驾驶)