Comparaison des performances des LLMs sur Ollama avec un GPU de 16 Go de VRAM

Test de vitesse des LLM sur RTX 4080 avec 16 Go de VRAM

Sommaire

L’exécution locale de grands modèles de langage (LLM) vous offre confidentialité, fonctionnement hors ligne et zéro coût d’API. Ce benchmark révèle exactement ce qu’on peut attendre de 14 LLMs populaires sur Ollama avec une RTX 4080.

Avec un GPU de 16 Go de VRAM, je me suis trouvé face à un compromis constant : des modèles plus grands avec une qualité potentiellement supérieure, ou des modèles plus petits avec une inférence plus rapide. Pour en savoir plus sur les performances des LLM — débit vs latence, limites de VRAM, requêtes parallèles et benchmarks entre les différents runtimes — consultez Performances des LLM : Benchmarks, Goulets d’étranglement & Optimisation.

Cet article se concentre sur Ollama. Pour la même classe de GPU de 16 Go mesurée avec llama.cpp à 19K, 32K et 64K de contexte (VRAM, charge GPU, tokens par seconde sur les checkpoints denses et MoE), consultez Benchmarks LLM 16 Go VRAM avec llama.cpp (vitesse et contexte).

Une fois que le débit et la répartition de la VRAM semblent acceptables, les charges de travail de type agent nécessitent encore des paramètres de température et de pénalité sains pour les stacks Qwen et Gemma ; voir Paramètres d’inférence agencés pour Qwen et Gemma.

Performances des LLM sur Ollama - réévaluations

En bref (TL;DR)

Voici le tableau comparatif mis à jour des performances des LLM sur RTX 4080 16 Go avec Ollama 0.17.7, (2026-03-09) ajout des modèles Qwen 3.5 9b, 9bq8, 27b et 35b :

Modèle RAM+VRAM Utilisée Répartition CPU/GPU Tokens/sec
gpt-oss:20b 14 Go 100% GPU 139.93
qwen3.5:9b 9.3 Go 100% GPU 90.89
ministral-3:14b 13 Go 100% GPU 70.13
qwen3:14b 12 Go 100% GPU 61.85
qwen3.5:9b-q8_0 13 Go 100% GPU 61.22
qwen3-coder:30b 20 Go 25%/75% CPU/GPU 57.17
qwen3-vl:30b-a3b 22 Go 30%/70% CPU/GPU 50.99
glm-4.7-flash 21 Go 27%/73% CPU/GPU 33.86
nemotron-3-nano:30b 25 Go 38%/62% CPU/GPU 32.77
qwen3.5:35b 27 Go 43%/57% CPU/GPU 20.66
devstral-small-2:24b 19 Go 18%/82% CPU/GPU 18.67
mistral-small3.2:24b 19 Go 18%/82% CPU/GPU 18.51
gpt-oss:120b 66 Go 78%/22% CPU/GPU 12.64
qwen3.5:27b 24 Go 43%/57% CPU/GPU 6.48

Insight clé : Les modèles qui tiennent entièrement dans la VRAM sont considérablement plus rapides. GPT-OSS 20B atteint 139.93 tokens/sec, tandis que GPT-OSS 120B avec un offloading CPU important rampe à 12.64 tokens/sec — une différence de vitesse de 11x.

Configuration du matériel de test

Le benchmark a été réalisé sur le système suivant :

  • GPU : NVIDIA RTX 4080 avec 16 Go de VRAM
  • CPU : Intel Core i7-14700 (8 P-cores + 12 E-cores)
  • RAM : 64 Go DDR5-6000

Cela représente une configuration grand public haut de gamme courante pour l’inférence locale de LLM. Les 16 Go de VRAM constituent la contrainte critique — ils déterminent quels modèles s’exécutent entièrement sur le GPU par rapport à ceux nécessitant un offloading CPU.

Comprendre comment Ollama utilise les cœurs Intel CPU devient important lorsque les modèles dépassent la capacité de la VRAM, car les performances du CPU impactent directement la vitesse d’inférence des couches offloadées.

Objectif de ce benchmark

L’objectif principal était de mesurer la vitesse d’inférence dans des conditions réalistes. Je savais déjà par expérience que Mistral Small 3.2 24B excelle en qualité linguistique tandis que Qwen3 14B offre un suivi des instructions supérieur pour mes cas d’utilisation spécifiques.

Ce benchmark répond à la question pratique : À quelle vitesse chaque modèle peut-il générer du texte, et quelle est la pénalité de vitesse pour dépasser les limites de la VRAM ?

