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

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

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

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

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

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

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

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

Модель Размер 19K VRAM 19K GPU/CPU 19K T/s 32K VRAM 32K Загрузка 32K T/s 64K VRAM 64K Загрузка 64K: T/s
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
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. Если вы видите низкое число в этой колонке, это означает, что модель работает преимущественно на CPU и не может обеспечить достойную скорость на этом оборудовании. Эта закономерность соответствует тому, что люди наблюдают, когда модель не полностью помещается в VRAM, либо когда контекст выталкивает вычисления обратно на хост.

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

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

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

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

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

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

При переходе от 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: 300 МБ

Дополнительные запуски с контекстом 128K (Qwen3.5 27B и 122B)

Модель 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

Запуски с тонкой настройкой

Для некоторых интересных моделей и квантований я пытался найти специальные параметры командной строки 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 на 16 ГБ VRAM, но gemma-4-26B может быть приемлемой… нужно протестировать.
  • Нужно протестировать, насколько хорошо работают Nemotron cascade 2 и GLM-4.7 Flash REAP 23B. Будут ли они лучше, чем Qwen3.5-35B q3? Я сомневаюсь, но все же стоит проверить, чтобы подтвердить или опровергнуть подозрения.