top of page

Ollama non usa la GPU: cause e soluzioni

Ollama non usa la GPU: cause e soluzioni

Benvenuti sul blog tecnico di IlNegoziodiLuserna®. Se state riscontrando cheOllama non usa la GPUdurante l'esecuzione dei modelli locali, vi trovate di fronte a un problema ditroubleshootingcomune ma complesso. Spesso, infatti, la causa risiede in una configurazione errata del sistema operativo, nei driver, o nel sistema di containerizzazione (come Docker).

Questo articolo tecnico vi guiderà attraverso le diagnosi più comuni e le procedure operative per far sì che Ollama sfrutti appieno la potenza della vostra scheda grafica, sia essa NVIDIA o AMD.

Diagnosi rapida

Prima di procedere con modifiche complesse, eseguite questi controlli preliminari:

  • Verifica Driver:Assicuratevi che i driver grafici siano aggiornati all'ultima versione stabile disponibile per il vostro sistema operativo.

  • Verifica Compatibilità:Controllate la documentazione ufficiale di Ollama per confermare che la vostra specifica GPU e la versione del driver siano supportate.

  • Contesto di Esecuzione:State eseguendo Ollama direttamente sul sistema operativohost, o all'interno di un container (es. Docker)? Le soluzioni e le dipendenze cambiano drasticamente.

Cause principali di mancato utilizzo GPU

Il problema è raramente un singolo fattore; spesso si tratta di una catena di dipendenze interrotte. Le cause più frequenti includono:

# 1. Problemi di Rilevamento Hardware (Sistema Host)

  • Sospensione/Ripresa (Suspend/Resume):�^ stato segnalato che dopo un ciclo di sospensione e ripresa del sistema, Ollama può fallire nel rilevare correttamente le GPU NVIDIA, causando un fallback forzato alla CPU.

  • Driver Obsoleti o Incompatibili:Ollama richiede specifiche versioni di driver. Ad esempio, per NVIDIA, è necessario un driver concompute capability5.0+ e versione 531 o successiva. Per AMD, è richiesto ROCm v7.

# 2. Problemi di Containerizzazione (Docker)

  • Mancanza di Toolkit:Se si utilizza Docker, non è sufficiente installare solo l'immagine di Ollama. �^ obbligatorio installare ilNVIDIA Container Toolkitper esporre correttamente i dispositivi GPU al container.

  • Permessi di Dispositivo:Su sistemi Linux, i container potrebbero non avere i permessi necessari per accedere ai dispositivi GPU fisici (es. `/dev/kfd` per AMD, o permessi di gruppo per i dispositivi Vulkan).

# 3. Configurazione Specifica GPU

  • AMD e ROCm:L'utilizzo di acceleratori AMD richiede l'implementazione corretta della libreria ROCm. Inoltre, in alcuni casi, potrebbe essere necessario forzare la versione del target LLVM tramite variabili d'ambiente come `HSA_OVERRIDE_GFX_VERSION`.

  • Vulkan:Se si tenta di usare l'accelerazione tramite Vulkan, è necessario indicarlo esplicitamente impostando la variabile d'ambiente `OLLAMA_VULKAN=1`.

Soluzioni operative

A seconda della causa identificata nella diagnosi, ecco le procedure correttive specifiche.

# Per Utenti NVIDIA

  • Aggiornare i Driver:Assicurarsi che il driver NVIDIA sia almeno alla versione 531 o superiore e che la GPU supporti uncompute capability5.0 o superiore.

  • Configurazione Docker:Installare e configurare ilNVIDIA Container Toolkit. L'avvio del container deve avvenire includendo il flag `--gpus=all`.

  • Risoluzione Post-Sospensione:Se il problema si verifica puntualmente dopo un riavvio o un'ibernazione del sistema, provate a ricaricare manualmente il driver UVM da terminale con il comando: `sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm`.

# Per Utenti AMD

  • Installazione ROCm:Installare la suite ROCm v7 utilizzando l'utility ufficiale `amdgpu-install`.

  • Configurazione Docker:Utilizzare il tag `rocm` specifico per l'immagine Docker e dichiarare i dispositivi necessari all'avvio: `docker run -d --device /dev/kfd --device /dev/dri ... ollama/ollama:rocm`.

  • Variabili d'Ambiente (Linux):Se il rilevamento rimane incompleto, consultare la documentazione per impostare variabili come `HSA_OVERRIDE_GFX_VERSION` in modo da forzare il target architetturale corretto per la vostra scheda.

# Soluzioni Generiche (Vulkan)

Se i metodi specifici falliscono, e se la vostra configurazione hardware lo permette, potete tentare l'accelerazione forzata tramite le API Vulkan impostando la variabile `OLLAMA_VULKAN=1` prima dell'esecuzione.

Errori da non fare

  • Ignorare i Driver:Non assumete che l'installazione del solo pacchetto Ollama risolva automaticamente i problemi di comunicazione hardware. I driver devono essere gestiti e aggiornati a livello di sistema operativo.

  • Eseguire Container Senza Toolkit:Non lanciate container GPU-accelerati senza aver prima installato e configurato lo specifico Toolkit (NVIDIA o AMD) necessario al vostro runtime Docker.

  • Affidarsi al Fallback:Non considerate il funzionamento su CPU come una soluzione a lungo termine se il vostro obiettivo è l'efficienza e la performance nell'inferenza dei modelli LLM.

Quando valutare hardware o consulenza

Se, dopo aver seguito scrupolosamente tutti i passaggi sopra elencati, Ollama continua a non rilevare la vostra GPU, è altamente probabile che:

  • Compatibilità Hardware:La vostra GPU non sia supportata dalla versione corrente di Ollama o dal driver ROCm/CUDA attualmente installato.

  • Restrizioni di Sistema:Siano presenti restrizioni di sicurezza severe a livello OS (come policy SELinux molto restrittive su Linux) che impediscono l'accesso fisico ai dispositivi GPU da parte dei processi containerizzati.

In questi casi, è consigliabile rivedere la documentazione ufficiale per cercareworkaroundspecifici per la vostra distribuzione, oppure richiedere una consulenza tecnica approfondita.

FAQ

D: Come posso forzare Ollama a usare la GPU?

R:Il metodo dipende dall'infrastruttura. Per NVIDIA in Docker, dovete usare il flag `--gpus=all`. Per AMD, è necessario esporre esplicitamente i dispositivi `/dev/kfd` e `/dev/dri` e utilizzare l'immagine con tag `rocm`.

D: Quali driver sono necessari per AMD o NVIDIA?

R:Per architetture NVIDIA, è richiesto un driver in versione 531 o successiva e unacompute capabilitydi almeno 5.0. Per le schede AMD, è richiesto il framework ROCm v7.

D: Come risolvo il problema di rilevamento GPU dopo l'ibernazione del PC?

R:Su sistemi basati su NVIDIA, unworkaroundconsolidato consiste nel ricaricare a caldo il driver UVM tramite il comando: `sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm`.

Fonti tecniche usate



Commenti


bottom of page