Les paramètres de test étaient :

  • Taille du contexte : 19 000 tokens. C’est la valeur moyenne dans mes requêtes Generate.
  • Prompt : “compare weather and climate between capital cities of australia”
  • Métrique : taux d’évaluation (tokens par seconde pendant la génération)

Installation et version d’Ollama

Tous les tests ont utilisé la version 0.15.2 d’Ollama, la dernière version au moment des tests. Réexécuté plus tard sur Ollama v 0.17.7 - pour ajouter les modèles Qwen3.5. Pour une référence complète des commandes Ollama utilisées dans ce benchmark, consultez la Fiche de référence Ollama.

Pour résumer rapidement - installer Ollama sur Linux :

curl -fsSL https://ollama.com/install.sh | sh

Vérifier l’installation :

ollama --version

Si vous devez stocker les modèles sur un lecteur différent en raison de contraintes d’espace, consultez comment déplacer les modèles Ollama vers un autre lecteur.

Modèles testés

Les modèles suivants ont été benchmarkés, par ordre alphabétique :

Modèle Paramètres Quantification Notes
devstral-small-2:24b 24B Q4_K_M Orienté code
glm-4.7-flash 30B Q4_K_M Modèle de raisonnement
gpt-oss:20b 20B Q4_K_M Le plus rapide globalement
gpt-oss:120b 120B Q4_K_M Le plus grand testé
ministral-3:14b 14B Q4_K_M Modèle efficace de Mistral
mistral-small3.2:24b 24B Q4_K_M Qualité linguistique forte
nemotron-3-nano:30b 30B Q4_K_M Offre de NVIDIA
qwen3:14b 14B Q4_K_M Meilleur suivi des instructions
qwen3.5:9b 9B Q4_K_M Rapide, entièrement GPU
qwen3.5:9b-q8_0 9B Q8_0 Qualité supérieure, entièrement GPU
qwen3.5:27b 27B Q4_K_M Qualité excellente, lent sur Ollama
qwen3-vl:30b-a3b 30B Q4_K_M Capacité visuelle
qwen3-coder:30b 30B Q4_K_M Orienté code
qwen3.5:35b 35B Q4_K_M Bonnes capacités de codage

Pour télécharger n’importe quel modèle :

ollama pull gpt-oss:20b
ollama pull qwen3:14b

Comprendre l’offloading CPU

Lorsque les exigences mémoire d’un modèle dépassent la VRAM disponible, Ollama distribue automatiquement les couches du modèle entre le GPU et la RAM système. La sortie affiche cela sous forme de pourcentage comme “18%/82% CPU/GPU”.

Cela a des implications massives sur les performances. Chaque génération de token nécessite un transfert de données entre la mémoire CPU et GPU — un goulot d’étranglement qui s’accumule à chaque couche offloadée vers le CPU.

Le schéma est clair d’après nos résultats :

  • Modèles 100% GPU : 61-140 tokens/sec
  • Modèles 70-82% GPU : 19-51 tokens/sec
  • 22% GPU (principalement CPU) : 12.6 tokens/sec

Cela explique pourquoi un modèle de 20B paramètres peut surpasser un modèle de 120B d’un facteur 11 en pratique. Si vous prévoyez de servir plusieurs requêtes concurrentes, comprendre comment Ollama gère les requêtes parallèles devient essentiel pour la planification de la capacité.

Résultats détaillés du benchmark

Modèles fonctionnant à 100% sur GPU

GPT-OSS 20B — Le champion de la vitesse

ollama run gpt-oss:20b --verbose
/set parameter num_ctx 19000

NAME           SIZE     PROCESSOR    CONTEXT
gpt-oss:20b    14 GB    100% GPU     19000

eval count:           2856 token(s)
eval duration:        20.410517947s
eval rate:            139.93 tokens/s

À 139.93 tokens/sec, GPT-OSS 20B est le gagnant clair pour les applications critiques en termes de vitesse. Il n’utilise que 14 Go de VRAM, laissant de la marge pour des fenêtres de contexte plus grandes ou d’autres charges de travail GPU.

Qwen3 14B — Équilibre excellent

ollama run qwen3:14b --verbose
/set parameter num_ctx 19000

NAME         SIZE     PROCESSOR    CONTEXT
qwen3:14b    12 GB    100% GPU     19000

eval count:           3094 token(s)
eval duration:        50.020594575s
eval rate:            61.85 tokens/s

Qwen3 14B offre le meilleur suivi des instructions selon mon expérience, avec une empreinte mémoire confortable de 12 Go. À 61.85 tokens/sec, il est suffisamment réactif pour une utilisation interactive.

