Please enable Javascript to view the contents

常用 AI 基础镜像及启动命令

 ·  ☕ 2 分钟

1. 镜像 Tag 标识的含义

  • base/cuda: 包括 CUDA 运行时

  • runtime: 在 base 的基础上,新增了 CUDA math 库和 NCCL、cuDNN 运行时

  • devel: 在 runtime 的基础上,新增了头文件和用于构建 CUDA 镜像的开发工具,对于多阶段构建特别有用

  • cuddn: 在上面基础上,新增了 cuDNN 神经网络加速库

  • py3: Python 3 环境

2. CUDA 镜像

镜像AMD64 镜像大小ARM64 镜像大小
nvidia/cuda:12.3.2-base-ubuntu22.0487.01 MB30.82 MB
nvidia/cuda:12.3.2-runtime-ubuntu22.041.28 GB1.23 GB
nvidia/cuda:12.3.2-devel-ubuntu22.043.68 GB3.14 GB
nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.041.91 GB1.86 GB
nvidia/cuda:12.3.2-cudnn9-devel-ubuntu22.044.31 GB3.77 GB
nvidia/cuda:12.3.2-base-ubuntu20.0488.25 MB32.56 MB
nvidia/cuda:12.3.2-runtime-ubuntu20.041.28 GB1.23 GB
nvidia/cuda:12.3.2-devel-ubuntu20.043.66 GB3.12 GB
nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu20.041.91 GB1.86 GB
nvidia/cuda:12.3.2-cudnn9-devel-ubuntu20.044.29 GB3.75 GB

3. Pytorch 镜像

Pytorch 官方提供的 Pytorch 镜像。

镜像AMD64 镜像大小
pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime3.44 GB
pytorch/pytorch:2.2.2-cuda12.1-cudnn8-devel8.47 GB

4. NVIDIA Pytorch 镜像

Nvidia 打包的 Pytorch 镜像,包含 cuda、cuBlas、cuDNN、OpenMPI、TensorRT 等包。

镜像pytorch 版本OScuda驱动要求AMD64 镜像大小相关链接
hubimage/nvidia-pytorch:24.03-py32.3.0Ubuntu 22.0412.4545+8.59 GBhttps://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-24-03.html
hubimage/nvidia-pytorch:23.10-py32.1.0Ubuntu 22.0412.2535+9.87 GBhttps://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-23-10.html

5. 运行镜像

  • 挂载全部 GPU 卡
1
2
3
docker run --gpus all \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 指定 GPU 数量
1
2
3
docker run --gpus 3 \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 挂载指定 GPU 卡
1
2
3
docker run --gpus '"device=0,1"' \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash

除了使用 GPU 的编号,还可以使用 UUID。UUID 可以通过 nvidia-smi -L 查询。

  • 设置共享内存 shm
1
2
3
4
docker run --gpus all \
           --shm-size=64g \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 设置系统资源限制
1
2
3
4
docker run --gpus all \
           --ulimit memlock=-1 --ulimit stack=67108864 \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 使用 Host IPC
1
2
3
4
docker run --gpus all \
           --ipc=host \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 挂载当前目录到容器的 /workspace
1
2
3
4
docker run --gpus all \
           -v "$PWD":/workspace \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 设置 CPU、Memory 限制
1
2
3
4
docker run --gpus all \
           --cpus=2 --memory=4g \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash
  • 以特权模式运行
1
2
3
4
docker run --gpus all \
           --privileged \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash

值得注意的是,Docker 特权模式启动的容器,能使用所有 GPU 资源,导致 --gpus 指定的设备列表无效。

  • 最大化资源启动
1
2
3
4
5
6
7
docker run --gpus all \
           --ulimit memlock=-1 --ulimit stack=67108864 \
           -v "$PWD":/workspace \
           --privileged \
           --shm-size=64g \
           -it --rm \
           pytorch/pytorch:2.2.2-cuda12.1-cudnn8-runtime bash

微信公众号
作者
微信公众号