🚀 Интерактивный WebApp калькулятор: ai.zxc1x1.ru/tools/vram · dangerousanen.github.io/llm-vram-calculator
📖 Подробный лонгрид с математикой и формулами: Архитектура VRAM: почему падают локальные LLM (Telegraph)
📢 Официальный инженерный канал: .llm hubs — Архитектурные шпаргалки, физика инференса, бенчмарки и разборы сорцов.
Легковесная автономная CLI-утилита без внешних зависимостей (pure Python stdlib) для:
-
Точного расчета видеопамяти (VRAM) под любую открытую модель (7B–671B): веса модели (
$M_{weights}$ ), аппетит динамического KV-кэша ($M_{kv}$ ), контекстные окна (4k–128k токенов), активации и оверхед CUDA. - Спидтеста локального и облачного инференса (vLLM, llama.cpp, Ollama, SGLang, OpenAI API) с замером TTFT (Time to First Token) и TPS (Tokens/sec).
90% сбоев при запуске локальных LLM происходят потому, что инженеры учитывают только «сухой вес» модели из репозитория Hugging Face.
Реальная видеопамять складывается из трёх слагаемых:
-
Веса (
$M_{weights}$ ):-
FP16 / BF16: ~2.0 ГБ на каждый 1B параметров -
FP8: ~1.0 ГБ на каждый 1B параметров -
Q4_K_M (GGUF): ~0.58 ГБ на каждый 1B параметров -
NVFP4: ~0.52 ГБ на каждый 1B параметров
-
-
KV-Кэш (
$M_{kv}$ ):$$M_{\text{kv}} = 2 \times \text{layers} \times \text{kv_heads} \times \text{head_dim} \times \text{bytes_per_elem} \times \text{seq_len} \times \text{batch_size}$$ На контексте 32,768 токенов в FP16 один лишь KV-кэш для 7B модели съедает 4.2 ГБ VRAM! - Оверхед CUDA: ~650–850 МБ под контекст драйвера PyTorch / CUDA + буферы активаций.
Скрипт использует только стандартную библиотеку Python. Никаких pip install не требуется.
# Клонируйте репозиторий
git clone https://github.com/DangerousANEN/llm-vram-calculator.git
cd llm-vram-calculator
# 1. Рассчитать VRAM для 7B модели (квантование Q4_K_M, контекст 8192 токена)
python vram_calc.py calc --params 7 --quant q4_k_m --ctx 8192
# 2. Рассчитать VRAM для 32B модели под продакшен (batch size = 4, FP8 KV-кэш)
python vram_calc.py calc --params 32 --quant fp8 --ctx 16384 --batch 4 --kv-quant fp8
# 3. Рассчитать DeepSeek V3 / R1 (671B с архитектурой сжатия MLA)
python vram_calc.py calc --params 671 --quant nvfp4 --ctx 32768 --mla==================================================
🧮 VRAM ALLOCATION REPORT: 7.0B (Q4_K_M)
==================================================
• Веса модели (Weights): 3.78 GB
• KV-Кэш (8192 токенов, b=1): 1.06 GB (kv=fp16)
• CUDA Overhead + Активации: 0.81 GB
--------------------------------------------------
• ИТОГО Потребление: 5.65 GB
• Рекомендуемый размер GPU: 7 GB VRAM
==================================================
Утилита умеет напрямую замерять реальную скорость отдачи токенов на любом OpenAI-совместимом эндпоинте (vLLM, llama-server, Ollama, LM Studio, TGI):
# Замер локального сервера vLLM
python vram_calc.py bench --url http://localhost:8000/v1 --model meta-llama/Llama-3.3-70B-Instruct
# Замер Ollama
python vram_calc.py bench --url http://localhost:11434/v1 --model qwen2.5:7bВывод замера:
==================================================
⚡ INFERENCE SPEEDTEST REPORT: qwen2.5:7b
==================================================
• TTFT (Time to First Token): 142.3 ms
• Скорость генерации (TPS): 64.20 tok/s
• Всего токенов: 120 tokens
• Общее время: 1.87 s
==================================================
| Модель | Параметры | Q4_K_M (GGUF) | FP8 (vLLM) | BF16 (Чистая) | Мин. рекомендуемый GPU |
|---|---|---|---|---|---|
| Qwen 2.5 / 3 | 7B | 4.8 GB | 7.8 GB | 14.8 GB | RTX 4060 (8 GB) |
| Llama 3.1 / 3.3 | 8B | 5.2 GB | 8.6 GB | 16.4 GB | RTX 4060 (8 GB) |
| Qwen 2.5 | 14B | 9.1 GB | 14.9 GB | 29.2 GB | RTX 4070 (12/16 GB) |
| Qwen 2.5 / DeepSeek | 32B | 19.8 GB | 33.5 GB | 65.0 GB | RTX 3090 / 4090 (24 GB) |
| Llama 3.3 | 70B | 42.5 GB | 72.0 GB | 142.0 GB | 2× RTX 3090 (48 GB) |
| DeepSeek V3 / R1 | 671B (MLA) | 140 GB | 280 GB | 640 GB | 4-8× H100 / Mac Studio |
(Расчет дан с учетом KV-кэша на 8,192 токена)
-
Квантование KV-кэша в FP8 (
--kv-cache-dtype fp8в vLLM): срезает размер кэша ровно в 2 раза без деградации рассуждений и удваивает допустимый batch size. -
Лимит утилизации памяти (
--gpu-memory-utilization 0.88): никогда не выставляйте 0.98 на проде: первый же всплеск активаций при длинном запросе уронит воркер в OOM. -
Multi-Head Latent Attention (MLA): модели семейства DeepSeek V3/R1 сжимают KV-кэш в 5–7 раз за счет низкоранговой проекции латентного вектора
$c_t$ . -
Сброс слоев в RAM в llama.cpp (
-ngl/-ot): если для модели не хватает 1–2 ГБ VRAM, сбросьте 4–6 слоев в оперативную память. Скорость упадет всего на 10–15%, но сервис не упадет.
Больше практических инженерных гайдов, разборов архитектур нейросетей, бенчмарков железа и свежих открытых инструментов — в Telegram-канале:
👉 Подписаться на .llm hubs (@llm_hubs)
Распространяется под лицензией MIT. Подробности в файле LICENSE.