Pour les développeurs intégrant Qwen3 dans des applications, consultez Sortie structurée LLM avec Ollama et Qwen3 pour extraire des réponses JSON structurées.

Ministral 3 14B — Rapide et compact

ollama run ministral-3:14b --verbose
/set parameter num_ctx 19000

NAME               SIZE     PROCESSOR    CONTEXT
ministral-3:14b    13 GB    100% GPU     19000

eval count:           1481 token(s)
eval duration:        21.11734277s
eval rate:            70.13 tokens/s

Le modèle plus petit de Mistral délivre 70.13 tokens/sec tout en tenant entièrement dans la VRAM. Un choix solide lorsque vous avez besoin de la qualité de la famille Mistral à vitesse maximale.

qwen3.5:9b - rapide et nouveau

ollama run  qwen3.5:9b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME          ID              SIZE      PROCESSOR    CONTEXT
qwen3.5:9b    6488c96fa5fa    9.3 GB    100% GPU     19000

eval count:           3802 token(s)
eval duration:        41.830174597s
eval rate:            90.89 tokens/s

qwen3.5:9b-q8_0 - quantification q8

Cette quantification réduit les performances de qwen3.5:9b de 30 % par rapport à la version q4.

ollama run  qwen3.5:9b-q8_0 --verbose
/set parameter num_ctx 19000

compare weather and climate between capital cities of australia
NAME               ID              SIZE     PROCESSOR    CONTEXT
qwen3.5:9b-q8_0    441ec31e4d2a    13 GB    100% GPU     19000

eval count:           3526 token(s)
eval duration:        57.595540159s
eval rate:            61.22 tokens/s

Modèles nécessitant un offloading CPU

qwen3-coder:30b - le plus rapide de l’ensemble des LLM 30b car text-only

ollama run qwen3-coder:30b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME               ID              SIZE     PROCESSOR          CONTEXT
qwen3-coder:30b    06c1097efce0    20 GB    25%/75% CPU/GPU    19000
22%/605%

eval count:           559 token(s)
eval duration:        9.77768875s
eval rate:            57.17 tokens/s

Qwen3-VL 30B — Meilleures performances partiellement offloadées

ollama run qwen3-vl:30b-a3b-instruct --verbose
/set parameter num_ctx 19000

NAME                         SIZE     PROCESSOR          CONTEXT
qwen3-vl:30b-a3b-instruct    22 GB    30%/70% CPU/GPU    19000

eval count:           1450 token(s)
eval duration:        28.439319709s
eval rate:            50.99 tokens/s

Malgré 30 % des couches sur le CPU, Qwen3-VL maintient 50.99 tokens/sec — plus rapide que certains modèles 100% GPU. La capacité visuelle ajoute de la polyvalence pour les tâches multimodales.

Mistral Small 3.2 24B — Compromis Qualité vs Vitesse

ollama run mistral-small3.2:24b --verbose
/set parameter num_ctx 19000

NAME                    SIZE     PROCESSOR          CONTEXT
mistral-small3.2:24b    19 GB    18%/82% CPU/GPU    19000

eval count:           831 token(s)
eval duration:        44.899859038s
eval rate:            18.51 tokens/s

Mistral Small 3.2 offre une qualité linguistique supérieure mais paie une pénalité de vitesse sévère. À 18.51 tokens/sec, il se sent nettement plus lent pour le chat interactif. Cela vaut le coup pour les tâches où la qualité prime sur la latence.

GLM 4.7 Flash — Modèle MoE de raisonnement

ollama run glm-4.7-flash --verbose
/set parameter num_ctx 19000

NAME                 SIZE     PROCESSOR          CONTEXT
glm-4.7-flash        21 GB    27%/73% CPU/GPU    19000

eval count:           2446 token(s)
eval duration:        1m12.239164004s
eval rate:            33.86 tokens/s

GLM 4.7 Flash est un modèle Mixture of Experts 30B-A3B — 30B de paramètres totaux avec seulement 3B actifs par token. En tant que modèle de “raisonnement”, il génère un raisonnement interne avant les réponses. Les 33.86 tokens/sec incluent les tokens de raisonnement et de sortie. Malgré l’offloading CPU, l’architecture MoE le garde raisonnablement rapide.

qwen3.5:35b - Nouveau modèle avec de bonnes performances d’auto-hébergement

ollama run qwen3.5:35b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME           ID              SIZE     PROCESSOR          CONTEXT
qwen3.5:35b    4af949f8bdf0    27 GB    43%/57% CPU/GPU    19000

