下面是安装cuda11.0+cudnn8的教程
https://developer.nvidia.com/cuda-toolkit-archive
选择cuda11.0版本,然后再选择如下
或者你可以直接用下面的链接下载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
https://developer.nvidia.com/rdp/cudnn-archive
然后选择一个可以用于cuda11的版本,我选的是8.0.5,然后下载下图的这个
下载完之后是一个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请看下一篇文章。