Añadir soporte para GPU de NVIDIA al ejecutor de modelos de Docker
Habilite la aceleración de GPU para Docker Model Runner con soporte de NVIDIA CUDA
Docker Model Runner es la herramienta oficial de Docker para ejecutar modelos de IA localmente, pero habilitar la aceleración de GPU de NVidia en Docker Model Runner requiere una configuración específica.
A diferencia de los comandos estándar docker run, docker model run no admite las banderas --gpus o -e, por lo que el soporte de GPU debe configurarse a nivel del demonio de Docker y durante la instalación del runner.
Si estás buscando una solución alternativa de alojamiento de LLM con una configuración de GPU más sencilla, considera Ollama, que tiene soporte integrado de GPU y una instalación más sencilla. Sin embargo, Docker Model Runner ofrece una mejor integración con el ecosistema de Docker y la distribución de artefactos OCI.
Esta imagen agradable fue generada por modelo AI Flux 1 dev.
Requisitos previos
Antes de configurar el soporte de GPU, asegúrate de tener:
- GPU de NVIDIA con controladores compatibles instalados. Para ayuda al elegir la GPU adecuada para cargas de trabajo de IA, consulta nuestra guía sobre Comparación de especificaciones de GPU de NVidia para IA.
- NVIDIA Container Toolkit instalado (ver sección de soporte de NVIDIA RTX)
- Docker Model Runner instalado (se puede reinstalar con soporte de GPU)
Verifica que tu GPU esté accesible:
nvidia-smi
Prueba el acceso a GPU de Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Para más comandos de Docker y opciones de configuración, consulta nuestra Guía de atajos de Docker.
Paso 1: Configurar el demonio de Docker para el runtime de NVIDIA
Docker Model Runner requiere que el runtime de NVIDIA se establezca como el runtime predeterminado en la configuración del demonio de Docker.
Encontrar la ruta del runtime de NVIDIA Container
Primero, localiza donde se instaló nvidia-container-runtime:
which nvidia-container-runtime
Esto normalmente devuelve /usr/bin/nvidia-container-runtime. Anota esta ruta para el siguiente paso.
Configurar el demonio de Docker
Crea o actualiza /etc/docker/daemon.json para establecer NVIDIA como el runtime predeterminado:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Importante: Si which nvidia-container-runtime devolvió una ruta diferente, actualiza el valor de "path" en la configuración JSON en consecuencia.
Reiniciar el servicio de Docker
Aplica la configuración reiniciando Docker:
sudo systemctl restart docker
Verificar la configuración
Confirma que el runtime de NVIDIA esté configurado:
docker info | grep -i runtime
Deberías ver Default Runtime: nvidia en la salida.
Paso 2: Instalar Docker Model Runner con soporte de GPU
Docker Model Runner debe instalarse o reinstalarse con soporte de GPU explícito. El contenedor del runner en sí mismo debe ser la versión habilitada para CUDA.
Detener el runner actual (si está en ejecución)
Si Docker Model Runner ya está instalado, deténlo primero:
docker model stop-runner
Instalar/Reinstalar con soporte de CUDA
Instala o reinstala Docker Model Runner con soporte de GPU de CUDA:
docker model reinstall-runner --gpu cuda
Este comando:
- Descarga la versión habilitada para CUDA (
docker/model-runner:latest-cuda) en lugar de la versión solo para CPU - Configura el contenedor del runner para usar el runtime de NVIDIA
- Habilita la aceleración de GPU para todos los modelos
Nota: Si ya has instalado Docker Model Runner sin soporte de GPU, debes reinstalarlo con la bandera --gpu cuda. Solo configurar el demonio de Docker no es suficiente — el contenedor del runner en sí mismo debe ser la versión habilitada para CUDA.
Backends de GPU disponibles
Docker Model Runner admite varios backends de GPU:
cuda- NVIDIA CUDA (más común para GPUs de NVIDIA)rocm- AMD ROCm (para GPUs de AMD)musa- Moore Threads MUSAcann- Huawei CANNauto- Detección automática (predeterminado, puede no funcionar correctamente)none- Solo CPU
Para GPUs de NVIDIA, siempre usa explícitamente --gpu cuda.
Paso 3: Verificar el acceso a GPU
Después de la instalación, verifica que Docker Model Runner pueda acceder a tu GPU.
Verificar el acceso a GPU desde el contenedor del runner
Prueba el acceso a GPU desde dentro del contenedor de Docker Model Runner:
docker exec docker-model-runner nvidia-smi
Esto debería mostrar información de tu GPU, confirmando que el contenedor tiene acceso a GPU.
Verificar el estado del runner
Verifica que Docker Model Runner esté en ejecución:
docker model status
Deberías ver que el runner está activo con soporte de llama.cpp.
Paso 4: Probar un modelo con GPU
Ejecuta un modelo y verifica que esté usando la GPU.
Ejecutar un modelo
Inicia una inferencia de modelo:
docker model run ai/qwen3:14B-Q6_K "¿quién eres?"
Verificar el uso de GPU en los registros
Verifica los registros de Docker Model Runner para confirmar el uso de GPU:
docker model logs | grep -i cuda
Deberías ver mensajes indicando el uso de GPU:
using device CUDA0 (NVIDIA GeForce RTX 4080)- dispositivo de GPU detectadooffloaded 41/41 layers to GPU- capas del modelo cargadas en GPUCUDA0 model buffer size = 10946.13 MiB- asignación de memoria en GPUCUDA0 KV buffer size = 640.00 MiB- caché de clave-valor en GPUCUDA0 compute buffer size = 306.75 MiB- búfer de cálculo en GPU
Monitorear el uso de GPU
En otro terminal, monitorea el uso de GPU en tiempo real:
nvidia-smi -l 1
Deberías ver un aumento en el uso de memoria y la utilización de GPU cuando el modelo esté en ejecución.
Para más opciones avanzadas de monitoreo de GPU y herramientas, consulta nuestra guía sobre aplicaciones de monitoreo de GPU en Linux / Ubuntu.
Solución de problemas
El modelo aún está usando CPU
Si el modelo aún está ejecutándose en CPU:
-
Verificar la configuración del demonio de Docker:
docker info | grep -i runtimeDebería mostrar
Default Runtime: nvidia -
Verificar el runtime del contenedor del runner:
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Debería mostrar
"Runtime": "nvidia" -
Reinstalar el runner con soporte de GPU:
docker model reinstall-runner --gpu cuda -
Verificar los registros para errores:
docker model logs | tail -50
GPU no detectada
Si la GPU no se detecta:
-
Verificar que el NVIDIA Container Toolkit esté instalado:
dpkg -l | grep nvidia-container-toolkit -
Probar el acceso a GPU con Docker estándar:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiPara solucionar problemas con Docker, consulta nuestra Guía de atajos de Docker.
-
Verificar los controladores de NVIDIA:
nvidia-smi
Problemas de rendimiento
Si el rendimiento de la GPU es pobre:
-
Verificar la utilización de GPU:
nvidia-smiBusca un alto porcentaje de utilización de GPU
-
Verificar que las capas del modelo estén en GPU:
docker model logs | grep "offloaded.*layers to GPU"Todas las capas deben transferirse a GPU
-
Verificar problemas de memoria:
nvidia-smiAsegúrate de que la memoria de GPU no esté agotada
Buenas prácticas
-
Siempre especifique explícitamente el backend de GPU: Use
--gpu cudaen lugar de--gpu autopara GPUs de NVIDIA para asegurar la configuración correcta. -
Verificar la configuración después de los cambios: Siempre revise
docker info | grep -i runtimedespués de modificar la configuración del demonio de Docker. -
Monitorear el uso de GPU: Use
nvidia-smipara monitorear la memoria y la utilización de GPU durante la inferencia del modelo. Para herramientas de monitoreo avanzadas, consulte nuestra guía sobre aplicaciones de monitoreo de GPU en Linux / Ubuntu. -
Revisar los registros regularmente: Revisa
docker model logspara asegurarte de que los modelos estén usando la aceleración de GPU. -
Usar tamaños de modelos adecuados: Asegúrate de que tu GPU tenga suficiente memoria para el modelo. Usa modelos cuantizados (Q4, Q5, Q6, Q8) para una mayor eficiencia de memoria en GPU. Para ayuda al elegir la GPU adecuada para tus cargas de trabajo de IA, consulta nuestra guía sobre Comparación de especificaciones de GPU de NVidia para IA.
Enlaces útiles
- Guía de atajos de Docker Model Runner
- Documentación oficial de Docker Model Runner
- Guía de instalación del NVIDIA Container Toolkit
- Comparación entre Docker Model Runner y Ollama
- Guía de atajos de Ollama - solución alternativa de alojamiento de LLM con soporte integrado de GPU
- Guía de atajos de Docker - referencia completa de comandos y configuración de Docker
- Aplicaciones de monitoreo de GPU en Linux / Ubuntu - lista y comparación de herramientas de monitoreo de GPU de NVIDIA
- Comparación de especificaciones de GPU de NVidia para IA - guía para elegir la GPU adecuada para cargas de trabajo de IA