Adicionando suporte a GPU da NVIDIA ao Docker Model Runner
Habilite a aceleração da GPU para o Docker Model Runner com suporte à NVIDIA CUDA
Docker Model Runner é a ferramenta oficial do Docker para executar modelos de IA localmente, mas habilitar a aceleração da GPU da NVidia no Docker Model Runner requer uma configuração específica.
Ao contrário dos comandos padrão docker run, o docker model run não suporta as bandeiras --gpus ou -e, portanto, o suporte à GPU deve ser configurado no nível do daemon do Docker e durante a instalação do runner.
Se você estiver procurando uma solução alternativa de hospedagem de LLM com configuração de GPU mais simples, considere Ollama, que possui suporte integrado à GPU e instalação mais simples. No entanto, o Docker Model Runner oferece melhor integração com o ecossistema do Docker e a distribuição de artefatos OCI.
Esta imagem agradável foi gerada pelo modelo AI Flux 1 dev.
Pré-requisitos
Antes de configurar o suporte à GPU, certifique-se de ter:
- GPU da NVIDIA com drivers compatíveis instalados. Para ajuda na escolha da GPU certa para cargas de trabalho de IA, veja nosso guia sobre Comparação das especificações da GPU da NVidia para IA.
- NVIDIA Container Toolkit instalado (veja a seção sobre suporte NVIDIA RTX)
- Docker Model Runner instalado (pode ser reinstalado com suporte à GPU)
Verifique se sua GPU está acessível:
nvidia-smi
Teste o acesso à GPU do Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Para mais comandos do Docker e opções de configuração, veja nossa Docker Cheatsheet.
Etapa 1: Configurar o Daemon do Docker para o Runtime da NVIDIA
O Docker Model Runner requer que o runtime da NVIDIA seja definido como o runtime padrão na configuração do daemon do Docker.
Localizar o Caminho do Runtime da NVIDIA Container
Primeiro, localize onde o nvidia-container-runtime está instalado:
which nvidia-container-runtime
Isso normalmente retorna /usr/bin/nvidia-container-runtime. Anote esse caminho para a próxima etapa.
Configurar o Daemon do Docker
Crie ou atualize /etc/docker/daemon.json para definir a NVIDIA como o runtime padrão:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Importante: Se which nvidia-container-runtime retornou um caminho diferente, atualize o valor de "path" na configuração JSON conforme necessário.
Reiniciar o Serviço do Docker
Aplicar a configuração reiniciando o Docker:
sudo systemctl restart docker
Verificar a Configuração
Confirme que o runtime da NVIDIA está configurado:
docker info | grep -i runtime
Você deve ver Default Runtime: nvidia na saída.
Etapa 2: Instalar o Docker Model Runner com Suporte à GPU
O Docker Model Runner deve ser instalado ou reinstalado com suporte à GPU explícito. O próprio contêiner do runner precisa ser a versão habilitada para CUDA.
Parar o Runner Atual (se estiver em execução)
Se o Docker Model Runner já estiver instalado, pare-o primeiro:
docker model stop-runner
Instalar/Reinstalar com Suporte à CUDA
Instale ou reinstale o Docker Model Runner com suporte à GPU CUDA:
docker model reinstall-runner --gpu cuda
Este comando:
- Puxa a versão habilitada para CUDA (
docker/model-runner:latest-cuda) em vez da versão apenas para CPU - Configura o contêiner do runner para usar o runtime da NVIDIA
- Habilita a aceleração da GPU para todos os modelos
Nota: Se você já instalou o Docker Model Runner sem suporte à GPU, você deve reinstalá-lo com a bandeira --gpu cuda. Apenas configurar o daemon do Docker não é suficiente — o próprio contêiner do runner precisa ser a versão habilitada para CUDA.
Backends de GPU Disponíveis
O Docker Model Runner suporta múltiplos backends de GPU:
cuda- NVIDIA CUDA (mais comum para GPUs da NVIDIA)rocm- AMD ROCm (para GPUs da AMD)musa- Moore Threads MUSAcann- Huawei CANNauto- Detecção automática (padrão, pode não funcionar corretamente)none- Apenas CPU
Para GPUs da NVIDIA, sempre use --gpu cuda explicitamente.
Etapa 3: Verificar o Acesso à GPU
Após a instalação, verifique se o Docker Model Runner pode acessar sua GPU.
Verificar o Acesso à GPU no Contêiner do Runner
Teste o acesso à GPU dentro do contêiner do Docker Model Runner:
docker exec docker-model-runner nvidia-smi
Isso deve exibir as informações da sua GPU, confirmando que o contêiner tem acesso à GPU.
Verificar o Status do Runner
Verifique se o Docker Model Runner está em execução:
docker model status
Você deve ver o runner ativo com suporte a llama.cpp.
Etapa 4: Testar um Modelo com GPU
Execute um modelo e verifique se ele está usando a GPU.
Executar um Modelo
Iniciar uma inferência de modelo:
docker model run ai/qwen3:14B-Q6_K "quem é você?"
Verificar Uso da GPU nos Logs
Verifique os logs do Docker Model Runner para confirmação da GPU:
docker model logs | grep -i cuda
Você deve ver mensagens indicando o uso da GPU:
using device CUDA0 (NVIDIA GeForce RTX 4080)- dispositivo de GPU detectadooffloaded 41/41 layers to GPU- camadas do modelo carregadas na GPUCUDA0 model buffer size = 10946.13 MiB- alocação de memória na GPUCUDA0 KV buffer size = 640.00 MiB- cache de chave-valor na GPUCUDA0 compute buffer size = 306.75 MiB- buffer de computação na GPU
Monitorar o Uso da GPU
Em outro terminal, monitore o uso da GPU em tempo real:
nvidia-smi -l 1
Você deve ver o aumento do uso de memória e da utilização da GPU quando o modelo estiver em execução.
Para mais opções avançadas de monitoramento da GPU e ferramentas, veja nosso guia sobre aplicações de monitoramento da GPU no Linux / Ubuntu.
Solução de Problemas
Modelo Ainda Usando CPU
Se o modelo ainda estiver usando a CPU:
-
Verificar a configuração do daemon do Docker:
docker info | grep -i runtimeDeve mostrar
Default Runtime: nvidia -
Verificar o runtime do contêiner do runner:
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Deve mostrar
"Runtime": "nvidia" -
Reinstalar o runner com suporte à GPU:
docker model reinstall-runner --gpu cuda -
Verificar logs para erros:
docker model logs | tail -50
GPU Não Detectada
Se a GPU não for detectada:
-
Verificar se o NVIDIA Container Toolkit está instalado:
dpkg -l | grep nvidia-container-toolkit -
Testar o acesso à GPU com o Docker padrão:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiPara solucionar problemas com o Docker, consulte nossa Docker Cheatsheet.
-
Verificar os drivers da NVIDIA:
nvidia-smi
Problemas de Desempenho
Se o desempenho da GPU for ruim:
-
Verificar a utilização da GPU:
nvidia-smiProcure por uma porcentagem alta de utilização da GPU
-
Verificar se as camadas do modelo estão na GPU:
docker model logs | grep "offloaded.*layers to GPU"Todas as camadas devem ser transferidas para a GPU
-
Verificar por problemas de memória:
nvidia-smiCertifique-se de que a memória da GPU não esteja esgotada
Boas Práticas
-
Sempre especifique o backend da GPU explicitamente: Use
--gpu cudaem vez de--gpu autopara GPUs da NVIDIA para garantir a configuração correta. -
Verifique a configuração após alterações: Sempre verifique
docker info | grep -i runtimeapós modificar as configurações do daemon do Docker. -
Monitore o uso da GPU: Use
nvidia-smipara monitorar a memória e a utilização da GPU durante a inferência do modelo. Para ferramentas de monitoramento mais avançadas, veja nosso guia sobre aplicações de monitoramento da GPU no Linux / Ubuntu. -
Verifique os logs regularmente: Revise
docker model logspara garantir que os modelos estejam usando a aceleração da GPU. -
Use tamanhos de modelo apropriados: Certifique-se de que sua GPU tenha memória suficiente para o modelo. Use modelos quantizados (Q4, Q5, Q6, Q8) para melhor eficiência de memória da GPU. Para ajuda na escolha da GPU certa para suas cargas de trabalho de IA, veja nosso guia sobre comparação das especificações da GPU da NVidia para IA.
Links Úteis
- Docker Model Runner Cheatsheet
- Documentação Oficial do Docker Model Runner
- Guia de Instalação do NVIDIA Container Toolkit
- Comparação entre Docker Model Runner e Ollama
- Ollama Cheatsheet - Solução alternativa de hospedagem de LLM com suporte integrado à GPU
- Docker Cheatsheet - Referência completa para comandos e configuração do Docker
- Aplicações de monitoramento da GPU no Linux / Ubuntu - Lista e comparação de ferramentas de monitoramento da GPU da NVIDIA
- Comparação das especificações da GPU da NVidia para IA - Guia para escolher a GPU certa para cargas de trabalho de IA