Benchmarks LLM avec 16 Go de VRAM utilisant llama.cpp (vitesse et contexte)
Vitesse de génération de tokens de llama.cpp sur 16 Go de VRAM (tableaux).
Voici, je compare la vitesse de plusieurs LLM tournant sur un GPU avec 16 Go de VRAM, et je choisis le meilleur pour l’auto-hébergement.
J’ai exécuté ces LLM avec llama.cpp avec des fenêtres de contexte de 19K, 32K et 64K tokens.

Dans cet article, je consigne mes tentatives pour extraire le maximum de performances en termes de vitesse.
Tableau comparatif de la vitesse des LLM (tokens par seconde et VRAM)
| Modèle | Taille | 19K VRAM | 19K GPU/CPU | 19K T/s | 32K VRAM | 32K Charge | 32K T/s | 64K VRAM | 64K Charge | 64K T/s |
|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3.5-35B-A3B-UD-IQ3_S | 13.6 | 14.3 Go | 93%/100% | 136.4 | 14.6 Go | 93%/100% | 138.5 | 14.9 Go | 88%/115% | 136.8 |
| Qwen3.5-27B-UD-IQ3_XXS | 11.5 | 12.9 | 98/100 | 45.3 | 13.7 | 98/100 | 45.1 | 14.7 | 45/410 | 22.7 |
| Qwen3.5-27B-IQ4_XS.gguf | 15.0 | 14.6 | 49/406 | 20.5 | 14.7 | 37/465 | 17.4 | 14.7 | 23/533 | 13.3 |
| Qwen3.5-122B-A10B-UD-IQ3_XXS | 44.7 | 14.7 | 30/470 | 22.3 | 14.7 | 30/480 | 21.8 | 14.7 | 28/490 | 21.5 |
| Qwen3.5-122B-A10B-UD-IQ3_S | 46.5 | 14.7 | 25/516 | 19.4 | 14.7 | 24/516 | 19.5 | 14.7 | 24/516 | 19.6 |
| nvidia Nemotron-Cascade-2-30B IQ4_XS | 18.2 | 14.6 | 60/305 | 115.8 | 14.7 | 57/311 | 113.6 | 14.7 | 55/324 | 103.4 |
| gemma-4-26B-A4B-it-UD-IQ4_XS | 13.4 | 14.7 | 95/100 | 121.7 | 14.9 | 95/115 | 114.9 | 14.9 | 75/190 | 96.1 |
| gemma-4-31B-it-UD-IQ3_XXS | 11.8 | 14.8 | 68/287 | 29.2 | 14.8 | 41/480 | 18.4 | 14.8 | 18/634 | 8.1 |
| GLM-4.7-Flash-IQ4_XS | 16.3 | 15.0 | 66/240 | 91.8 | 14.9 | 62/262 | 86.1 | 14.9 | 53/313 | 72.5 |
| GLM-4.7-Flash-REAP-23B IQ4_XS | 12.6 | 13.7 | 92/100 | 122.0 | 14.4 | 95/102 | 123.2 | 14.9 | 71/196 | 97.1 |
19K, 32K et 64K sont les tailles de contexte.
La charge ci-dessus est une Charge GPU.
Si vous voyez un nombre faible dans cette colonne, cela signifie que le modèle s’exécute principalement sur le CPU et ne peut pas obtenir une vitesse décente sur ce matériel. Ce schéma correspond à ce que les gens observent lorsque trop peu du modèle tient sur le GPU ou lorsque le contexte repousse le travail vers l’hôte.
À propos de llama.cpp, des performances des LLM, d’OpenCode et d’autres comparaisons
Si vous souhaitez connaître les chemins d’installation, des exemples pour llama-cli et llama-server, ainsi que les drapeaux importants pour la VRAM et les tokens par seconde (taille de contexte, batch, -ngl), commencez par llama.cpp Quickstart avec CLI et Server.
Pour une vue d’ensemble plus large des performances (débit par rapport à la latence, limites de VRAM, requêtes parallèles et comment les benchmarks s’articulent entre le matériel et les environnements d’exécution), consultez Performances des LLM en 2026 : Benchmarks, Goulottes et Optimisation.
La qualité de la réponse est analysée dans d’autres articles, par exemple :
- Meilleurs LLM pour OpenCode - Testés localement. Vous pouvez en lire plus sur Opencode dans OpenCode Quickstart : Installation, Configuration et Utilisation de l’Agent de Codage IA Terminal
- Comparaison de la qualité de traduction de pages Hugo - LLMs sur Ollama
J’ai également effectué des tests similaires pour les LLM sur Ollama : Meilleurs LLM pour Ollama sur GPU 16 Go VRAM.
Pourquoi la longueur du contexte change les tokens par seconde
Lorsque vous passez de 19K à 32K ou 64K tokens, le cache KV grandit et la pression sur la VRAM augmente. Certaines lignes montrent une forte baisse des tokens par seconde à 64K tandis que d’autres restent stables, ce qui est le signal pour réviser les quantifications, les limites de contexte ou l’offloading de couches plutôt que de supposer que le modèle est « lent » en général.
Les modèles et quantifications que j’ai choisis pour tester sont destinés à être exécutés par moi-même afin de voir s’ils offrent un bon gain en termes de rapport coût/bénéfice sur cet équipement ou non. Donc, pas de quantifications q8 ici avec un contexte de 200k :) …
GPU/CPU est une charge, mesurée par nvitop.
Lorsque llama.cpp configure automatiquement les couches pour les décharger vers le GPU, il essaie de garder 1 Go libre.
Nous spécifions manuellement ce paramètre via le paramètre de ligne de commande -ngl, mais je ne le régle pas finement ici,
il suffit de comprendre que s’il y a une baisse significative des performances lors de l’augmentation de la taille de la fenêtre de contexte de 32k à 64k, nous pouvons essayer d’augmenter la vitesse à 64k en ajustant le nombre de couches déchargées.
Matériel de test et configuration llama.cpp
J’ai testé la vitesse des LLM sur un PC avec cette configuration :
- CPU i-14700
- RAM 64 Go 6000Hz (2x32 Go)
- GPU RTX-4080
- Ubuntu avec pilotes NVidia
- llama.cpp/llama-cli, aucune couche déchargée spécifiée
- VRAM initiale utilisée, avant de démarrer llama-cli : 300 Mo
Lancers supplémentaires à 128K de contexte (Qwen3.5 27B et 122B)
| Modèle | Charge 128K | 128K T/s |
|---|---|---|
| Qwen3.5-27B-UD-IQ3_XXS | 16/625 | 9.6 |
| Qwen3.5-122B-A10B-UD-IQ3_XXS | 27/496 | 19.2 |
Lancers avec réglage fin (Finetuned Runs)
Pour certains modèles et quantifications intéressants, j’ai essayé de trouver des paramètres de ligne de commande llama-cpp spécifiques pour mieux utiliser la VRAM. Voici ce que j’ai pu obtenir :
| Modèle | Contexte | Couches sur GPU | Charge CPU/CPU | Vitesse |
|---|---|---|---|---|
| Qwen3.5-27B-IQ4_XS.gguf | 18k | 65 | 98%/100% | 38.0 |
| Qwen3.5-27B-IQ4_XS.gguf | 64k | 53 | 33%/488% | 15.7 |
Principales conclusions pour les builds 16 Go VRAM
- Mon favori actuel Qwen3.5-27B-UD-IQ3_XXS se comporte bien sur son point optimal de contexte 50k (je obtiens environ 36t/s)
- Qwen3.5-122B-A10B-UD-IQ3_XXS dépasse en termes de performances le Qwen3.5 27B sur les contextes supérieurs à 64K.
- Je peux pousser Qwen3.5-35B-A3B-UD-IQ3_S à gérer un contexte de 100k tokens, et il tient dans la VRAM, donc pas de baisse de performance.
- Je n’utiliserai pas gemma-4-31B sur 16 Go VRAM, mais gemma-4-26B pourrait être moyen-bien…, il faut tester.
- Il faut tester à quel point Nemotron cascade 2 et GLM-4.7 Flash REAP 23B fonctionnent. Seront-ils meilleurs que Qwen3.5-35B q3 ? J’en doute, mais je vais tout de même tester pour confirmer le soupçon.