Dépanner Ollama : GPU non détecté, lenteurs, erreurs mémoire
Vous avez installé Ollama, vous avez un bon GPU, et pourtant les réponses arrivent au ralenti — signe classique d'un ollama gpu non détecté qui fait basculer le modèle sur le processeur. Ce guide passe en revue les pannes les plus fréquentes (fallback CPU, out of memory, lenteurs, conflits de drivers) et donne à chaque fois les commandes de diagnostic pour trouver la cause réelle plutôt que de deviner.
#Les symptômes typiques
Ollama tombe rarement en panne franche : le plus souvent il « marche », mais mal. Le daemon écoute bien sur http://localhost:11434, le modèle répond, mais quelque chose cloche. Savoir reconnaître le symptôme oriente déjà vers la bonne famille de causes.
- Réponses très lentes
- Quelques tokens par seconde alors qu'on attend des dizaines : le modèle tourne probablement sur le CPU, GPU non détecté ou non utilisé.
- GPU à 0 % d'activité
- nvidia-smi ou rocm-smi montrent une carte inactive pendant la génération : Ollama ne l'a pas prise en charge.
- Erreur out of memory
- Le chargement échoue ou le modèle est expulsé avec un message CUDA/HIP « out of memory » : le modèle ou son contexte dépasse la VRAM.
- Lenteur soudaine après une mise à jour
- Un débit qui s'effondre du jour au lendemain pointe vers un driver, une version d'Ollama ou un conflit CUDA/ROCm.
- Offload partiel
- Une partie des couches sur GPU, le reste sur CPU : ça fonctionne mais bien plus lentement qu'un offload complet.
#Vérifier que le GPU est vraiment utilisé
Avant de chercher une solution, il faut établir un fait : Ollama utilise-t-il le GPU, oui ou non ? La commande la plus directe est ollama ps, qui affiche les modèles chargés et surtout la répartition entre CPU et GPU pendant qu'un modèle est en mémoire.
La colonne PROCESSOR est la clé. « 100% GPU » signifie que tout le modèle est sur la carte — c'est ce qu'on veut. « 100% CPU » confirme un fallback complet. Un « 60%/40% CPU/GPU » indique un offload partiel : le modèle ne tient pas entièrement en VRAM.
Pour croiser l'information, surveillez le GPU côté constructeur pendant une génération. Si l'utilisation grimpe, le GPU travaille ; s'il reste à zéro, Ollama l'ignore.
#Lire les logs d'Ollama
Les logs du serveur disent exactement quel backend a été chargé et pourquoi un GPU a été retenu ou écarté. C'est la source de vérité quand ollama ps et nvidia-smi se contredisent.
Cherchez les lignes qui mentionnent « inference compute », « library=cuda » ou « library=rocm », et le nombre de couches offloadées (« offloaded X/Y layers to GPU »). Si vous voyez « no compatible GPUs were discovered » ou « library=cpu », vous tenez la cause : Ollama n'a détecté aucun GPU exploitable.
#Le fallback CPU et ses causes classiques
Quand Ollama n'arrive pas à utiliser le GPU, il ne plante pas : il bascule silencieusement sur le CPU. C'est le comportement le plus déroutant car « tout marche », en apparence. Voici les causes les plus fréquentes, de la plus banale à la plus subtile.
- 01VRAM insuffisante pour le modèleSi le modèle (poids + contexte) dépasse la VRAM libre, Ollama offload une partie sur CPU, voire tout. Un 14B en Q4 réclame ≈9 Go, un 32B ≈19 Go : sur une carte 12 Go, le 32B ne tiendra jamais entièrement.
- 02Driver GPU absent ou trop ancienSans driver NVIDIA récent (ou ROCm côté AMD), Ollama ne voit aucun GPU compatible et repart sur CPU. C'est la cause n°1 d'un « ollama gpu non détecté ».
- 03GPU occupé par un autre processusUn autre modèle, un jeu, un notebook Python ou une autre instance Ollama peut déjà saturer la VRAM. nvidia-smi liste les processus et la mémoire consommée.
- 04Ollama dans un conteneur sans passthrough GPUEn Docker, sans --gpus all (NVIDIA) ou les devices ROCm exposés, le conteneur ne voit pas la carte. Le daemon fonctionne, mais en CPU.
- 05GPU non supportéCartes trop anciennes (capacité de calcul CUDA insuffisante) ou GPU AMD hors de la liste ROCm officielle : Ollama les ignore volontairement.
#Erreurs out of memory : les lire et les résoudre
Un message « CUDA error: out of memory » (ou « HIP out of memory » sur AMD) signifie que le modèle demande plus de VRAM que disponible. Deux leviers gonflent cette demande : la taille du modèle et la fenêtre de contexte. Réduire l'un ou l'autre résout la plupart des cas.
- Modèle trop gros
- Passez à une quantification plus légère (Q4_K_M au lieu de Q5/Q8) ou à un modèle plus petit. Repère Q4 : 7B≈5 Go · 14B≈9 Go · 32B≈19 Go · 70B≈40 Go.
- Contexte trop long
- Un grand num_ctx multiplie la mémoire du cache KV. Réduire la fenêtre de contexte (num_ctx) libère beaucoup de VRAM, surtout sur les gros modèles.
- VRAM fragmentée par un autre process
- Fermez jeux, notebooks et autres modèles. Redémarrez le daemon Ollama pour repartir sur une VRAM propre.
- Mémoire résiduelle
- Un modèle précédent encore chargé occupe la VRAM. ollama stop <modèle> le décharge immédiatement au lieu d'attendre le keep_alive.
#Drivers NVIDIA/AMD, CUDA et ROCm à jour
Beaucoup de problèmes « ollama gpu non détecté » se règlent en mettant la couche driver à niveau. Ollama embarque ses propres bibliothèques CUDA/ROCm, mais il dépend du driver du système pour parler au matériel.
Côté AMD, l'installation ROCm est plus exigeante : la carte doit figurer dans la liste des GPU supportés, et il faut parfois exporter une variable pour forcer la prise en charge d'une architecture proche (HSA_OVERRIDE_GFX_VERSION). Vérifiez d'abord que rocminfo voit bien le GPU.
#Lenteurs soudaines
Un débit qui était bon puis chute brutalement a presque toujours une cause identifiable. Contrairement au fallback CPU permanent, la lenteur soudaine trahit un changement récent d'état.
- Offload partiel nouvellement apparu
- Vous avez augmenté le contexte ou chargé un modèle plus gros : une partie bascule sur CPU. Vérifiez ollama ps et la ligne « offloaded N/M layers ».
- Throttling thermique
- Un GPU qui chauffe réduit sa fréquence. nvidia-smi affiche la température et l'état « P-State » ; au-delà de ~83 °C, la carte throttle.
- Mise à jour d'Ollama ou du driver
- Une régression peut ralentir l'inférence. Notez la version qui marchait (ollama --version) avant de mettre à jour, pour pouvoir revenir en arrière.
- VRAM partagée / mémoire système
- Sous Windows, quand la VRAM déborde, le driver peut utiliser la RAM système (mémoire GPU partagée), ce qui écroule les performances. Réduisez le modèle plutôt que de laisser déborder.
- Rechargement à chaque requête
- Un keep_alive trop court recharge le modèle sans cesse. Augmentez OLLAMA_KEEP_ALIVE si vous enchaînez les requêtes.
#Checklist de diagnostic
Quand quelque chose cloche, déroulez ces étapes dans l'ordre : elles vont du plus fréquent au plus rare et évitent de partir dans une mauvaise direction.
- 011. Confirmer le symptômeollama ps pendant une génération : la colonne PROCESSOR indique-t-elle CPU, GPU ou un mélange ?
- 022. Vérifier que le GPU existe pour le systèmenvidia-smi (ou rocm-smi) répond-il ? Sinon, le problème est au niveau du driver, pas d'Ollama.
- 033. Lire les logsjournalctl -u ollama -f (ou OLLAMA_DEBUG=1 ollama serve) : chercher « library=cuda/rocm/cpu » et « offloaded N/M layers ».
- 044. Vérifier la VRAM disponiblenvidia-smi : un autre process occupe-t-il la carte ? Le modèle rentre-t-il dans la VRAM libre ?
- 055. Réduire la charge si OOM ou offload partielQuantification plus légère, modèle plus petit, ou num_ctx réduit. Décharger les modèles inutilisés avec ollama stop.
- 066. Mettre à jour et redémarrerDriver + Ollama à jour, puis redémarrer le service (et la machine après un changement de driver).
#Pour aller plus loin
Une fois le GPU correctement détecté, ces guides du site aident à tirer le maximum de votre configuration et à éviter que les problèmes ne reviennent :
- Choisir sa quantification (Q4, Q5, Q8, FP16)
- Le levier n°1 contre les erreurs mémoire : comprendre le compromis qualité/VRAM pour choisir un format qui tient dans votre carte.
- Faire tourner un LLM en local sans GPU (CPU only)
- Si votre matériel ne permet pas l'offload GPU, ce guide montre comment rester utilisable en CPU pur et quels modèles choisir par RAM.
- Installer Ollama : Windows, macOS et Linux
- Revoir l'installation propre du daemon et des drivers, souvent la vraie source d'un GPU non détecté.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.