Ответ
Да, я настраивал доступ к GPU NVIDIA внутри Docker-контейнеров для задач машинного обучения и высокопроизводительных вычислений. Основной подход — использование флага --gpus в Docker CLI (начиная с версии 19.03) или раннее решение nvidia-docker2.
Пример запуска контейнера с доступом ко всем GPU:
docker run --gpus all -it nvidia/cuda:11.8.0-base nvidia-smi
Ключевые моменты из моего опыта:
- Требования к хосту: На хосте должны быть установлены драйверы NVIDIA и
nvidia-container-toolkit. - Проверка: Внутри контейнера команда
nvidia-smiдолжна показывать те же GPU, что и на хосте. - Оркестрация: В Kubernetes для этого используется DaemonSet
nvidia-device-plugin, который делает GPU доступными как расширенный ресурс (nvidia.com/gpu) для пода. - Ограничения: Можно указывать конкретные GPU или лимиты на память, например
--gpus '"device=0,1"'или--gpus all --gpus '"capabilities=utility,compute"'.
Это критически важно для изоляции и воспроизводимости ML-пайплайнов.