Start / Poradniki / Rozwiązywanie problemów / Windows
Windows
Autor: Jakub Rusinowski · Ostatnia aktualizacja: 1 września 2026
Edukator AI i prowadzący warsztaty z wdrażania lokalnych modeli LLM
NAME ID SIZE PROCESSOR UNTIL
llama3.1:8b 42182419e950 6.7 GB 100% CPU 4 minutes from now
| Jeśli widzisz | Przyczyną jest | Przejdź do |
|---|---|---|
| Twój sterownik NVIDII jest starszy niż 551.61 | Ollama podaje 551.61 jako minimum na Windowsie i poniżej tej wersji nie użyje GPU | Rozwiązanie 1: zaktualizuj sterownik NVIDII |
ollama ps pokazuje podział, na przykład 40%/60% CPU/GPU | Model jest większy niż twój wolny VRAM, więc część warstw przelała się do RAM-u systemowego | Rozwiązanie 2: dopasuj model do karty — to normalne, nie usterka |
CUDA_VISIBLE_DEVICES jest ustawione w twoim środowisku użytkownika | Błędny albo nieaktualny identyfikator urządzenia ukrywa wszystkie GPU i wymusza liczenie na CPU | Rozwiązanie 3: usuń CUDA_VISIBLE_DEVICES |
Log debugowania nie wymienia żadnej biblioteki CUDA, tylko wpisy cpu | Ollama nie znalazła przy starcie żadnego użytecznego środowiska CUDA | Rozwiązanie 4: przeczytaj w logu linie o wykrywaniu |
| Twoja karta to GTX 745, GT 730 albo podobny układ sprzed Maxwella | Compute capability poniżej 5.0 nie jest obsługiwane i nigdy nie będzie | Rozwiązanie 5: tej karty nie da się zmusić do pracy |
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.
CUDA_VISIBLE_DEVICES, i nigdy tego nie cofnąłeś.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.
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 — what driver do I actually have?
nvidia-smi --query-gpu=name,driver_version --format=csv100% GPU.ollama run llama3.1:8b "hi"
ollama psJeś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.
ollama ps powinno pokazać 100% GPU. Jeśli dalej dzieli, wciąż przekraczasz budżet.ollama psCUDA_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 — 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")[Environment]::GetEnvironmentVariable("CUDA_VISIBLE_DEVICES", "User")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 — 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 -Waitcuda_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"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 — name the card, then look its compute capability up on
# NVIDIA's CUDA GPUs page
nvidia-smi --query-gpu=name --format=csv,noheaderNic 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 — confirm neither Vulkan kill-switch is set for your user
[Environment]::GetEnvironmentVariable("OLLAMA_VULKAN", "User")
[Environment]::GetEnvironmentVariable("GGML_VK_VISIBLE_DEVICES", "User")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
Dynamic LLM libraries [...] z %LOCALAPPDATA%\Ollama\server.logollama -v oraz nvidia-smi --query-gpu=name,driver_version --format=csvollama ps, razem z kolumną Processorwinver) i informacja, czy pracujesz w WSL2Bo 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.
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.
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.
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.
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.