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-сервер