在 Nvidia-Docker 中安装 cudnn
安装完Nvidia-Docker 之后,可以通过以下步骤安装docker中的 cudnn。
- 1.首先要通过如下命令查看自己应该安装的cuda版本。
nvcc -V
我的cuda版本是:12.4,控制台显示如下:
- nvcc: NVIDIA ® Cuda compiler driver
Copyright © 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
所以我选择的是: 12.4.0-cudnn-devel-ubuntu20.04
对于cudnn的版本,一共有三个:1、base 2、runtime 3、devel
- base: 基于CUDA,包含最精简的依赖,用于部署预编译的CUDA应用,需要手工安装所需要的其他依赖
- runtime: 基于base,添加了cuda toolkit共享的库
- devel: 基于runtime,添加了便于工具链,调试工具,头文件,静态库。用于从源码编译CUDA应用
最好,最简单,最省事的选择的是安装devel版本,因为devel版本包含了cuda toolkit,cudnn,以及头文件,静态库等,方便我们进行开发。
安装
- 到 https://hub.docker.com 中搜索nvidia/cuda, 然后在tags中选择和自己电脑中cudnn版本(ncvv-V)一致的版本
-
也要注意自己的ubuntu系统版本哈,我的是20.04
- 然后拷贝拉取和安装镜像的命令,我的是:
docker pull nvidia/cuda:12.4.1-runtime-ubuntu20.04
- 拉取&安装完成后,使用docker images查看镜像,可以看到已经安装好了
(base) xx@xxxxx:~/Downloads$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nvidia/cuda 12.4.1-cudnn-devel-ubuntu20.04 ef5d9d001373 2 days ago 8.28GB
这样就安装好了cuda和cudnn,接下来就可以在docker中使用cuda了。
查看显卡信息
docker run --runtime=nvidia --rm <自己的nvidia/cuda对应的IMAGE ID> nvidia-smi
比如我的IMAGE ID是ef5d9d001373,所以查看显卡的命令如下(和nvidia-smi命令的功能是一样的):
docker run --runtime=nvidia --rm ef5d9d001373 nvidia-smi
显示结果如下,则表示安装成功了:
==========
== CUDA ==
==========
CUDA Version 12.4.1
Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.
Thu Apr 25 05:37:47 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 On | Off |
| 0% 48C P8 24W / 450W | 908MiB / 24564MiB | 3% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
+-----------------------------------------------------------------------------------------+