Rocky Linux 9 AI 系列 004 — 安装 cuDNN

cuDNN 简介

cuDNN(CUDA Deep Neural Network library)是由 NVIDIA 提供的一个 GPU 加速库,专门用于深度学习中的神经网络操作。cuDNN 提供了高度优化的实现,支持卷积、池化、归一化、激活函数以及 RNN(循环神经网络)等常见的神经网络操作。

cuDNN 的作用

  1. 加速深度学习:cuDNN 提供了高性能的 GPU 实现,可以大大加速深度学习模型的训练和推理过程。
  2. 简化开发:开发者可以使用 cuDNN 提供的高层次 API,避免手动优化底层 GPU 操作。
  3. 跨平台支持:cuDNN 可以在多种 NVIDIA GPU 硬件上运行,提供一致的性能和接口。

cuDNN 与 CUDA Toolkit 的关系

  1. 依赖关系

    • cuDNN 依赖 CUDA Toolkit:cuDNN 是构建在 CUDA 之上的高性能库,利用了 CUDA 提供的并行计算能力。因此,cuDNN 必须依赖于 CUDA Toolkit 才能运行。
    • CUDA Toolkit:CUDA Toolkit 是 NVIDIA 提供的一整套工具和库,用于开发和运行 GPU 加速应用程序。它包括了 CUDA 编译器、CUDA 核心库(如 cuBLAS、cuFFT 等)以及开发工具(如 Nsight)等。
  2. 功能层次

    • CUDA Toolkit:提供了基础的 GPU 编程接口和核心库,用于实现广泛的并行计算任务。它是一个通用的编程平台,不仅限于深度学习。
    • cuDNN:专注于深度学习中的神经网络操作,提供高度优化的实现。它基于 CUDA 提供的并行计算能力,进一步封装了常见的深度学习操作。
  3. 使用方式

    • CUDA Toolkit:开发者可以直接使用 CUDA 提供的 API 编写 GPU 程序,进行各种并行计算任务。
    • cuDNN:开发者可以在深度学习框架(如 TensorFlow、PyTorch、Caffe 等)中使用 cuDNN 提供的 API,来加速神经网络的训练和推理。
温馨提醒
如果您不在宿主机上跑深度学习框架,就不需要安装 cuDNN。对于容器可以直接选择已经安装对应版本 cuDDN 的 Docker 镜像。

下载 cnDNN

因为 cuDNN 版本的选择需要与 CUDA 驱动版本一致,所以在安装 cuDNN 之前,需要先确认目前安装的 CUDA 驱动版本,再选择对应 cuDNN 版本。具体参考:cuDNN Archive | NVIDIA Developer

[root@gpu-server-001 ~]# nvcc --version 
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:18:24_PDT_2024
Cuda compilation tools, release 12.4, V12.4.131
Build cuda_12.4.r12.4/compiler.34097967_0

从上面输出的结果来看,我们安装的 CUDA 版本为 V12.4.131,所以 cuDNN 安装支持 CUDA 12 版本的即可。下载链接:cuDNN 9.3.0 Downloads | NVIDIA Developer,还可以通过此链接下载:Index of /compute/cudnn/redist

安装 cuDNN

[root@gpu-server-001 ~]# wget https://developer.download.nvidia.com/compute/cudnn/9.3.0/local_installers/cudnn-local-repo-rhel9-9.3.0-1.0-1.x86_64.rpm
[root@gpu-server-001 ~]# rpm -i cudnn-local-repo-rhel9-9.3.0-1.0-1.x86_64.rpm
warning: cudnn-local-repo-rhel9-9.3.0-1.0-1.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 0bea2fe4: NOKEY

[root@gpu-server-001 ~]# dnf clean all
74 files removed

[root@gpu-server-001 ~]# dnf -y install cudnn-cuda-12
cuda-rhel9-x86_64                                                                                                                                                                                                               943 kB/s | 1.8 MB     00:01    
cudnn-local-rhel9-9.3.0                                                                                                                                                                                                         2.4 MB/s | 4.1 kB     00:00    
Docker CE Stable - x86_64                                                                                                                                                                                                       192 kB/s |  55 kB     00:00    
Extra Packages for Enterprise Linux 9 - x86_64                                                                                                                                                                                   13 MB/s |  22 MB     00:01    
nvidia-container-toolkit                                                                                                                                                                                                         14 kB/s |  19 kB     00:01    
Remi's Modular repository for Enterprise Linux 9 - x86_64                                                                                                                                                                       1.1 MB/s | 676 kB     00:00    
Safe Remi's RPM repository for Enterprise Linux 9 - x86_64                                                                                                                                                                      1.2 MB/s | 1.0 MB     00:00    
Rocky Linux 9 - BaseOS                                                                                                                                                                                                          2.2 MB/s | 2.3 MB     00:01    
Rocky Linux 9 - AppStream                                                                                                                                                                                                       5.9 MB/s | 8.0 MB     00:01    
Rocky Linux 9 - CRB                                                                                                                                                                                                             1.3 MB/s | 2.4 MB     00:01    
Rocky Linux 9 - Extras                                                                                                                                                                                                           38 kB/s |  15 kB     00:00    
Dependencies resolved.
================================================================================================================================================================================================================================================================
 Package                                                                 Architecture                                          Version                                                   Repository                                                        Size
