Infrastructure

NVIDIA Container Toolkit

Пакет, предоставляющий GPU-доступ контейнерам Docker и Kubernetes.

Что такое NVIDIA Container Toolkit

NVIDIA Container Toolkit (ранее nvidia-docker2) — пакет, интегрирующий NVIDIA GPU в контейнерную среду. Без него флаг --gpus all в Docker работать не будет.

Toolkit внедряет NVIDIA runtime в Docker: при запуске GPU-контейнера он автоматически монтирует драйверы с хоста в контейнер и настраивает доступ к GPU-устройствам. Это означает, что внутри контейнера видны те же GPU, что и на хосте.

Установка (Ubuntu/Debian)

# Добавить репозиторий NVIDIA
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update && sudo apt install nvidia-container-toolkit

# Настроить Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Проверка

# Убедиться, что GPU виден внутри контейнера
docker run --rm --gpus all nvidia/cuda:12.3.1-base-ubuntu22.04 nvidia-smi

На облачных GPU-инстансах

На инстансах CloudCompute.ru NVIDIA Container Toolkit предустановлен. Команды --gpus all работают сразу.

Связанные термины

  • Docker — платформа, интегрируемая с Toolkit
  • CUDA — стек, монтируемый Toolkit в контейнер
  • GPU passthrough — нижний уровень, обеспечивающий доступ GPU к ВМ
  • container — контейнер с GPU-доступом

Готовы запустить GPU-задачу?

Запустить GPU-сервер