下载
安装cuDnn的话需要和CUDA版本对应,可参考官网:
cuDNN Archive | NVIDIA Developer
我的cuda是11.8
这个cuDNN8.9.7_Linux直接下载:
安装配置
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
cd cudnn-*-archive
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp -P lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
检验
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
表明当前使用的 cuDNN 版本是 8.9.7,这是由 CUDNN_MAJOR
, CUDNN_MINOR
, 和 CUDNN_PATCHLEVEL
定义的
这些信息来自 cudnn_version.h
文件,主要用于定义和标识 cuDNN 库的版本号。以下是每行的解释:
-
#define CUDNN_MAJOR 8
:- 这行代码定义了 cuDNN 的主版本号为 8。
-
#define CUDNN_MINOR 9
:- 这行代码定义了 cuDNN 的次版本号为 9。
-
#define CUDNN_PATCHLEVEL 7
:- 这行代码定义了 cuDNN 的补丁级别版本号为 7。
-
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
:- 这行代码将主版本号、次版本号和补丁级别组合成一个整体的版本号。对于这个例子来说,
CUDNN_VERSION
的值将是8 * 1000 + 9 * 100 + 7 = 8097
。
- 这行代码将主版本号、次版本号和补丁级别组合成一个整体的版本号。对于这个例子来说,
-
/* cannot use constexpr here since this is a C-only file */
:- 这是一条注释,解释了为什么在这个文件中不能使用
constexpr
关键字,因为这是一个 C 语言的头文件,而constexpr
是 C++ 中的特性。
- 这是一条注释,解释了为什么在这个文件中不能使用