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 cuenta con 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. Para una comparación más amplia entre Docker Model Runner y Ollama, vLLM, LocalAI y proveedores en la nube—incluyendo consideraciones de costo e infraestructura—ve Alojamiento de LLM: Comparación entre infraestructura local, autogestionada y en la nube.
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 (puede reinstalarse 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 entorno de ejecución de NVIDIA
Docker Model Runner requiere que el entorno de ejecución de NVIDIA se establezca como el entorno de ejecución predeterminado en la configuración del demonio de Docker.
Encontrar la ruta del entorno de ejecución de NVIDIA Container
Primero, localiza donde se instaló nvidia-container-runtime:
which nvidia-container-runtime
Normalmente, esto devuelve /usr/bin/nvidia-container-runtime. Toma nota de esta ruta para el siguiente paso.
Configurar el demonio de Docker
Crea o actualiza /etc/docker/daemon.json para establecer NVIDIA como el entorno de ejecución 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 entorno de ejecución 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 de CPU - Configura el contenedor del runner para usar el entorno de ejecución 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 propio contenedor del runner debe ser la versión habilitada para CUDA.
Backends de GPU disponibles
Docker Model Runner admite múltiples 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 --gpu cuda explícitamente.
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 la 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- buffer 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 en 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á usando CPU:
-
Verificar la configuración del demonio de Docker:
docker info | grep -i runtimeDebería mostrar
Default Runtime: nvidia -
Verificar el entorno de ejecución 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 Toolkit de Contenedores de NVIDIA 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 porcentaje alto 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 una 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 avanzadas de monitoreo, 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 el tamaño de modelo adecuado: 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.
Una vez que se habilite el soporte de GPU, Docker Model Runner es una de varias formas de ejecutar LLMs localmente. Para ver cómo se ajusta con Ollama, vLLM, APIs en la nube y otras opciones, consulta nuestra guía sobre Alojamiento de LLM: Comparación entre infraestructura local, autogestionada y en la nube.
Enlaces útiles
- Guía de atajos de Docker Model Runner
- Documentación oficial de Docker Model Runner
- Guía de instalación del Toolkit de Contenedores de NVIDIA
- Comparación entre Docker Model Runner y Ollama
- 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