================================================================================================================================================================================================================================================================
Installing:
 cudnn9-cuda-12                                                          x86_64                                                9.3.0.75-1                                                cuda-rhel9-x86_64                                                7.2 k
Installing dependencies:
 cudnn9-cuda-12-6                                                        x86_64                                                9.3.0.75-1                                                cuda-rhel9-x86_64                                                7.3 k
 libcudnn9-cuda-12                                                       x86_64                                                9.3.0.75-1                                                cuda-rhel9-x86_64                                                550 M
 libcudnn9-devel-cuda-12                                                 x86_64                                                9.3.0.75-1                                                cuda-rhel9-x86_64                                                 53 k
 libcudnn9-static-cuda-12                                                x86_64                                                9.3.0.75-1                                                cuda-rhel9-x86_64                                                576 M

Transaction Summary
================================================================================================================================================================================================================================================================
Install  5 Packages

Total download size: 1.1 G
Installed size: 1.8 G
Downloading Packages:
(1/5): cudnn9-cuda-12-6-9.3.0.75-1.x86_64.rpm                                                                                                                                                                                   8.6 kB/s | 7.3 kB     00:00    
(2/5): cudnn9-cuda-12-9.3.0.75-1.x86_64.rpm                                                                                                                                                                                     8.3 kB/s | 7.2 kB     00:00    
(3/5): libcudnn9-devel-cuda-12-9.3.0.75-1.x86_64.rpm                                                                                                                                                                            202 kB/s |  53 kB     00:00    
(4/5): libcudnn9-cuda-12-9.3.0.75-1.x86_64.rpm                                                                                                                                                                                   10 MB/s | 550 MB     00:55    
(5/5): libcudnn9-static-cuda-12-9.3.0.75-1.x86_64.rpm                                                                                                                                                                           9.5 MB/s | 576 MB     01:00    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                            18 MB/s | 1.1 GB     01:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                        1/1 
  Installing       : libcudnn9-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                                    1/5 
  Installing       : libcudnn9-devel-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                              2/5 
  Installing       : libcudnn9-static-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                             3/5 
  Installing       : cudnn9-cuda-12-6-9.3.0.75-1.x86_64                                                                                                                                                                                                     4/5 
  Installing       : cudnn9-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                                       5/5 
  Running scriptlet: libcudnn9-devel-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                              5/5 
  Running scriptlet: cudnn9-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                                       5/5 
  Verifying        : cudnn9-cuda-12-6-9.3.0.75-1.x86_64                                                                                                                                                                                                     1/5 
  Verifying        : cudnn9-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                                       2/5 
  Verifying        : libcudnn9-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                                    3/5 
  Verifying        : libcudnn9-devel-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                              4/5 
  Verifying        : libcudnn9-static-cuda-12-9.3.0.75-1.x86_64                                                                                                                                                                                             5/5 

Installed:
  cudnn9-cuda-12-9.3.0.75-1.x86_64              cudnn9-cuda-12-6-9.3.0.75-1.x86_64              libcudnn9-cuda-12-9.3.0.75-1.x86_64              libcudnn9-devel-cuda-12-9.3.0.75-1.x86_64              libcudnn9-static-cuda-12-9.3.0.75-1.x86_64             

Complete!

cuDNN Docker 镜像

💡注意:cuDNN Docker 镜像本身不依赖宿主机安装的 CUDA Toolkit 和 cnDNN,只依赖宿主机安装的 NVIDIA Container Toolkit。

如果想使用 Rocky Linux 9 cuDNN Docker 镜像,可以从这里下载:nvidia/cuda Tags | Docker Hub,但注意考虑兼容性问题。比如:这里安装的显卡驱动是 550.107.02,其对应兼容的 CUDA Toolkit 包是:CUDA 12.4 Update 1,所以 cuDNN Docker 镜像也需要下载 nvidia/cuda:12.4.1-cudnn-runtime-rockylinux9

[root@gpu-server-001 ~]# docker pull nvidia/cuda:12.4.1-cudnn-runtime-rockylinux9

通过上述步骤,我们在 Rocky Linux 9 上成功安装了 cuDNN,现在可以充分利用 GPU 的计算能力跑深度学习框架了。

参考文献

[1] Installing cuDNN on Linux — NVIDIA cuDNN v9.3.0 documentation

Avatar photo

关于 木子

Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