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

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

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

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

Я прогонял эти 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
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. Если в этом столбце вы видите низкое значение — это означает, что модель работает преимущественно на CPU и не может обеспечить приличную скорость на этом оборудовании. Эта закономерность соответствует тому, что пользователи видят, когда на GPU помещается слишком мало модели или когда увеличение контекста вытесняет работу на системную память (host).

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

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

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

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

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

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

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

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

Модели и кванты, которые я выбрал для тестирования, — это те, которые я запускаю сам, чтобы проверить, дают ли они хороший прирост с точки зрения соотношения цена/польза на этом оборудовании или нет. Так что здесь нет q8-квантов с контекстом 200k :) …

Столбец GPU/CPU — это нагрузка, измеренная с помощью nvitop.

Когда llama.cpp автоматически настраивает выгрузку слоев на GPU, он пытается оставить 1 ГБ свободным. Мы можем вручную указать этот параметр через командную строку -ngl, но здесь я его не настраиваю, мне просто нужно понимать, что, если при увеличении размера контекстного окна с 32k до 64k происходит значительное падение производительности, мы можем попробовать увеличить скорость на 64k, отрегулировав количество выгруженных слоев.

Тестовое оборудование и настройка llama.cpp

Я тестировал скорость LLM на ПК со следующей конфигурацией:

  • CPU i-14700
  • RAM 64GB 6000Гц (2x32GB)
  • GPU RTX-4080
  • Ubuntu с драйверами NVidia
  • llama.cpp/llama-cli, количество выгруженных слоев не задано
  • Использованная VRAM до запуска llama-cli: 300MB

Дополнительные прогоны с контекстом 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 (я получаю примерно 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? Я сомневаюсь, но все же, возможно, стоит протестировать, чтобы подтвердить подозрения.

Подписаться

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