Dodanie obsługi GPU firmy NVIDIA do Docker Model Runner
Włącz przyspieszenie GPU dla Docker Model Runner z obsługą NVIDIA CUDA
Docker Model Runner to narzędzie oficjalne Dockera do uruchamiania modeli AI lokalnie, ale włączanie przyspieszenia GPU od firmy NVidia w Docker Model Runner wymaga konkretnej konfiguracji.
Oprócz standardowych poleceń docker run, polecenie docker model run nie obsługuje flag --gpus ani -e, więc wsparcie dla GPU musi być skonfigurowane na poziomie demona Docker i podczas instalacji runnera.
Jeśli szukasz alternatywnego rozwiązania do hostowania LLM z łatwiejszą konfiguracją GPU, rozważ Ollama, które ma wbudowane wsparcie dla GPU i prostsze ustawienie. Jednak Docker Model Runner oferuje lepszą integrację z ekosystemem Docker i dystrybucją artefaktów OCI.
To piękne zdjęcie zostało wygenerowane przez model AI Flux 1 dev.
Wymagania wstępne
Przed skonfigurowaniem wsparcia dla GPU upewnij się, że masz:
- GPU od firmy NVIDIA z zainstalowanymi kompatybilnymi sterownikami. Dla pomocy w wyborze odpowiedniego GPU do obciążeń AI, zobacz nasz przewodnik po porównaniu specyfikacji GPU od firmy NVIDIA odpowiednich dla AI.
- NVIDIA Container Toolkit zainstalowany (zobacz sekcję wsparcia NVIDIA RTX)
- Docker Model Runner zainstalowany (można go ponownie zainstalować z wsparciem dla GPU)
Sprawdź, czy GPU jest dostępne:
nvidia-smi
Testuj dostęp do GPU w Dockerze:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Aby uzyskać więcej poleceń Docker i opcji konfiguracji, zobacz nasz Docker Cheatsheet.
Krok 1: Skonfiguruj demona Docker dla środowiska uruchomieniowego NVIDIA
Docker Model Runner wymaga, aby środowisko uruchomieniowe NVIDIA było ustawione jako domyślne w konfiguracji demona Docker.
Znajdź ścieżkę do środowiska uruchomieniowego NVIDIA Container Runtime
Najpierw znajdź, gdzie został zainstalowany nvidia-container-runtime:
which nvidia-container-runtime
Zwykle zwraca /usr/bin/nvidia-container-runtime. Zanotuj tę ścieżkę dla następnego kroku.
Skonfiguruj demona Docker
Utwórz lub zaktualizuj /etc/docker/daemon.json, aby ustawić NVIDIA jako domyślne środowisko uruchomieniowe:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Ważne: Jeśli which nvidia-container-runtime zwrócił inną ścieżkę, zaktualizuj wartość "path" w konfiguracji JSON odpowiednio.
Uruchom ponownie usługę Docker
Zastosuj konfigurację, uruchamiając ponownie usługę Docker:
sudo systemctl restart docker
Potwierdź konfigurację
Potwierdź, że środowisko uruchomieniowe NVIDIA zostało skonfigurowane:
docker info | grep -i runtime
W wyniku powinien zostać wyświetlony Default Runtime: nvidia.
Krok 2: Zainstaluj Docker Model Runner z wsparciem dla GPU
Docker Model Runner musi zostać zainstalowany lub ponownie zainstalowany z jawnym wsparciem dla GPU. Sam kontener runnera musi być wersją z włączonym CUDA.
Zatrzymaj bieżącego runnera (jeśli działa)
Jeśli Docker Model Runner jest już zainstalowany, zatrzymaj go najpierw:
docker model stop-runner
Zainstaluj/ponownie zainstaluj z wsparciem CUDA
Zainstaluj lub ponownie zainstaluj Docker Model Runner z wsparciem dla GPU CUDA:
docker model reinstall-runner --gpu cuda
To polecenie:
- Pobiera wersję z włączonym CUDA (
docker/model-runner:latest-cuda) zamiast wersji tylko dla CPU - Konfiguruje kontener runnera do użycia środowiska uruchomieniowego NVIDIA
- Włącza przyspieszenie GPU dla wszystkich modeli
Uwaga: Jeśli już zainstalowałeś Docker Model Runner bez wsparcia dla GPU, musisz go ponownie zainstalować z flagą --gpu cuda. Proste skonfigurowanie demona Docker nie wystarczy — sam kontener runnera musi być wersją z włączonym CUDA.
Dostępne backendy GPU
Docker Model Runner obsługuje wiele backendów GPU:
cuda- NVIDIA CUDA (najczęstszy dla GPU od firmy NVIDIA)rocm- AMD ROCm (dla GPU od firmy AMD)musa- Moore Threads MUSAcann- Huawei CANNauto- automatyczne wykrywanie (domyślne, może nie działać poprawnie)none- tylko CPU
Dla GPU od firmy NVIDIA zawsze używaj jawnej flagi --gpu cuda.
Krok 3: Potwierdź dostęp do GPU
Po zainstalowaniu, potwierdź, że Docker Model Runner może uzyskać dostęp do GPU.
Sprawdź dostęp do GPU w kontenerze runnera
Testuj dostęp do GPU z wnętrza kontenera Docker Model Runner:
docker exec docker-model-runner nvidia-smi
To powinno wyświetlić informacje o GPU, potwierdzając, że kontener ma dostęp do GPU.
Sprawdź status runnera
Potwierdź, że Docker Model Runner działa:
docker model status
Powinieneś zobaczyć, że runner jest aktywny z obsługą llama.cpp.
Krok 4: Testuj model z użyciem GPU
Uruchom model i potwierdź, że korzysta z GPU.
Uruchom model
Uruchom wnioskowanie modelu:
docker model run ai/qwen3:14B-Q6_K "who are you?"
Potwierdź użycie GPU w logach
Sprawdź logi Docker Model Runner na potwierdzenie użycia GPU:
docker model logs | grep -i cuda
Powinieneś zobaczyć komunikaty wskazujące na użycie GPU:
using device CUDA0 (NVIDIA GeForce RTX 4080)- wykryto urządzenie GPUoffloaded 41/41 layers to GPU- warstwy modelu zostały załadowane na GPUCUDA0 model buffer size = 10946.13 MiB- alokacja pamięci GPUCUDA0 KV buffer size = 640.00 MiB- pamięć cache na GPUCUDA0 compute buffer size = 306.75 MiB- bufor obliczeniowy na GPU
Monitoruj użycie GPU
W innym terminalu monitoruj użycie GPU w czasie rzeczywistym:
nvidia-smi -l 1
Powinieneś zobaczyć wzrost użycia pamięci i wykorzystania GPU, gdy model będzie działał.
Dla zaawansowanych opcji monitorowania GPU i narzędzi, zobacz nasz przewodnik po aplikacjach do monitorowania GPU w systemach Linux / Ubuntu.
Rozwiązywanie problemów
Model nadal korzysta z CPU
Jeśli model nadal działa na CPU:
-
Potwierdź konfigurację demona Docker:
docker info | grep -i runtimePowinno to pokazać
Default Runtime: nvidia -
Sprawdź środowisko uruchomieniowe kontenera runnera:
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Powinno to pokazać
"Runtime": "nvidia" -
Ponownie zainstaluj runnera z wsparciem dla GPU:
docker model reinstall-runner --gpu cuda -
Sprawdź logi na błędy:
docker model logs | tail -50
GPU nie zostało wykryte
Jeśli GPU nie zostało wykryte:
-
Potwierdź, że zainstalowano NVIDIA Container Toolkit:
dpkg -l | grep nvidia-container-toolkit -
Testuj dostęp do GPU za pomocą standardowego Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiDla rozwiązywania problemów z Dockerem, odnies się do naszego Docker Cheatsheet.
-
Sprawdź sterowniki NVIDIA:
nvidia-smi
Problemy z wydajnością
Jeśli wydajność GPU jest niska:
-
Sprawdź wykorzystanie GPU:
nvidia-smiSzukaj wysokiego procentu wykorzystania GPU
-
Potwierdź, że warstwy modelu są na GPU:
docker model logs | grep "offloaded.*layers to GPU"Wszystkie warstwy powinny zostać załadowane na GPU
-
Sprawdź problemy z pamięcią:
nvidia-smiUpewnij się, że pamięć GPU nie jest wyczerpana
Najlepsze praktyki
-
Zawsze jawnie określ backend GPU: Dla GPU od firmy NVIDIA używaj
--gpu cudazamiast--gpu auto, aby zapewnić poprawną konfigurację. -
Potwierdzaj konfigurację po zmianach: Zawsze sprawdzaj
docker info | grep -i runtimepo zmianach w konfiguracji demona Docker. -
Monitoruj użycie GPU: Używaj
nvidia-smi, aby monitorować użycie pamięci i wykorzystanie GPU podczas wnioskowania modelu. Dla zaawansowanych narzędzi monitorowania, zobacz nasz przewodnik po aplikacjach do monitorowania GPU w systemach Linux / Ubuntu. -
Sprawdzaj logi regularnie: Przeglądaj
docker model logs, aby upewnić się, że modele korzystają z przyspieszenia GPU. -
Używaj odpowiednich rozmiarów modeli: Upewnij się, że GPU ma wystarczającą ilość pamięci dla modelu. Używaj modeli z kwantyzacją (Q4, Q5, Q6, Q8) dla lepszej efektywności pamięci GPU. Dla pomocy w wyborze odpowiedniego GPU dla obciążeń AI, zobacz nasz przewodnik po porównaniu specyfikacji GPU od firmy NVIDIA odpowiednich dla AI.
Przydatne linki
- Docker Model Runner Cheatsheet
- Oficjalna dokumentacja Docker Model Runner
- Przewodnik instalacji NVIDIA Container Toolkit
- Porównanie Docker Model Runner i Ollama
- Ollama Cheatsheet - alternatywne rozwiązanie do hostowania LLM z wbudowanym wsparciem dla GPU
- Docker Cheatsheet - kompletny odwołanie do poleceń i konfiguracji Docker
- Aplikacje do monitorowania GPU w systemach Linux / Ubuntu - lista i porównanie narzędzi do monitorowania GPU od firmy NVIDIA
- Porównanie specyfikacji GPU od firmy NVIDIA odpowiednich dla AI - przewodnik po wyborze odpowiedniego GPU dla obciążeń AI