llamacpp Inference Speed Calculator

Пресеты GPU:
GPU
RTX 3070 = 448, RTX 4090 = 1008, H100 = 3350
llama.cpp: CUDA-контекст + compute buffer. Влияет на макс. контекст
Модель
GGUF: general.size_label "4B". Нужен только для Auto-оценки веса
Реальный вес .gguf (файлы Q4≈2.81, Q8≈4.31). Auto = params × bpw/8 — занижает: эмбеддинги/lm_head в F16
GGUF: general.file_type (Q4_K_M). Влияет на скорость только через вес модели
Контекст
Длина промпта для расчёта VRAM
GGUF: qwen35.context_length — верхняя граница архитектуры (не память)
KV Cache
llama.cpp квантует KV cache отдельно от модели. Дефолт llama.cpp = F16. По замерам: Qwen(F16), Nanbeige(F32)
2 × nKV_layers × n_kv_head × head_dim × bytes_per_value. Считается автоматически из раздела «Архитектура» и кванта KV
Архитектура (из GGUF: qwen35.*)
Заполнено под Qwen3.5-4B. Значения берутся из метаданных модели (llama-cli -m model.gguf).
GGUF: qwen35.embedding_length / config.json: hidden_size
GGUF: qwen35.block_count — всего слоёв трансформера
GGUF: qwen35.attention.head_count
GGUF: qwen35.attention.head_count_kv. GQA: обычно < n_head
Сколько из n_layers реально держат KV-кэш. Обычный dense: = n_layers. Гибрид (SSM): только слои полного attention. Qwen3.5: full_attention_interval=4 → слой 0,4,8...32 = 9
GGUF: qwen35.attention.key_length. Auto = embedding_length / n_head (для GQA-моделей обычно ≠, ставь из меты)
GGUF: qwen35.num_loops (есть только у loop-архитектур, напр. nanbeige=2). Обычный dense = 1
Дополнительно
Фиксированные затраты на токен: 1/89.11 − 2.806/448 ≈ 5 мс (RTX 3070)
n_head / n_kv_head
Формулы:
время/токен = num_loops × вес_модели ÷ bandwidth + оверхед
т/с = 1000 ÷ время/токен
KV/токен = 2 × KV_слоёв × n_kv_head × head_dim × байт(KV_quant)
макс.ctx = (vram − вес_модели − резерв) × 2³⁰ ÷ KV/токен
Результаты
--
Генерация (ток/с)
--
Prefill (ток/с)
--
Макс. контекст по VRAM
--
Модель в VRAM
--
KV кэш в VRAM
--
Время на токен
Детали расчёта