Nvidia-Container-Toolkit

英伟达文档

NVIDIA Container Toolkit

NVIDIA Container Toolkit 是一套工具和库,简化在容器环境中使用 NVIDIA GPU 的过程。它允许用户在 Docker 或其他容器平台上运行 GPU 加速的应用程序,而无需手动配置复杂的驱动和环境。以下是其主要特点和功能:

安装

在安装NVIDIA Container Toolkit之前需要先安装NVIDIA GPU 驱动程序

1
2
3
4
5
6
# 配置yum源
sudo curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
# (可选)将存储库配置为使用实验性软件包
sudo yum-config-manager --enable nvidia-container-toolkit-experimental
# 安装 NVIDIA Container Toolkit 软件包
sudo yum install -y nvidia-container-toolkit

安装时可能会报OpenSSL错误,可以尝试在NVIDIA github下载安装包进行安装

配置

确保安装了容器引擎(Docker、Containerd、CRI-O、Podman),以及nvidia-container-toolkit

docker配置

1
2
3
4
# 配置容器运行时
sudo nvidia-ctk runtime configure --runtime=docker
# 重新启动 Docker
systemctl restart docker

当docker为无根模式(一种允许非特权用户(即普通用户,无需 root 权限)运行 Docker 容器的方式),使用以下配置方式

1
2
3
4
5
6
# 配置容器运行时
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
# 重启无根 Docker
systemctl --user restart docker
# 使用以下命令进行配置:/etc/nvidia-container-runtime/config.toml sudo nvidia-ctk
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place

containerd(适用于 Kubernetes)

1
2
3
4
5
6
# 配置 containerd
# 该命令将修改主机上的文件。该文件将更新,以便 containerd 可以使用 NVIDIA Container Runtime
sudo nvidia-ctk /etc/containerd/config.toml
sudo nvidia-ctk runtime configure --runtime=containerd
# 重新启动 containerd
sudo systemctl restart containerd

配置 containerd(用于 nerdctl)无需额外配置,在传统的 Docker 环境中,需要配置 Docker 使用 nvidia-container-runtime。但对于 containerd 和 nerdctl,无需额外配置,因为 nerdctl 可以直接调用 nvidia-container-toolkit 来启用 GPU 支持。

运行示例

1
2
3
4
5
6

# 使用所有GPU
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
# 使用特定的0,1 gpu
sudo docker run --rm --runtime=nvidia --gpus '"device=0,1"' ubuntu nvidia-smi
sudo docker run --rm --runtime=nvidia --gpus 2 ubuntu nvidia-smi

可以输出nvidia-smi结果证明安装完成