Start / Poradniki / Rozwiązywanie problemów / Windows

Ollama liczy na CPU na Windowsie mimo karty NVIDIA

Windows

Autor: Jakub Rusinowski · Ostatnia aktualizacja: 1 września 2026

Edukator AI i prowadzący warsztaty z wdrażania lokalnych modeli LLM

Komunikat błędu

NAME            ID              SIZE      PROCESSOR    UNTIL
llama3.1:8b     42182419e950    6.7 GB    100% CPU     4 minutes from now

Który to przypadek?

Jeśli widziszPrzyczyną jestPrzejdź do
Twój sterownik NVIDII jest starszy niż 551.61Ollama podaje 551.61 jako minimum na Windowsie i poniżej tej wersji nie użyje GPURozwiązanie 1: zaktualizuj sterownik NVIDII
ollama ps pokazuje podział, na przykład 40%/60% CPU/GPUModel jest większy niż twój wolny VRAM, więc część warstw przelała się do RAM-u systemowegoRozwiązanie 2: dopasuj model do karty — to normalne, nie usterka
CUDA_VISIBLE_DEVICES jest ustawione w twoim środowisku użytkownikaBłędny albo nieaktualny identyfikator urządzenia ukrywa wszystkie GPU i wymusza liczenie na CPURozwiązanie 3: usuń CUDA_VISIBLE_DEVICES
Log debugowania nie wymienia żadnej biblioteki CUDA, tylko wpisy cpuOllama nie znalazła przy starcie żadnego użytecznego środowiska CUDARozwiązanie 4: przeczytaj w logu linie o wykrywaniu
Twoja karta to GTX 745, GT 730 albo podobny układ sprzed MaxwellaCompute capability poniżej 5.0 nie jest obsługiwane i nigdy nie będzieRozwiązanie 5: tej karty nie da się zmusić do pracy

Kiedy się pojawia

Nie ma żadnego błędu i właśnie to czyni ten przypadek trudnym. Ollama startuje, model się ładuje, generowanie działa — tylko dziesięć do trzydziestu razy wolniej, niż powinno, a Menedżer zadań pokazuje kartę graficzną na jakimś zerze procent, podczas gdy wszystkie rdzenie procesora idą na maksa. Nic nie zawiodło, więc nic nie zostało zgłoszone.

Co się właściwie dzieje

Ollama decyduje o rozmieszczeniu każdej warstwy modelu raz, przy ładowaniu, na podstawie tego, co wykryła o twoim sprzęcie przy starcie. Jeśli nie znajdzie użytecznego środowiska CUDA, po cichu przechodzi na liczenie na CPU — bo wnioskowanie na CPU jest poprawną odpowiedzią: wolną, ale poprawną. Na Windowsie to wykrywanie zawodzi z trzech powodów. Twój sterownik może być starszy niż wymagany przez Ollamę: udokumentowane minimum to 551.61 na Windowsie, a dla kart o compute capability między 5.0 a 6.2 — sterownik 570 lub nowszy. Karta może być po prostu za stara — twardym minimum jest compute capability 5.0. Albo zmienna środowiskowa ukrywa GPU przed procesem, zanim ten w ogóle spojrzy. Osobna sprawa: jeśli model razem z cache'em KV jest większy niż wolny VRAM, Ollama umieszcza na karcie tyle, ile się mieści, a resztę na CPU — i wtedy widzisz podział, a nie 100% CPU.

Jak to naprawić

1. Zaktualizuj sterownik NVIDII do 551.61 lub nowszego

To pierwsza rzecz do sprawdzenia i najczęstsza przyczyna. Wymagania Ollamy dla Windowsa wskazują 551.61 jako minimum, a karty o compute capability 5.0–6.2 (układy z epoki Maxwella i Pascala, na przykład GTX 1060) potrzebują 570 lub nowszego. Pobierz sterownik ze strony NVIDII albo z GeForce Experience, a nie z Windows Update, który mocno się opóźnia. Zweryfikowane z dokumentacją Ollamy dotyczącą GPU i Windowsa, 1 września 2026.

PowerShell
# PowerShell — what driver do I actually have?
nvidia-smi --query-gpu=name,driver_version --format=csv
Czy zadziałało? Po instalacji sterownika zrestartuj Ollamę z zasobnika systemowego, załaduj model i uruchom to polecenie. Kolumna Processor powinna teraz pokazywać 100% GPU.
ollama run llama3.1:8b "hi"
ollama ps

