Benchmarks de 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 LLMs exécutés sur un GPU avec 16 Go de VRAM, et je choisis le meilleur pour l’auto-hébergement.
J’ai exécuté ces LLMs sur 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 performance en termes de vitesse.
Tableau de comparaison de vitesse des LLMs (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.6-35B-A3B-UD-IQ3_XXS | 13.2 | 13.8GB | 96%/100% | 147.5 | 14.0GB | 96%/101% | 149.1 | 14.7GB | 96%/101% | 145.8 |
| Qwen3.6-35B-A3B-UD-IQ4_XS | 17.7 | 14.3GB | 62%/266% | 95.0 | 14.9GB | 58%/279% | 92.3 | 14.9GB | 57%/293% | 86.4 |
| Qwen3.5-35B-A3B-UD-IQ3_S | 13.6 | 14.3GB | 93%/100% | 136.4 | 14.6GB | 93%/100% | 138.5 | 14.9GB | 88%/115% | 136.8 |
| Qwen3.5-27B-IQ3_XXS-bartowsky | 11.3 | 12.8 | 98/100 | 44.9 | 13.5 | 98/100 | 44.9 | 14.5 | 45/415 | 23.6 |
| 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 |
| Qwen3-Coder-Next-UD-IQ4_XS | 38.4 | 14.6 | 32/460 | 41.1 | 14.7 | 29/440 | 41.3 | 14.8 | 32/460 | 38.3 |
| Nemotron Super 120b IQ3_XXS | 56.2 | 15.0 | 26/517 | 17.5 | 14.6 | 26/531 | 17.4 | 14.6 | 26/535 | 17.6 |
| 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 correspondent aux tailles de contexte.
La charge ci-dessus désigne la Charge GPU.
Si vous voyez un chiffre bas dans cette colonne, cela signifie que le modèle s’exécute principalement sur le CPU et ne peut pas atteindre 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, de la performance des LLMs, OpenCode et autres comparaisons
Si vous souhaitez connaître les chemins d’installation, les exemples llama-cli et llama-server, ainsi que les drapeaux (flags) importants pour la VRAM et les tokens par seconde (taille de contexte, regroupement, -ngl), commencez par llama.cpp Quickstart avec CLI et Server.
Pour une vue d’ensemble plus large sur la performance (débit versus latence, limites de VRAM, requêtes parallèles et comment les benchmarks s’articulent selon le matériel et les runtime), consultez LLM Performance en 2026 : Benchmarks, Goulots d’étranglement & Optimisation.
La qualité des réponses est analysée dans d’autres articles, par exemple :
- Meilleurs LLMs pour OpenCode - Testés localement. Vous pouvez en savoir plus sur Opencode dans OpenCode Quickstart : Installation, Configuration et Utilisation de l’Agent de Codage IA en Terminal
- Comparaison de la qualité de traduction de page Hugo - LLMs sur Ollama
J’ai également effectué des tests similaires pour les LLMs sur Ollama : Meilleurs LLMs pour Ollama sur GPU 16GB VRAM.
Pourquoi la longueur du contexte change les tokens par seconde
Lorsque vous passez de 19K à 32K ou 64K tokens, le cache KV s’agrandit et la pression sur la VRAM augmente. Certaines lignes montrent une baisse importante des tokens par seconde à 64K tandis que d’autres restent stables ; c’est le signal qu’il faut reconsidérer les quantifications, les limites de contexte ou le déchargement des 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 de tester sont destinés à être exécutés par moi-même pour voir s’ils offrent un bon gain en termes de rapport coût/avantage 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 le déchargement des couches 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 l’ajuste pas finement ici ; il suffit de comprendre que s’il y a une baisse significative de performance 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 finement le nombre de couches déchargées.
Matériel de test et configuration de llama.cpp
J’ai testé la vitesse des LLMs sur un PC avec cette configuration :
- CPU i-14700
- RAM 64GB 6000Hz (2x32GB)
- GPU RTX-4080
- Ubuntu avec pilotes NVidia
- llama.cpp/llama-cli, aucune couche déchargée spécifiée
- VRAM initiale utilisée, avant le démarrage de llama-cli : 300MB
Tests supplémentaires à 128K de contexte (Qwen3.5 27B et 122B)
| Modèle | 128K Charge | 128K: T/s |
|---|---|---|
| Qwen3.5-27B-UD-IQ3_XXS | 16/625 | 9.6 |
| Qwen3.5-122B-A10B-UD-IQ3_XXS | 27/496 | 19.2 |
Exécutés avec réglages finaux
Pour certains modèles et quantifications intéressants, j’ai essayé de trouver des paramètres de ligne de commande spécifiques à llama-cpp pour mieux exploiter 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 |
Conclusions pour les builds 16 GB VRAM
- Mon favori actuel, Qwen3.5-27B-UD-IQ3_XXS, se comporte bien sur sa zone idéale de 50k de contexte (j’obtiens environ 36t/s).
- Qwen3.5-122B-A10B-UD-IQ3_XXS dépasse en termes de performance le Qwen3.5 27B sur les contextes supérieurs à 64K.
- Je peux pousser Qwen3.5-35B-A3B-UD-IQ3_S pour qu’il gère un contexte de 100k tokens, et il rentre dans la VRAM, donc pas de baisse de performance.
- Je n’utiliserai pas gemma-4-31B sur 16GB 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.