eval count:           3418 token(s)
eval duration:        2m45.458926548s
eval rate:            20.66 tokens/s

GPT-OSS 120B — Le poids lourd

ollama run gpt-oss:120b --verbose
/set parameter num_ctx 19000

NAME            SIZE     PROCESSOR          CONTEXT
gpt-oss:120b    66 GB    78%/22% CPU/GPU    19000

eval count:           5008 token(s)
eval duration:        6m36.168233066s
eval rate:            12.64 tokens/s

Exécuter un modèle de 120B sur 16 Go de VRAM est techniquement possible mais douloureux. Avec 78 % sur le CPU, les 12.64 tokens/sec rendent l’utilisation interactive frustrante. Mieux adapté au traitement par lots où la latence n’a pas d’importance.

qwen3.5:27b - Intelligent mais lent sur Ollama

ollama run qwen3.5:27b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME           ID              SIZE     PROCESSOR          CONTEXT
qwen3.5:27b    193ec05b1e80    24 GB    43%/57% CPU/GPU    19000

eval count:           3370 token(s)
eval duration:        8m40.087510281s
eval rate:            6.48 tokens/s

J’ai testé qwen3.5:27b et obtenu un avis extrêmement positif sur les performances de ce modèle avec OpenCode. Il est très capable, érudit, excellent en appel d’outils, bien qu’il soit lent sur ma machine sur Ollama. J’ai essayé d’autres plateformes d’auto-hébergement de LLM, et obtenu des vitesses beaucoup plus élevées. Je crois que c’est le moment de laisser Ollama de côté. J’en écrirai un peu plus à ce sujet plus tard.

Recommandations pratiques

Pour le chat interactif

Utilisez des modèles qui tiennent à 100 % dans la VRAM :

  1. GPT-OSS 20B — Vitesse maximale (139.93 t/s)
  2. Ministral 3 14B — Bonne vitesse avec la qualité Mistral (70.13 t/s)
  3. Qwen3 14B — Meilleur suivi des instructions (61.85 t/s)

Pour une meilleure expérience de chat, envisagez Interfaces de chat open-source pour Ollama local.

Pour le traitement par lots

Ceci est encore, sur mon équipement - 14 Go de VRAM.

Lorsque la vitesse est moins critique :

  • Mistral Small 3.2 24B — Qualité linguistique supérieure
  • Qwen3-VL 30B — Capacité Vision + Texte

Lorsque la vitesse n’est pas du tout critique :

  • Qwen3.5:35b - Bonnes capacités de codage
  • Qwen3.5:27b - Extrêmement bon, mais lent sur Ollama. J’ai eu beaucoup de succès à héberger ce modèle sur llama.cpp cependant.

Pour le développement et le codage

Si vous construisez des applications avec Ollama :

Options d’hébergement alternatives

Si les limitations d’Ollama vous préoccupent (voir Préoccupations concernant la dégradation d’Ollama), explorez d’autres options dans le Guide d’hébergement local de LLM ou comparez Docker Model Runner vs Ollama.

Conclusion

Avec 16 Go de VRAM, vous pouvez exécuter des LLM capables à des vitesses impressionantes — si vous choisissez judicieusement. Les conclusions clés :

  1. Restez dans les limites de la VRAM pour une utilisation interactive. Un modèle de 20B à 140 tokens/sec bat un modèle de 120B à 12 tokens/sec pour la plupart des usages pratiques.

  2. GPT-OSS 20B gagne sur la vitesse pure, mais Qwen3 14B offre le meilleur équilibre entre vitesse et capacités pour les tâches de suivi des instructions.

  3. L’offloading CPU fonctionne mais attendez-vous à des ralentissements de 3-10x. Acceptable pour le traitement par lots, frustrant pour le chat.

  4. La taille du contexte compte. Le contexte de 19K utilisé ici augmente significativement l’utilisation de la VRAM. Réduisez le contexte pour une meilleure utilisation du GPU.

Pour une recherche alimentée par l’IA combinant des LLM locaux avec des résultats web, consultez auto-hébergement de Perplexica avec Ollama.

Pour explorer plus de benchmarks, compromis VRAM et débit, et réglage des performances sur Ollama et d’autres runtimes, consultez notre hub Performances des LLM : Benchmarks, Goulets d’étranglement & Optimisation.

Liens utiles

Ressources internes

Références externes

S'abonner

Recevez de nouveaux articles sur les systèmes, l'infrastructure et l'ingénierie IA.