2. Sprawdź, czy model naprawdę mieści się w twoim VRAM-ie Najczęstsze rozwiązanie

Jeśli ollama ps pokazuje podział w rodzaju 35%/65% CPU/GPU, a nie płaskie 100% CPU, to ze sterownikiem wszystko jest w porządku, a model jest po prostu za duży na wolny VRAM. To normalne zachowanie, nie usterka — Ollama umieściła na karcie tyle, ile mogła. Każda warstwa, która przelała się do RAM-u systemowego, przy każdym tokenie przekracza magistralę PCIe, dlatego dziesięcioprocentowe przelanie potrafi kosztować znacznie więcej niż dziesięć procent prędkości. Trwałym rozwiązaniem jest mniejszy model, niższa kwantyzacja albo krótszy kontekst — a ten rachunek warto zrobić, zanim pobierzesz kolejny plik o wadze 20 GB.

Czy zadziałało? Po zmianie modelu albo kontekstu ollama ps powinno pokazać 100% GPU. Jeśli dalej dzieli, wciąż przekraczasz budżet.
ollama ps
Sprawdź, co zmieści się na twoim sprzęcie — ustal, która kwantyzacja twojego modelu zmieści się w wolnym VRAM-ie twojej karty
Otwórz kalkulator VRAM →

3. Usuń nieaktualne CUDA_VISIBLE_DEVICES

CUDA_VISIBLE_DEVICES wybiera, które karty widzi proces. Ustaw ją na nieistniejący identyfikator — klasykiem jest -1 — a proces nie zobaczy żadnego GPU i po cichu policzy na CPU. Ludzie ustawiają to raz przy debugowaniu maszyny z kilkoma kartami i zostawiają w środowisku użytkownika na miesiące. Sprawdź tę zmienną i usuń ją w Ustawienia → System → Informacje → Zaawansowane ustawienia systemu → Zmienne środowiskowe, a nie tylko wyczyść w jednej powłoce — usługa Ollamy czyta środowisko użytkownika, nie twojego terminala.

PowerShell
# PowerShell — is it set at all?
$env:CUDA_VISIBLE_DEVICES
[Environment]::GetEnvironmentVariable("CUDA_VISIBLE_DEVICES", "User")

# Remove it for your user account (the value the Ollama app will read)
[Environment]::SetEnvironmentVariable("CUDA_VISIBLE_DEVICES", $null, "User")
Czy zadziałało? Oba polecenia nie powinny nic wypisać. Zamknij Ollamę z zasobnika i otwórz ją ponownie — aplikacja odczytuje środowisko wyłącznie przy starcie.
[Environment]::GetEnvironmentVariable("CUDA_VISIBLE_DEVICES", "User")

4. Przeczytaj w logu debugowania linie o wykrywaniu

Kiedy pierwsze trzy rozwiązania nie wyjaśniły sprawy, wyjaśni ją log. Ollama pisze do %LOCALAPPDATA%\Ollama — plik server.log oraz rotowane server-#.log. Przy włączonym logowaniu debugowania wypisuje znalezione biblioteki w linii wyglądającej tak: Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]. Jeśli na tej liście nie ma żadnego wpisu cuda_*, Ollama nigdy nie znalazła środowiska CUDA i cała reszta jest tego konsekwencją. Najpierw zamknij aplikację z zasobnika — uruchomienie polecenia debugowania przy działającej aplikacji daje drugą instancję walczącą o ten sam port.

PowerShell
# PowerShell — quit Ollama from the system tray FIRST, then:
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

# In another PowerShell window, watch the log:
Get-Content "$env:LOCALAPPDATA\Ollama\server.log" -Tail 50 -Wait
Czy zadziałało? Poszukaj w wyjściu listy bibliotek. Wpis cuda_v12 albo cuda_v11 oznacza, że CUDA została znaleziona; lista zawierająca wyłącznie wpisy cpu* potwierdza, że nie.
Select-String -Path "$env:LOCALAPPDATA\Ollama\server.log" -Pattern "LLM libraries"

5. Sprawdź, czy karta w ogóle może zadziałać — dolną granicą jest compute capability 5.0

