Lägg till stöd för NVIDIA GPU i Docker Model Runner
Aktivera GPU-beskleuning för Docker Model Runner med stöd för NVIDIA CUDA
Docker Model Runner är Docks officiella verktyg för att köra AI-modeller lokalt, men aktivering av NVidia GPU-accelerering i Docker Model Runner kräver specifik konfiguration.
Till skillnad från standard docker run-kommandon stöder docker model run inte --gpus eller -e-flaggor, så GPU-stöd måste konfigureras på Docker-daemon-nivå och under runner-installationen.
Om du letar efter ett alternativt LLM-värdningslösning med enklare GPU-konfiguration, överväg Ollama, som har inbyggt GPU-stöd och enklare uppsättning. Dock erbjuder Docker Model Runner bättre integration med Docks ekosystem och OCI-artefaktfördelning.
Det här trevliga bilden är genererad av AI-modell Flux 1 dev.
Förutsättningar
Innan du konfigurerar GPU-stöd, se till att du har:
- NVIDIA GPU med kompatibla drivrutiner installerade. För hjälp med att välja rätt GPU för AI-arbetsbelastningar, se vår guide om Jämföra NVidia GPU-specifikationer lämplighet för AI.
- NVIDIA Container Toolkit installerat (se NVIDIA RTX-stöd avsnitt)
- Docker Model Runner installerat (kan installeras om med GPU-stöd)
Verifiera att din GPU är tillgänglig:
nvidia-smi
Testa Docker GPU-åtkomst:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
För fler Docker-kommandon och konfigureringsalternativ, se vår Docker Cheatsheet.
Steg 1: Konfigurera Docker Daemon för NVIDIA Runtime
Docker Model Runner kräver att NVIDIA-runtime är inställt som standardruntime i Docker-daemon-konfigurationen.
Hitta NVIDIA Container Runtime Sökväg
Först, lokalisera var nvidia-container-runtime är installerad:
which nvidia-container-runtime
Detta ger vanligtvis /usr/bin/nvidia-container-runtime. Anteckna denna sökväg för nästa steg.
Konfigurera Docker Daemon
Skapa eller uppdatera /etc/docker/daemon.json för att ställa in NVIDIA som standardruntime:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Viktigt: Om which nvidia-container-runtime returnerade en annan sökväg, uppdatera värdet "path" i JSON-konfigurationen därefter.
Starta om Docker-tjänsten
Tillämpa konfigurationen genom att starta om Docker:
sudo systemctl restart docker
Verifiera Konfiguration
Bekräfta att NVIDIA-runtime är konfigurerad:
docker info | grep -i runtime
Du bör se Default Runtime: nvidia i utdata.
Steg 2: Installera Docker Model Runner med GPU-stöd
Docker Model Runner måste installeras eller installeras om med explicit GPU-stöd. Runner-containern själv måste vara CUDA-aktiverad versionen.
Stanna nuvarande runner (om den körs)
Om Docker Model Runner redan är installerad, stanna den först:
docker model stop-runner
Installera/Installera om med CUDA-stöd
Installera eller installera om Docker Model Runner med CUDA GPU-stöd:
docker model reinstall-runner --gpu cuda
Det här kommandot:
- Hämtar CUDA-aktiverad versionen (
docker/model-runner:latest-cuda) istället för CPU-endast versionen - Konfigurerar runner-containern för att använda NVIDIA-runtime
- Aktiverar GPU-accelerering för alla modeller
Anteckning: Om du redan har installerat Docker Model Runner utan GPU-stöd, måste du installera om det med --gpu cuda-flaggan. Att bara konfigurera Docker-daemon räcker inte—runner-containern själv måste vara CUDA-aktiverad versionen.
Tillgängliga GPU-backends
Docker Model Runner stöder flera GPU-backends:
cuda- NVIDIA CUDA (vanligast för NVIDIA GPU:er)rocm- AMD ROCm (för AMD GPU:er)musa- Moore Threads MUSAcann- Huawei CANNauto- Automatisk detektering (standard, kan inte fungera korrekt)none- CPU-endast
För NVIDIA GPU:er, använd alltid --gpu cuda explicit.
Steg 3: Verifiera GPU-åtkomst
Efter installation, verifiera att Docker Model Runner kan komma åt din GPU.
Kontrollera runner container GPU-åtkomst
Testa GPU-åtkomst från inom Docker Model Runner-containern:
docker exec docker-model-runner nvidia-smi
Detta bör visa din GPU-information, vilket bekräftar att containern har GPU-åtkomst.
Kontrollera runner status
Verifiera att Docker Model Runner körs:
docker model status
Du bör se att runnern är aktiv med llama.cpp-stöd.
Steg 4: Testa modell med GPU
Kör en modell och verifiera att den använder GPU:n.
Kör en modell
Starta modellinferens:
docker model run ai/qwen3:14B-Q6_K "vem är du?"
Verifiera GPU-användning i loggar
Kontrollera Docker Model Runner-loggarna för GPU-bekräftelse:
docker model logs | grep -i cuda
Du bör se meddelanden som indikerar GPU-användning:
using device CUDA0 (NVIDIA GeForce RTX 4080)- GPU-enhet detekteradoffloaded 41/41 layers to GPU- Modellager laddade på GPUCUDA0 model buffer size = 10946.13 MiB- GPU-minnesallokeringCUDA0 KV buffer size = 640.00 MiB- Nyckelvärdescache på GPUCUDA0 compute buffer size = 306.75 MiB- Beräkningsbuffer på GPU
Övervaka GPU-användning
I ett annat terminalfönster, övervaka GPU-användning i realtid:
nvidia-smi -l 1
Du bör se att GPU-minnesanvändning och utnyttjande ökar när modellen körs.
För mer avancerade GPU-övervakningsalternativ och verktyg, se vår guide om GPU-övervakningsprogram i Linux / Ubuntu.
Felsökning
Modell använder fortfarande CPU
Om modellen fortfarande körs på CPU:
-
Verifiera Docker daemon-konfiguration:
docker info | grep -i runtimeBör visa
Default Runtime: nvidia -
Kontrollera runner container runtime:
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Bör visa
"Runtime": "nvidia" -
Installera om runner med GPU-stöd:
docker model reinstall-runner --gpu cuda -
Kontrollera loggar för fel:
docker model logs | tail -50
GPU detekteras inte
Om GPU inte detekteras:
-
Verifiera att NVIDIA Container Toolkit är installerat:
dpkg -l | grep nvidia-container-toolkit -
Testa GPU-åtkomst med standard Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiFör felsökning av Docker-problem, hänvisa till vår Docker Cheatsheet.
-
Kontrollera NVIDIA-drivrutiner:
nvidia-smi
Prestandaproblem
Om GPU-prestanda är dålig:
-
Kontrollera GPU-utnyttjande:
nvidia-smiLeta efter hög GPU-utnyttjandeprocent
-
Verifiera att modellager är på GPU:
docker model logs | grep "offloaded.*layers to GPU"Alla lager bör vara överförda till GPU
-
Kontrollera för minnesproblem:
nvidia-smiSe till att GPU-minnet inte är uttömt
Bästa praxis
-
Ange alltid GPU-backend explicit: Använd
--gpu cudaistället för--gpu autoför NVIDIA GPU:er för att säkerställa korrekt konfiguration. -
Verifiera konfiguration efter ändringar: Kontrollera alltid
docker info | grep -i runtimeefter att ha ändrat Docker-daemon-inställningar. -
Övervaka GPU-användning: Använd
nvidia-smiför att övervaka GPU-minne och utnyttjande under modellinferens. För mer avancerade övervakningsverktyg, se vår guide om GPU-övervakningsprogram i Linux / Ubuntu. -
Kontrollera loggar regelbundet: Granska
docker model logsför att säkerställa att modellerna använder GPU-accelerering. -
Använd lämpliga modellstorlekar: Se till att din GPU har tillräckligt med minne för modellen. Använd kvantiserade modeller (Q4, Q5, Q6, Q8) för bättre GPU-minneseffektivitet. För hjälp med att välja rätt GPU för dina AI-arbetsbelastningar, se vår guide om Jämföra NVidia GPU-specifikationer lämplighet för AI.
Användbara länkar
- Docker Model Runner Cheatsheet
- Docker Model Runner Officiell dokumentation
- NVIDIA Container Toolkit Installationsguide
- Docker Model Runner vs Ollama Jämförelse
- Ollama Cheatsheet - Alternativ LLM-värdningslösning med inbyggt GPU-stöd
- Docker Cheatsheet - Komplett referens för Docker-kommandon och konfiguration
- GPU-övervakningsprogram i Linux / Ubuntu - Lista och jämförelse av NVIDIA GPU-övervakningsverktyg
- Jämföra NVidia GPU-specifikationer lämplighet för AI - Guide till att välja rätt GPU för AI-arbetsbelastningar