Бенчмарки LLM с 16 ГБ видеопамяти с использованием llama.cpp (скорость и контекст)
скорость обработки токенов llama.cpp на 16 ГБ VRAM (таблицы).
В этом посте я сравниваю скорость работы нескольких больших языковых моделей (LLM) на GPU с 16 ГБ видеопамяти (VRAM) и выбираю лучшую для самостоятельного хостинга.
Я запускал эти LLM через llama.cpp с размерами контекстного окна 19K, 32K и 64K токенов.
Стилизованный GPU с блоками VRAM и диаграммами в стиле бенчмарков
В этом посте я фиксирую свои попытки выжать максимальную производительность в плане скорости.
Таблица сравнения скорости LLM (токенов в секунду и VRAM)
| Модель | Размер | 19K VRAM | 19K GPU/CPU | 19K Т/с | 32K VRAM | 32K Нагрузка | 32K Т/с | 64K VRAM | 64K Нагрузка | 64K: Т/с |
|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3.6-35B-A3B-UD-IQ3_XXS | 13.2 | 13.8 ГБ | 96%/100% | 147.5 | 14.0 ГБ | 96%/101% | 149.1 | 14.7 ГБ | 96%/101% | 145.8 |
| Qwen3.6-35B-A3B-UD-IQ4_XS | 17.7 | 14.3 ГБ | 62%/266% | 95.0 | 14.9 ГБ | 58%/279% | 92.3 | 14.9 ГБ | 57%/293% | 86.4 |
| Qwen3.5-35B-A3B-UD-IQ3_S | 13.6 | 14.3 ГБ | 93%/100% | 136.4 | 14.6 ГБ | 93%/100% | 138.5 | 14.9 ГБ | 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 |
| Mistral-Small-4-119B UD-IQ3_XXS | 42.8 | 14.8 | 28/585 | 30.4 | 14.7 | 27/574 | 28.5 | 14.9 | 20/590 | 31.5 |
| 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 и 64K — это размеры контекста.
load (нагрузка) выше — это GPU Load (нагрузка на GPU).
Если вы видите низкое число в этом столбце, это означает, что модель работает преимущественно на CPU и не может обеспечить достойную скорость на этом оборудовании. Эта картина соответствует тому, что люди наблюдают, когда слишком малая часть модели помещается в GPU или когда контекст переносит работу обратно на процессор.
О llama.cpp, производительности LLM, OpenCode и других сравнениях
Если вам нужны пути установки, примеры llama-cli и llama-server, а также флаги, влияющие на VRAM и токены в секунду (размер контекста, батчинг, -ngl), начните с Быстрый старт llama.cpp с CLI и Server.
Для более широкой картины производительности (пропускная способность против задержки, лимиты VRAM, параллельные запросы и то, как бенчмарки соотносятся между оборудованием и средами выполнения), см. Производительность LLM в 2026 году: Бенчмарки, Узкие места и Оптимизация.
Качество ответов анализируется в других статьях, например:
- Лучшие LLM для OpenCode — Тестирование локально. Вы можете узнать больше об OpenCode в Быстрый старт OpenCode: Установка, Настройка и Использование Терминального AI Агента для Кодирования
- Сравнение качества перевода страниц Hugo — LLM на Ollama
Я также провел аналогичные тесты для LLM на Ollama: Лучшие LLM для Ollama на GPU с 16GB VRAM.
Если вы запускаете Qwen 3.6 27B или 35B через llama.cpp и хотите дальше ускорить генерацию, см. Qwen 3.6 MTP vs Стандартное декодирование на GPU 16GB — спекулятивное декодирование MTP добавляет до 67% пропускной способности генерации для плотной модели 27B, с таблицами, показывающими стоимость VRAM и компромисс окна контекста на каждом уровне --spec-draft-n-max.
Почему длина контекста меняет количество токенов в секунду
При переходе от 19K к 32K или 64K токенам кэш KV растет, и давление на VRAM увеличивается. В некоторых строках наблюдается значительное падение количества токенов в секунду при 64K, в то время как другие остаются стабильными, что служит сигналом к пересмотру квантования, лимитов контекста или разгрузки слоев, а не к предположению, что модель «медленная» в целом.
Модели и квантования, которые я выбрал для тестирования, — это те, что я запускаю сам, чтобы увидеть, дают ли они хороший прирост в смысле соотношения цена/качество на этом оборудовании или нет. Поэтому здесь нет q8 квантований с контекстом 200k :) …
GPU/CPU — это нагрузка, измеряемая nvitop.
llama.cpp, автоматически настраивая разгрузку слоев на GPU, пытается оставить 1 ГБ свободными.
Мы можем указать этот параметр вручную через параметр командной строки -ngl, но здесь я не делаю тонкую настройку,
просто хочу понять, что если при увеличении размера контекстного окна с 32k до 64k происходит значительное падение производительности, мы можем попробовать увеличить скорость на 64k путем тонкой настройки количества разгруженных слоев.
Тестовое оборудование и настройка llama.cpp
Я тестировал скорость LLM на ПК с такой конфигурацией:
- CPU i-14700
- RAM 64GB 6000Hz (2x32GB)
- GPU RTX-4080
- Ubuntu с драйверами NVidia
- llama.cpp/llama-cli, без указания разгруженных слоев
- Начальное использование VRAM до запуска llama-cli: 300MB
Дополнительные прогоны с контекстом 128K (Qwen3.5 27B и 122B)
| Модель | 128K Нагрузка | 128K: Т/с |
|---|---|---|
| Qwen3.5-27B-UD-IQ3_XXS | 16/625 | 9.6 |
| Qwen3.5-122B-A10B-UD-IQ3_XXS | 27/496 | 19.2 |
Прогоны с тонкой настройкой
Для некоторых интересных моделей и квантований я попытался найти специальные параметры командной строки llama-cpp, чтобы лучше использовать VRAM. Вот чего мне удалось достичь:
| Модель | Контекст | Слои на GPU | Нагрузка CPU/CPU | Скорость |
|---|---|---|---|---|
| Qwen3.5-27B-IQ4_XS.gguf | 18k | 65 | 98%/100% | 38.0 |
| Qwen3.5-27B-IQ4_XS.gguf | 64k | 53 | 33%/488% | 15.7 |
Выводы для сборок с 16 ГБ VRAM
- Мой текущий фаворит Qwen3.5-27B-UD-IQ3_XXS выглядит хорошо в своей оптимальной точке контекста 50k (я получаю примерно 36 т/с)
- Qwen3.5-122B-A10B-UD-IQ3_XXS превосходит по производительности Qwen3.5 27B на контекстах выше 64K.
- Я могу заставить Qwen3.5-35B-A3B-UD-IQ3_S обрабатывать контекст в 100k токенов, и он помещается в VRAM, поэтому падения производительности нет
- Я не буду использовать gemma-4-31B на 16GB VRAM, но gemma-4-26B может быть… средне-хорошо…, нужно протестировать.
- Нужно протестировать, насколько хорошо работают Nemotron cascade 2 и GLM-4.7 Flash REAP 23B. Будут ли они лучше, чем Qwen3.5-35B q3? Я сомневаюсь, но все же, возможно, протестирую, чтобы подтвердить подозрение.