Ollama obsługuje karty NVIDIA o compute capability 5.0 i wyższym. Poniżej nie ma żadnego rozwiązania ani sterownika, który by pomógł: układy Kepler i starsze (seria GTX 700 i większość kart z oznaczeniem GT) nie policzą w Ollamie na GPU, kropka. Lepiej wiedzieć to po pięciu minutach niż po trzech reinstalacjach sterownika. Jeśli twoja karta jest poniżej tej granicy, mały model na CPU to naprawdę używalna opcja — model 1–3B w Q4 do czatu na nowoczesnym procesorze sprawdza się dobrze — i jest to uczciwa odpowiedź, a nie obejście.

PowerShell
# PowerShell — name the card, then look its compute capability up on
# NVIDIA's CUDA GPUs page
nvidia-smi --query-gpu=name --format=csv,noheader

6. Przy karcie AMD sprawdzaj backend Vulkan, a nie CUDA

Nic z powyższego nie dotyczy Radeonów. Ollama dostarcza backend Vulkan włączony domyślnie na Windowsie i Linuksie, gdy backend jest zainstalowany, a na Windowsie większość sterowników AMD niesie obsługę Vulkana w pakiecie. To właśnie ta ścieżka zwykle działa na konsumenckich Radeonach — częściej niż ROCm. Wyłączają ją OLLAMA_VULKAN=0 albo GGML_VK_VISIBLE_DEVICES=-1, więc warto sprawdzić, czy żadna nie jest ustawiona; z kolei GGML_VK_VISIBLE_DEVICES=1 wybiera kartę dedykowaną na maszynie, która ma też zintegrowaną.

PowerShell
# PowerShell — confirm neither Vulkan kill-switch is set for your user
[Environment]::GetEnvironmentVariable("OLLAMA_VULKAN", "User")
[Environment]::GetEnvironmentVariable("GGML_VK_VISIBLE_DEVICES", "User")

Jeśli nic z tego nie pomogło

Jeśli sterownik jest aktualny, żadna zmienna urządzenia nie jest ustawiona, model się mieści, a log wciąż nie pokazuje biblioteki CUDA, problemem jest samo środowisko CUDA, a nie sposób, w jaki Ollama z niego korzysta. Dwie strony zawężają to dalej, a trzecia jest tą, którą warto przeczytać na laptopie.

Dołącz to, zgłaszając problem

Powiązane

Model, który mieści się na większości zestawów:
Zobacz model i wymagania →

Najczęstsze pytania

Dlaczego Ollama po prostu nie powie, że zeszła na CPU?

Bo wnioskowanie na CPU to wspierany tryb, a nie awaria. Ollama rozmieszcza warstwy tam, gdzie się mieszczą, i działa; nie ma czego zgłaszać. ollama ps jest przewidzianym sposobem sprawdzenia wyniku — kolumna Processor pokazuje 100% GPU, 100% CPU albo podział między nimi.

Czy podział w rodzaju 30%/70% CPU/GPU oznacza usterkę?

Nie. Oznacza, że model był większy niż twój wolny VRAM, więc Ollama zostawiła na karcie tyle, ile się zmieściło, a resztę umieściła w RAM-ie systemowym. Działa zgodnie z projektem. Jest przy tym znacznie wolniejszy niż pełne załadowanie na GPU, więc potraktuj to jako sygnał, żeby zejść o poziom kwantyzacji albo skrócić kontekst.

Której wersji sterownika NVIDII wymaga Ollama na Windowsie?

Ollama podaje 551.61 lub nowszy dla Windowsa. Karty o compute capability między 5.0 a 6.2 potrzebują sterownika 570 lub nowszego. Ogólne minimum na wszystkich platformach to 550. Cokolwiek poniżej właściwej granicy oznacza liczenie na CPU, niezależnie od tego, jak dobra jest karta.

Zaktualizowałem sterownik i dalej liczy na CPU. Co teraz?

Zamknij Ollamę z zasobnika systemowego i otwórz ją ponownie — aplikacja odczytuje środowisko i przeprowadza wykrywanie GPU wyłącznie przy starcie, więc sterownik zainstalowany przy działającej aplikacji nie zostanie zauważony. Jeśli po czystym restarcie nadal jest na CPU, sprawdź CUDA_VISIBLE_DEVICES, a potem log debugowania.

Czy uruchomienie Ollamy w WSL2 coś tu zmienia?

Tak, i to sporo. WSL2 ma własną warstwę sterowników i nie korzysta bezpośrednio z windowsowej ścieżki CUDA. Jeśli nvidia-smi działa w PowerShellu, ale nie w twojej dystrybucji, właściwa jest strona o WSL, a nie ta.