Laptop liczy model na karcie zintegrowanej, a nie na RTX-ie
nvidia-smi pokazuje bezczynne GPU, choć model pracuje
Autor Jakub Rusinowski
Błąd
+-----------------------------------------+ | Processes: | | GPU PID Type Process name Usage | |=========================================| | No running processes found | +-----------------------------------------+
| Jeśli widzisz | Przyczyną jest | Przejdź do |
|---|---|---|
nvidia-smi pokazuje 0% i żadnych procesów, gdy model generuje | Windows przydzielił procesowi kartę zintegrowaną | Rozwiązanie 1: ustaw preferencję graficzną dla pliku wykonywalnego |
| Korzysta z RTX-a uruchomiony ze skrótu, ale nie z terminala | Proces potomny dziedziczy preferencję hosta terminala | Rozwiązanie 1 — ustaw ją także dla terminala |
| Używa karty dedykowanej na zasilaniu sieciowym, a zintegrowanej na baterii | Polityka energetyczna producenta wyłącza lub spycha kartę dedykowaną na baterii | Rozwiązanie 4: podłącz zasilanie i sprawdź narzędzie producenta |
| Ani Windows, ani panel NVIDII niczego nie zmieniają | Ustawienie MUX albo tryb „hybrydowy/dedykowany” w BIOS-ie nadpisuje oba | Rozwiązanie 3: sprawdź tryb grafiki w BIOS-ie |
| Karta dedykowana pracuje, a mimo to jest wolno | Laptopowa karta z 4–6 GB może być po prostu za mała na ten model | Rozwiązanie 5: zestaw model z realnym VRAM-em |
Kiedy się pojawia
Dwa układy graficzne, a Windows wybrał niewłaściwy. Karta jest w Menedżerze urządzeń, nvidia-smi działa i ją wypisuje, gry korzystają z niej bez oporów — ale w trakcie wnioskowania nie pokazuje żadnych procesów i niemal zerowe obciążenie, podczas gdy zintegrowany Intel Iris albo Radeon wykonuje robotę ułamkiem tej prędkości.
- Masz laptopa gamingowego albo mobilną stację roboczą z grafiką zintegrowaną i RTX-em naraz.
- Uruchamiasz wnioskowanie z Windows Terminal, PowerShella albo VS Code, a nie ze skrótu na pulpicie.
- Wszystko jest szybkie po podłączeniu zasilania i wolne na baterii.
- Masz podpięty monitor zewnętrzny i zachowanie zmieniło się po jego podłączeniu.
- Laptop ma w BIOS-ie opcję grafiki „Discrete”, „Hybrid” albo „MUX”.
Co się właściwie dzieje
Laptopy hybrydowe noszą dwa układy graficzne — energooszczędny, zintegrowany z procesorem, oraz dedykowaną kartę NVIDIA — a Windows wybiera między nimi dla każdej aplikacji osobno, nie raz dla całej maszyny. Domyślna polityka faworyzuje oszczędzanie energii, co jest słuszne przy edytorze tekstu i błędne przy wnioskowaniu. Proces konsolowy pogarsza sprawę: zwykle dziedziczy preferencję graficzną tego, co go uruchomiło, więc ollama.exe odpalony z Windows Terminal przejmuje preferencję Windows Terminal — a Windows Terminal to aplikacja tekstowa, którą system z przyjemnością trzyma na karcie zintegrowanej. Trzy niezależne warstwy mogą się nawzajem nadpisywać — preferencja graficzna Windowsa, ustawienie w Panelu sterowania NVIDIA oraz tryb MUX lub hybrydowy w BIOS-ie — a wygrywa warstwa najniższa. Dlatego zmiana wyłącznie tej najwyższej czasem sprawia wrażenie, że nic nie robi.
Jak to naprawić
- 1
Ustaw preferencję graficzną Windowsa — dla terminala tak samo jak dla aplikacji
Wejdź w Ustawienia → System → Ekran → Grafika, dodaj plik wykonywalny i wybierz Opcje → Wysoka wydajność. Zrób to dla pliku od wnioskowania (
ollama.exe, LM Studio albopython.exez twojego środowiska wirtualnego) oraz dla hosta terminala, z którego go uruchamiasz —WindowsTerminal.exe,powershell.execzyCode.exe. Ta druga połowa to krok, który wszyscy pomijają, i to zwykle ona realnie zmienia wynik, bo proces potomny dziedziczy preferencję rodzica.# PowerShell — the full paths you will need to browse to (Get-Command ollama).Source where.exe python (Get-Process WindowsTerminal -ErrorAction SilentlyContinue).PathCzy zadziałało?Zamknij terminal, otwórz nowy, uruchom generowanie i obserwuj. Karta dedykowana powinna teraz pokazywać proces i niezerowe obciążenie.nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv - 2
Ustaw także preferencję w Panelu sterowania NVIDIA
Panel sterowania NVIDIA → Zarządzaj ustawieniami 3D. Na karcie Ustawienia globalne ustaw *Preferowany procesor graficzny* na Wysokowydajny procesor NVIDIA, a w Ustawieniach programu dodaj te same pliki wykonywalne. To osobny mechanizm od ustawienia Windowsa, a nie jego duplikat, i przy niektórych wersjach sterownika to właśnie on decyduje. Ustawienie obu nie jest nadmiarowe — usuwa zmienną.
Czy zadziałało?Karta Ustawienia programu powinna wypisywać twój plik wykonywalny z wybranym procesorem NVIDIA. Potem powtórz sprawdzenie z rozwiązania 1.nvidia-smi dmon -c 10 - 3
Sprawdź tryb MUX albo grafikę hybrydową w BIOS-ie
Wiele laptopów gamingowych udostępnia ustawienie firmware'u — różnie nazywane MUX switch, Graphics Mode, Hybrid / Discrete albo Advanced Optimus — które na poziomie sprzętu decyduje, która karta obsługuje ekran i która jest dostępna. Nadpisuje ono oba powyższe ustawienia programowe. Ustawione na tryb dedykowany całkowicie wyłącza układ zintegrowany z gry i cała ta klasa problemów znika; kosztem jest czas pracy na baterii, a zmiana zwykle wymaga restartu. Narzędzia producentów (Armoury Crate, Lenovo Vantage, Alienware Command Center) często udostępniają ten sam przełącznik bez wchodzenia do BIOS-u.
Uwaga: Zmiana trybu grafiki w firmwarze może zostawić cię z czarnym ekranem przy następnym starcie, jeśli matryca jest podpięta do drugiego układu. Zanim to zmienisz, dowiedz się, jak w twoim modelu wyczyścić CMOS albo uruchomić tryb awaryjny. - 4
Podłącz zasilanie i sprawdź politykę energetyczną producenta
Kilku producentów wyłącza albo mocno dławi kartę dedykowaną na baterii, a część robi to bez słowa. Jeśli prędkość jest dobra z gniazdka i kiepska bez, to właśnie ten mechanizm, a nie twoja zła konfiguracja. Sprawdź też tryb zasilania samego Windowsa — Ustawienia → System → Zasilanie i bateria → Tryb zasilania ustawiony na *Najlepsza efektywność energetyczna* przechyla cały system w stronę karty zintegrowanej. Długie wnioskowanie to i tak ciężkie, ciągłe obciążenie, które do pracy na baterii się nie nadaje.
# PowerShell — on mains or on battery, and what power scheme is active? (Get-CimInstance -ClassName Win32_Battery).BatteryStatus # 2 = on AC power powercfg /getactivescheme - 5
Przypnij GPU wprost przez CUDA_VISIBLE_DEVICES, po UUID
Kiedy karta dedykowana jest już dostępna dla procesu, możesz wskazać ją bezpośrednio. Użyj
nvidia-smi -L, żeby wypisać urządzenia, i wybierz UUID zamiast indeksu liczbowego — indeksy wynikają z kolejności wyliczania i potrafią się zmienić po restarcie, aktualizacji sterownika albo podpięciu zewnętrznego GPU, więc konfiguracja przypięta do0pewnego ranka po cichu wskaże co innego. Pamiętaj, że ustawienie tej zmiennej na nieistniejące urządzenie wymusza liczenie na CPU — to inny objaw, opisany na sąsiedniej stronie.# PowerShell — list devices with their UUIDs nvidia-smi -L # GPU 0: NVIDIA GeForce RTX 4060 Laptop GPU (UUID: GPU-1a2b3c4d-...) # Pin by UUID for this session $env:CUDA_VISIBLE_DEVICES="GPU-1a2b3c4d-..." ollama serveCzy zadziałało?Wybrana karta pokazuje proces wnioskowania i rosnące zużycie pamięci, gdy model jest załadowany.nvidia-smi --query-compute-apps=process_name,used_memory --format=csv - 6
Powiedz sobie uczciwie, czy karta dedykowana jest dość dużaNajczęstsze rozwiązanie
Warto to sprawdzić, zanim spędzisz wieczór na preferencjach graficznych: laptopowe karty dedykowane mają często od 4 do 8 GB, a mobilne warianty desktopowych układów potrafią nieść mniej pamięci i mniejszą przepustowość, niż sugeruje nazwa. Jeśli twój RTX ma 6 GB, model 7B w Q4 się zmieści, a 8B w Q5 już nie — i wymuszenie karty dedykowanej tej arytmetyki nie zmieni. Zestaw model z realnym VRAM-em karty: jeśli się nie mieści, mniejszy model na właściwym GPU bije duży przelewający się do RAM-u systemowego.
# PowerShell — the real numbers for the card in this laptop nvidia-smi --query-gpu=name,memory.total,memory.used --format=csvSprawdź, co pasuje do Twojego sprzętusprawdź, które modele zmieszczą się na laptopowym GPU z 6 albo 8 GBOtwórz kalkulator VRAM →
Jeśli nic z tego nie pomogło
Jeśli karta dedykowana już pracuje, a generowanie wciąż jest wolne, następną rzeczą do wykluczenia jest przelewanie się do RAM-u systemowego przez sterownik Windows — laptopowa karta z 6 GB dobija do tego sufitu szybko. Jeśli karta w ogóle nie jest używana i nic z powyższego tego nie zmieniło, problem leży wyżej niż sam wybór GPU.
- Współdzielona pamięć GPU na Windowsie każe modelowi pełznąć
- Ollama liczy na CPU na Windowsie mimo karty NVIDIA
- „No CUDA-capable device is detected”
- Wynik
nvidia-smi -Loraznvidia-smi --query-gpu=name,memory.total --format=csv - Model laptopa i informacja, czy ma przełącznik MUX
- Czy maszyna jest na zasilaniu sieciowym i jaki plan zasilania jest aktywny
- Które pliki wykonywalne dodałeś w Ustawienia → Ekran → Grafika
Powiązane
Najczęściej zadawane pytania
Dlaczego laptop używa karty zintegrowanej do wnioskowania, a do gier nie?
Bo Windows wybiera osobno dla każdej aplikacji i domyślnie oszczędza energię. Gry przychodzą z profilami producenta, które żądają karty dedykowanej; proces konsolowy nie ma żadnego profilu i dziedziczy preferencję terminala rodzica, a tą jest zwykle układ zintegrowany.
Czy trzeba ustawić preferencję także dla terminala, nie tylko dla aplikacji?
Tak, i to najczęściej pomijany krok. Proces uruchomiony z Windows Terminal dziedziczy jego preferencję graficzną. Ustawienie jej wyłącznie na ollama.exe często niczego nie zmienia, dopóki nie ustawisz jej również na hoście terminala.
Czym jest przełącznik MUX i czy ma tu znaczenie?
To sprzętowy multiplekser decydujący, która karta obsługuje ekran. Tam, gdzie firmware udostępnia tryb dedykowany, nadpisuje on zarówno ustawienie Windowsa, jak i Panelu sterowania NVIDIA — a przełączenie się na niego usuwa ten problem całkowicie, kosztem czasu pracy na baterii.
Używać CUDA_VISIBLE_DEVICES z indeksem czy z UUID?
Z UUID. Indeksy liczbowe wynikają z kolejności wyliczania i potrafią się zmienić po restarcie, aktualizacji sterownika albo podpięciu zewnętrznego GPU — a wtedy przypięty indeks po cichu wskazuje inne urządzenie. nvidia-smi -L wypisuje jedno i drugie.
Mój laptopowy RTX ma 6 GB. Czy w ogóle warto go wymuszać?
Tak, ale trzymaj oczekiwania w ryzach. Karta 6 GB wygodnie uciągnie model 7–8B w Q4 i nie uruchomi 14B w żadnej użytecznej jakości. Wymuszenie właściwego GPU pomaga, ale nie tworzy VRAM-u — a model przekraczający 6 GB będzie wolny również na karcie dedykowanej.