Бенчмарки LLM с 16 ГБ VRAM в llama.cpp (скорость и контекст)

Скорость генерации токенов llama.cpp на 16 ГБ VRAM (таблицы).

Содержимое страницы

Здесь я сравниваю скорость нескольких LLM, работающих на GPU с 16 ГБ видеопамяти, и выбираю лучшую для самохостинга.

Я запускал эти LLM в llama.cpp с окнами контекста в 19K, 32K и 64K токенов.

Стилизованное изображение GPU с блоками VRAM и графиками в стиле бенчмарков

В этой статье я документирую свои попытки выжать как можно больше производительности в плане скорости.

Таблица сравнения скорости LLM (токенов в секунду и VRAM)

Модель Размер 19K VRAM 19K GPU/CPU 19K T/s 32K VRAM 32K Load 32K T/s 64K VRAM 64K Load 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
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 помещается слишком малая часть модели или когда контекст вытесняет вычисления на хост (CPU).

О llama.cpp, производительности LLM, OpenCode и других сравнениях

Если вам нужны пути установки, примеры llama-cli и llama-server, а также флаги, влияющие на VRAM и количество токенов в секунду (размер контекста, батчинг, -ngl), начните со статьи Быстрый старт llama.cpp с CLI и Server.

Для более общей картины производительности (пропускная способность против задержки, лимиты VRAM, параллельные запросы и то, как бенчмарки соотносятся между собой на разных аппаратных платформах и рантаймах), см. Производительность LLM в 2026 году: бенчмарки, узкие места и оптимизация.

Качество ответов анализируется в других статьях, например:

Я также проводил похожие тесты для LLM на Ollama: Лучшие LLM для Ollama на GPU с 16GB VRAM.

Если вы запускаете Qwen 3.6 27B или 35B через llama.cpp и хотите увеличить скорость генерации, см. Qwen 3.6 MTP против стандартной декодировки на GPU с 16GB — MTP спекулятивное декодирование добавляет до 67 % к пропускной способности генерации для 27B плотной модели, с таблицами, показывающими затраты VRAM и компромисс с окном контекста на каждом уровне --spec-draft-n-max.

Почему длина контекста меняет количество токенов в секунду

По мере перехода с 19K на 32K или 64K токенов кэш KV растет, и давление на VRAM увеличивается. В некоторых строках наблюдается значительное падение количества токенов в секунду при 64K, тогда как в других оно остается стабильным, что является сигналом пересмотреть квантование, лимиты контекста или оффлоад слоев, а не считать модель «медленной» в целом. За формулами за этими цифрами — точной формулой для байт KV на токен, таблицами типов кэша на 32K/64K/128K и тем, как рассчитать свой запас прочности, — см. KV Cache на GPU с 16 ГБ: как действительно уместить длинный контекст.

Модели и квантование, которые я выбрал для тестирования, — это то, что я запускаю сам, чтобы увидеть, дают ли они хороший прирост в смысле соотношения цена/качество на этом оборудовании или нет. Так что здесь нет k8 квантов с контекстом 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 Load 128K: T/s
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 load Скорость
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 GB VRAM

  • Мой текущий фаворит Qwen3.5-27B-UD-IQ3_XXS выглядит хорошо в своей «сладкой точке» — контексте 50k (я получаю примерно 36t/s)
  • 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? Я сомневаюсь, но все равно, стоит протестировать, чтобы подтвердить подозрения.
  • О том, почему диапазон 25–34B становится стандартом де-факто в 2026 году, когда у вас есть 24 ГБ, и почему Qwen3.8-27B в формате Q4 не подходит для этой карты на 16 ГБ, см. Эффективная граница открытых моделей в 2026 году.

Подписаться

Получайте новые материалы про системы, инфраструктуру и AI engineering.