Risolvere i problemi di Ollama: GPU non rilevata, rallentamenti, errori memoria
Hai installato Ollama, hai una buona GPU, eppure le risposte arrivano a rilento: un segno classico del fatto che Ollama non rileva la GPU e fa quindi eseguire il modello sul processore. Questa guida passa in rassegna i problemi più frequenti (fallback sulla CPU, errori out of memory, rallentamenti, conflitti tra driver) e fornisce per ciascuno i comandi diagnostici per individuare la causa reale anziché tirare a indovinare.
#I sintomi tipici
Ollama raramente smette del tutto di funzionare: di solito «funziona», ma male. Il daemon è effettivamente in ascolto su http://localhost:11434, il modello risponde, ma qualcosa non va. Saper riconoscere il sintomo aiuta già a individuare la giusta categoria di cause.
- Risposte molto lente
- Pochi token al secondo quando ci si aspetta di ottenerne decine: il modello gira probabilmente sulla CPU, con la GPU non rilevata o non utilizzata.
- GPU allo 0% di attività
- nvidia-smi o rocm-smi mostrano una scheda inattiva durante la generazione: Ollama non l'ha utilizzata.
- Errore out of memory
- Il caricamento fallisce oppure il modello viene rimosso dalla memoria con un messaggio CUDA/HIP « out of memory »: il modello o il suo contesto supera la capacità della VRAM.
- Rallentamento improvviso dopo un aggiornamento
- Un crollo della velocità di generazione da un giorno all'altro suggerisce un problema con un driver, una versione di Ollama o un conflitto CUDA/ROCm.
- Offload parziale
- Una parte dei livelli sulla GPU, il resto sulla CPU: funziona, ma molto più lentamente rispetto a un offload completo.
#Verificare che la GPU sia davvero utilizzata
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
Prima di cercare una soluzione, bisogna stabilire un fatto: Ollama utilizza la GPU, sì o no? Il comando più diretto è ollama ps, che mostra i modelli caricati e soprattutto la distribuzione tra CPU e GPU mentre un modello è in memoria.
La colonna PROCESSOR è la chiave. «100% GPU» significa che tutto il modello è sulla scheda — è quello che vogliamo. «100% CPU» conferma un ripiego completo sulla CPU. «60%/40% CPU/GPU» indica un offload parziale: il modello non entra interamente nella VRAM.
Per incrociare le informazioni, monitora la GPU con gli strumenti del produttore durante una generazione. Se l'utilizzo aumenta, la GPU sta lavorando; se rimane a zero, Ollama la ignora.
#Leggere i log di Ollama
I log del server indicano esattamente quale backend è stato caricato e perché una GPU è stata scelta o esclusa. Sono la fonte di riferimento quando ollama ps e nvidia-smi si contraddicono.
Cerca le righe che menzionano « inference compute », « library=cuda » o « library=rocm », e il numero di strati trasferiti alla GPU (« offloaded X/Y layers to GPU »). Se vedi « no compatible GPUs were discovered » o « library=cpu », hai trovato la causa: Ollama non ha rilevato alcuna GPU utilizzabile.
#Fallback CPU e cause classiche
Quando Ollama non riesce a utilizzare la GPU, non va in crash: passa silenziosamente alla CPU. È il comportamento più disorientante perché, in apparenza, «tutto funziona». Ecco le cause più frequenti, dalla più banale alla più sottile.
- 01VRAM insufficiente per il modelloSe il modello (pesi + contesto) supera la VRAM libera, Ollama ne trasferisce una parte, o anche la totalità, alla CPU. Un 14B in Q4 richiede ≈9 GB, un 32B ≈19 GB: su una scheda da 12 GB, il 32B non potrà mai rientrare interamente nella VRAM.
- 02Driver GPU mancante o troppo vecchioSenza un driver NVIDIA recente (o ROCm per AMD), Ollama non rileva nessuna GPU compatibile e torna a usare la CPU. È la causa numero 1 di un «ollama gpu non rilevato».
- 03GPU occupata da un altro processoUn altro modello, un gioco, un notebook Python o un'altra istanza Ollama può già saturare la VRAM. nvidia-smi elenca i processi e la memoria consumata.
- 04Ollama in un container senza passthrough GPUIn Docker, senza --gpus all (NVIDIA) o senza esporre i dispositivi ROCm, il container non vede la scheda. Il daemon funziona, ma sulla CPU.
- 05GPU non supportataSchede troppo vecchie (capacità di calcolo CUDA insufficiente) o GPU AMD non presenti nell'elenco ufficiale ROCm: Ollama le ignora volontariamente.
#Errori out of memory: interpretarli e risolverli
Un messaggio «CUDA error: out of memory» (o «HIP out of memory» su AMD) significa che il modello richiede più VRAM di quella disponibile. Due parametri aumentano questa richiesta: la dimensione del modello e la finestra di contesto. Ridurre uno o l'altro risolve la maggior parte dei casi.
- Modello troppo grande
- Passa a una quantizzazione più leggera (Q4_K_M al posto di Q5/Q8) o a un modello più piccolo. Valori di riferimento per Q4: 7B≈5 GB · 14B≈9 GB · 32B≈19 GB · 70B≈40 GB.
- Contesto troppo lungo
- Un valore elevato di num_ctx moltiplica la memoria occupata dalla cache KV. Ridurre la finestra di contesto (num_ctx) libera molta VRAM, soprattutto sui modelli di grandi dimensioni.
- VRAM frammentata da un altro processo
- Chiudi giochi, notebook e altri modelli. Riavvia il daemon Ollama per ripartire con una VRAM pulita.
- Memoria residua
- Un modello precedente ancora caricato occupa la VRAM. ollama stop <modèle> lo rimuove immediatamente dalla memoria invece di attendere la scadenza di keep_alive.
#Driver NVIDIA/AMD, CUDA e ROCm aggiornati
Molti problemi del tipo «GPU non rilevata da Ollama» si risolvono aggiornando i driver. Ollama include le proprie librerie CUDA/ROCm, ma dipende dal driver del sistema per comunicare con l'hardware.
Per AMD, l'installazione di ROCm è più impegnativa: la scheda deve figurare nell'elenco delle GPU supportate e talvolta occorre esportare una variabile per forzare il supporto di un'architettura simile (HSA_OVERRIDE_GFX_VERSION). Verifica prima di tutto che rocminfo rilevi correttamente la GPU.
#Rallentamenti improvvisi
Una velocità di generazione inizialmente buona che poi cala bruscamente ha quasi sempre una causa identificabile. A differenza del fallback permanente sulla CPU, un rallentamento improvviso rivela un recente cambiamento di stato.
- Offload parziale comparso di recente
- Hai aumentato il contesto o caricato un modello più grande: una parte passa sulla CPU. Controlla ollama ps e la riga «offloaded N/M layers».
- Throttling termico
- Una GPU che si scalda riduce la propria frequenza. nvidia-smi mostra la temperatura e lo stato «P-State»; oltre circa 83 °C, la scheda limita la frequenza per effetto del throttling termico.
- Aggiornamento di Ollama o del driver
- Una regressione può rallentare l'inferenza. Annota la versione che funzionava (ollama --version) prima di aggiornare, per poter tornare indietro.
- VRAM condivisa / memoria di sistema
- Su Windows, quando la capacità della VRAM viene superata, il driver può utilizzare la RAM di sistema (memoria GPU condivisa), facendo crollare le prestazioni. Scegli un modello più piccolo anziché lasciare che venga superata la capacità della VRAM.
- Ricaricamento a ogni richiesta
- Un keep_alive troppo breve ricarica il modello costantemente. Aumenta OLLAMA_KEEP_ALIVE se invii richieste consecutive.
#Checklist di diagnosi
Quando qualcosa va storto, segui questi passaggi nell'ordine: vanno dal più comune al meno comune e ti evitano di partire in una direzione sbagliata.
- 011. Confermare il sintomoollama ps pendant une génération : la colonne PROCESSOR indique-t-elle CPU, GPU ou un mélange ?
- 022. Verificare che la GPU sia rilevata dal sistemanvidia-smi (o rocm-smi) risponde? Altrimenti, il problema è nel driver, non in Ollama.
- 033. Leggere i logjournalctl -u ollama -f (o OLLAMA_DEBUG=1 ollama serve) : cercare « library=cuda/rocm/cpu » e « offloaded N/M layers ».
- 044. Verificare la VRAM disponibilenvidia-smi : un altro processo occupa la scheda? Il modello entra nella VRAM libera?
- 055. Ridurre il carico in caso di OOM o offload parzialeQuantizzazione più leggera, modello più piccolo o num_ctx ridotto. Rimuovere dalla memoria i modelli inutilizzati con ollama stop.
- 066. Aggiornare e riavviareDriver e Ollama aggiornati, poi riavviare il servizio (e la macchina dopo un cambio di driver).
#Per approfondire
Una volta rilevata correttamente la GPU, queste guide del sito aiutano a ottenere il massimo dalla tua configurazione e a evitare che i problemi si ripresentino:
- Scegliere la quantizzazione (Q4, Q5, Q8, FP16)
- Il vantaggio numero 1 contro gli errori di memoria: capire il compromesso qualità/VRAM per scegliere un formato che entra nella tua scheda.
- Eseguire un LLM in locale senza GPU (solo CPU)
- Se il tuo hardware non permette l'offload sulla GPU, questa guida mostra come mantenere il modello utilizzabile con la sola CPU e quali modelli scegliere in base alla RAM.
- Installare Ollama: Windows, macOS e Linux
- Rivedere la corretta installazione del daemon e dei driver, spesso la vera causa del mancato rilevamento di una GPU.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.