0 deb和tar方法
为什么推荐使用deb方法呢,因为下面三点:
- 使用tar方法安装不会有cudnn_samples_v8这个文件,无法使用官方的安装完成验证方式。
- 查看cuDNN的方法已经过时了,使用tar方法不知道安上能用没有。
- deb方法简单。
1 下载所有的deb文件
cuDNN所有的deb文件是指:Runtime Library,Developer Library和Code Samples的deb文件。
从上往下数,下载第4,5,6个文件。
2 安装deb文件
使用如下语句依次安装:
sudo dpkg -i libcudnn8_8.0.3.33-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-dev_8.0.3.33-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-samples_8.0.3.33-1+cuda11.0_amd64.deb
3 查看cuDNN(勘误)
输入如下命令:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果出现如下信息,说明cuDNN已正确识别。
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
其实这个方法已经没有意义了,因为在cudnn8里面cudnn.h已经没有CUDNN_MAJOR这个信息。
4 测试cuDNN
官方说法:To verify that cuDNN is installed and is running properly, compile the mnistCUDNN sample located in the /usr/src/cudnn_samples_v8 directory in the debian file.
0. Copy the cuDNN sample to a writable path.
cp -r /usr/src/cudnn_samples_v8/ $HOME
- Go to the writable path.
cd ~/cudnn_samples_v8/mnistCUDNN
这个最好是进去再make,不然在文件外面操作可能有权限的问题。
2. Compile the mnistCUDNN sample.
编译文件。
sudo make clean
sudo make
3. Run the mnistCUDNN sample.
运行样例程序。
sudo ./mnistCUDNN
4. If cuDNN is properly installed and running on your Linux system, you will see a message similar to the following:
如果成功运行,会显示下列信息:
Test passed!
至此,cuDNN已通过程序测试。恭喜你完成安装!
5 常见错误
1 Error: no CUDA-capable device is detected
这个错误常发生在重启电脑后的ubuntu系统。虽然说是说CUDA找不到,但是你可以用如下代码验证:
nvcc -V
sudo nvidia-smi
验证的结果一般都是CUDA没问题NVIDIA驱动掉了。毕竟ubuntu是开源系统,发现系统驱动突然掉了如同家常便饭。
有两种解决方法:
- 不关闭电脑,不重启电脑。这种方法适用于实验室用电不花自家钱的电脑。
- 重装驱动。可以参考 李森科在zhihu:NVIDIA驱动安装 - 从问题到解决(Linux/Ubuntu) 前面的两行代码。