MLOps и инструменты
21 просмотр
NVIDIA Container Toolkit
NVIDIA Container Toolkit
NVIDIA Container Toolkit — набор утилит для использования GPU внутри Docker-контейнеров. Пробрасывает драйверы и устройства NVIDIA в контейнер, позволяя запускать CUDA-приложения без установки драйверов в образ.
Что такое NVIDIA Container Toolkit
NVIDIA Container Toolkit (ранее nvidia-docker) — программный стек, позволяющий Docker-контейнерам использовать GPU хоста. Автоматически пробрасывает:
- Драйверы NVIDIA
- Библиотеки CUDA
- Устройства /dev/nvidia*
Архитектура
Container
├── ML Framework (PyTorch, TensorFlow)
├── CUDA Toolkit
└── libnvidia-container (runtime hook)
↓
Host
├── NVIDIA Driver
└── GPU Hardware
Установка
# Ubuntu/Debian
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Использование
# Запуск с GPU
docker run --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
# Конкретные GPU
docker run --gpus '"device=0,1"' my-ml-image python train.py
# Docker Compose
services:
ml-worker:
image: pytorch/pytorch:2.5.0-cuda12.4-cudnn9-runtime
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Базовые образы
| Образ | Размер | Содержит |
|---|---|---|
| nvidia/cuda:*-base | ~120 MB | Только runtime |
| nvidia/cuda:*-runtime | ~1.5 GB | + CUDA libraries |
| nvidia/cuda:*-devel | ~3.5 GB | + компиляторы, headers |
| pytorch/pytorch:* | ~6 GB | + PyTorch |
| nvcr.io/nvidia/pytorch:* | ~15 GB | + полный ML-стек |
Для инференса используйте -runtime, для сборки — -devel.
Связанные термины
Требует