fix(photo-ai): GPU выдаётся ключом gpus: all вместо CDI-спеки
CDI-спека /etc/cdi/nvidia.yaml запекает нумерацию /dev/dri/card* на момент генерации, поэтому после переподключения видеокарты или смены порта контейнер не стартует с "CDI device injection failed". Ключ gpus: all от этого свободен: Docker сам подставляет драйвер NVIDIA, правка /etc/docker/daemon.json и перезапуск демона не нужны.
This commit is contained in:
+13
-13
@@ -2,11 +2,18 @@
|
||||
# Использование:
|
||||
# docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build photo-ai
|
||||
#
|
||||
# Требуется драйвер NVIDIA и NVIDIA Container Toolkit. GPU выдаётся контейнеру через CDI
|
||||
# (device_ids ниже соответствует спеку /etc/cdi/nvidia.yaml): этот путь не требует правки
|
||||
# /etc/docker/daemon.json и перезапуска демона. Если nvidia-runtime зарегистрирован в демоне
|
||||
# (nvidia-ctk runtime configure --runtime=docker), вместо CDI можно вернуть классический вид
|
||||
# резервирования: driver: nvidia, count: 1 — результат тот же.
|
||||
# Требуется драйвер NVIDIA и NVIDIA Container Toolkit. GPU выдаётся контейнеру ключом
|
||||
# `gpus: all`: Docker сам подставляет драйвер NVIDIA, правка /etc/docker/daemon.json и
|
||||
# перезапуск демона не нужны.
|
||||
# Схема через CDI (deploy.resources.reservations.devices -> nvidia.com/gpu=all) здесь
|
||||
# НЕ используется намеренно: спека /etc/cdi/nvidia.yaml запекает нумерацию /dev/dri/card*
|
||||
# на момент генерации, поэтому после переподключения видеокарты или смены порта
|
||||
# она начинает ссылаться на несуществующий узел и контейнер не стартует
|
||||
# ("CDI device injection failed: failed to stat CDI host device /dev/dri/cardN").
|
||||
# Перегенерация спеки требует sudo и теряется при каждой перегенерации;
|
||||
# `gpus: all` от этого свободен. Если nvidia-runtime зарегистрирован в демоне
|
||||
# (nvidia-ctk runtime configure --runtime=docker), можно вместо этого указать
|
||||
# deploy.resources.reservations.devices с driver: nvidia, count: 1 — результат тот же.
|
||||
# TORCH_VARIANT=cu126, а не cu124: в индексе cu124 последний torch — 2.6.0, а cu126 даёт ровно
|
||||
# те же torch 2.14.0 / torchvision 0.29.0, что и CPU-образ, поэтому варианты сборки отличаются
|
||||
# только CUDA-библиотеками.
|
||||
@@ -22,11 +29,4 @@ services:
|
||||
TORCH_VARIANT: cu126
|
||||
environment:
|
||||
PHOTO_AI_DEVICE: ${PHOTO_AI_DEVICE:-cuda}
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: cdi
|
||||
device_ids:
|
||||
- nvidia.com/gpu=all
|
||||
capabilities: [gpu]
|
||||
gpus: all
|
||||
|
||||
Reference in New Issue
Block a user