Бенчмарк видеокарт для нейросетей

Сколько токенов в секунду выдают видеокарты на локальных LLM — замеры на реальном железе

Сколько токенов в секунду выдаёт видеокарта для LLM на vLLM, llama.cpp и SGLang — замеры на реальном железе, одним скриптом, без округления в свою пользу. Выберите сценарий, и таблица отсортируется по той цифре, которая в нём решает.

Что важно

Скорость одного запроса без соседей и задержка до первого токена — то, что чувствует человек в чате.

Модель в фильтре и в таблице — базовая: сборки разных издателей и кванты одних весов сведены в одну строку, остальные видны в её раскрытии.

Карта / модель
Движок
Последовательная без SO
TTFT, деловой промпт (~450 ток.)
Декодирование после TTFT
RTX 5070 Ti ×2Qwen3.6-35B-A3B
Qwen3.6-35B-A3B-NVFP4 · modelopt_fp4
ctx 256k · modelopt_fp4
SGLang 0.5.17
подбор
268.90.11314 Прогон
RTX 5070 Ti ×2Qwen3.6-35B-A3B
Qwen3.6-35B-A3B-NVFP4
ctx 197k · 4 парал.
vLLM 0.27.1
подбор
259.50.19278.2 Прогон
vLLM 0.15.1
подбор
222.4 Прогон
vLLM 0.15.1
подбор
146.1 Прогон
RTX 5070 Ti 16Gb ×2Qwen3.6-27B
Qwen3.6-27B-NVFP4
ctx 32k · 8 парал.
vLLM 0.26.0
подбор
135.70.48237.8 Прогон
RTX 5070 Ti 16Gb ×2Qwen3.6-27B
Qwen3.6-27B-NVFP4 · modelopt_mixed
ctx 16k · modelopt_mixed
SGLang 0.5.16
подбор
135.40.31218 Прогон
RTX 5070 Ti 16Gb ×2Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507
ctx 16k
vLLM 0.15.1
подбор
131.7 Прогон
RTX 5070 Ti ×2Qwen3.8-27B
Qwen3.8-27B-NVFP4 и ещё 3 сборки
ctx 128k · 4 парал.
vLLM 0.27.1
подбор
125.50.17107.8 Прогон
vLLM 0.14.0
опорный
100.9 Прогон
RTX 3090 24Gb ×1Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507-GGUF:F16
ctx 40k · 10 парал.
Llama.cpp 7717
подбор
90.6 Прогон
RTX 5070 Ti 16Gb ×1Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507
ctx 16k
vLLM 0.15.1
подбор
90.4 Прогон
RTX 5070 Ti 16Gb ×2Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507-GGUF:F16
ctx 32k · 12 парал.
Llama.cpp 7973
подбор
89.7 Прогон
RTX 5070 Ti 16Gb ×1Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507-GGUF:F16
ctx 8k · 6 парал.
Llama.cpp 7973
подбор
89.5 Прогон
Tesla v100 32gb sxm2 ×1 + RTX 3090 24Gb ×1Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507-GGUF:F16
ctx 40k · 20 парал.
Llama.cpp 7717
подбор
84.6 Прогон
RTX 3090 24Gb ×1Qwen3-4B-Instruct-2507
Qwen3-4B-Instruct-2507
ctx 16k
vLLM 0.14.0
опорный
83.9 Прогон
Последовательная без SO
больше — лучше, ток/сек · по моделям, у каждой — лучший прогон
лидер быстрее худшего в ×12.0

Как проводятся замеры

Все прогоны выполнены на одном стенде и одним скриптом, поэтому цифры между собой сравнимы. Модель поднимается на выбранном движке нужной версии, затем прогоняются три сценария: одиночный запрос, пачка параллельных запросов и то же самое со структурированным выводом — ответом по JSON-схеме. Результат — токены в секунду, а не «ощущается быстрее».

Видеокарты берутся потребительские и серверные: RTX-поколения и Tesla. Связка из двух карт указана отдельно — прирост от второй карты почти никогда не двукратный, и в таблице это видно по конкретным числам.

Опорный профиль и подбор ключей

Одну и ту же модель на одном железе можно запустить десятком способов, и цифры разойдутся в полтора раза. Поэтому прогоны разделены на два вида, как в SPEC CPU. Опорный — запуск на замороженном минимальном наборе ключей; такие прогоны сравнимы между собой на любом железе. Подбор — ключи настроены под конкретную связку; число выше, но прямо сравнивать его с опорным нельзя.

vLLM
--gpu-memory-utilization 0.9, число карт задаёт --tensor-parallel-size, больше ничего.
llama.cpp
Настройки движка по умолчанию: только длина контекста, число слотов и -ngl.
SGLang
Аналогичный минимум: контекст, --tp-size, без ручных бэкендов.

Строка таблицы раскрывается в список вариантов, и в нём показаны только те ключи, которыми варианты отличаются друг от друга. Читать целиком командную строку, совпадающую на девять десятых, бессмысленно — разница в один ключ там глазами не находится.

Что означают метрики

Последовательная скорость
Токены в секунду для одного запроса без соседей. Это то, что чувствует один человек в чате.
Параллельная и пропускная
Суммарная скорость под нагрузкой из нескольких одновременных запросов. Главная цифра, когда модель обслуживает сервис, а не одного пользователя.
Без SO / с SO
Структурированный вывод: ответ, загнанный в JSON-схему. Он всегда стоит скорости — разница между парой колонок и есть цена строгого формата.
TTFT
Время до первого токена. Для интерфейса важнее пропускной способности: пользователь видит задержку до начала ответа, а не общий счётчик токенов.
Prefill и декодирование
Prefill — обработка входного промпта, декодирование — генерация после первого токена. Длинный системный промпт бьёт по prefill, длинный ответ — по декодированию.
Кэш префикса
Движок переиспользует уже посчитанное начало промпта. Если он работает, повторные запросы с одинаковым системным промптом стартуют в разы быстрее.
Нагрузка прогона
Длина контекста, число параллельных запросов и признак выгрузки слоёв на процессор. Это не настройка, а условие замера: прогон с контекстом 8k и прогон с контекстом 32k сравнивать между собой нельзя, и в таблице они стоят разными строками.

Разборы замеров

Таблица отвечает на вопрос «сколько», статьи — на вопрос «почему столько»:

Замеры по видеокартам

Частые вопросы

Собираете свой ИИ-контур?

Железо — половина дела: дальше модель нужно связать с рабочей системой. На курсе разбираем, как поднять локальную LLM и подключить её к 1С через собственный сервис.

Курс «ИИ и 1С»