Какое железо важно (а какое нет)
Производительность локального LLM сводится к трём ресурсам, и они не равнозначны. Ёмкость VRAM решает, что вы вообще можете запустить. Пропускная способность памяти решает, насколько быстрой ощущается генерация. Сырые вычисления в основном решают, сколько вы ждёте сразу после нажатия Enter. Расставьте их правильно — и каждое решение о железе станет очевидным; расставьте неправильно — и вы платите за терафлопсы, которыми никогда не воспользуетесь.
Ранжирование: ёмкость, пропускная способность, вычисления
- Ёмкость VRAM (GB) — связывающее ограничение. Модель, которая не влезает, не работает — или выливается в системную RAM и ползёт. Ёмкость одновременно решает размер модели, уровень квантизации и длину контекста, и ничто другое на карте не компенсирует её нехватку.
- Пропускная способность памяти (GB/s) — как быстро выходят токены. Каждый сгенерированный токен читает из VRAM практически всю модель, поэтому скорость декодирования — это пропускная способность, делённая на размер модели в байтах. Во время генерации вычисления в основном простаивают.
- Вычисления (TFLOPS) — важны для префилла: переваривания промпта до появления первого токена. Больше FLOPS — короче время до первого токена и больше батч-пропускная способность, когда несколько запросов делят GPU. На однопоточную скорость в токенах в секунду они почти не влияют.
Какой ресурс покупает какой опыт
| Опыт | Ограничено | Как ощущается |
|---|---|---|
| Загрузка модели | Хранилище, линии PCIe | 10–60 с раз за сессию; на качество не влияет |
| Время до первого токена (TTFT) | Вычисления (TFLOPS) | Длинные промпты заставляют ждать; любит FLOPS |
| Скорость генерации (tok/s) | Пропускная способность памяти | ≈ GB/s ÷ GB весов на токен |
| Контекст, который вы держите | Ёмкость VRAM | KV-кэш растёт каждый токен (KV-кэш) |
| Одновременные пользователи | Ёмкость, затем вычисления | Сначала ёмкость, затем FLOPS для батч-префилла |
Две формулы несут почти всю интуицию:
decode tok/s ≈ эффективная пропускная способность (GB/s) ÷ размер модели (GB)
prefill FLOPs ≈ 2 × параметры × токены промпта
Разбор. Модель 8B в Q4_K_M — это около 5 GB весов. На GPU с ~1,000 GB/s пропускной способности потолок декодирования 1,000 ÷ 5 ≈ 200 tok/s; реальные движки дают 100–150 после накладных расходов. Тот же промпт на 2,000 токенов требует примерно 2 × 8×10⁹ × 2×10³ ≈ 32 TFLOPS префилла — меньше секунды на любой современной дискретной GPU, но достаточно медленно, чтобы почувствовать на CPU. Симулятор позволяет пощупать эти компромиссы на реальных числах.
Почему новое поколение GPU почти не ускоряет декодирование
Каждое поколение GPU примерно удваивает вычисления: больше ядер, выше частоты, лучше тензорные блоки. Префилл и TTFT улучшаются соответственно — RAG с длинными промптами и агенты в масштабе кодовой базы ощутимо резвее на новых картах. Но система памяти двигается куда меньше: GDDR6 → GDDR6X → GDDR7 даёт может быть 20–50% больше пропускной способности за поколение, а именно на ней работает декодирование. Так что новая карта переваривает промпты быстрее, а генерирует почти со скоростью предыдущего уровня с похожей пропускной способностью. Сравнивая карты для локальных LLM, читайте колонки GB/s и VRAM первыми, TFLOPS — последними.
Что в основном не важно
- Запас блока питания. Инференс LLM потребляет сильно ниже игрового пика карты. Качественный БП, рассчитанный на официальное требование карты, более чем достаточен; не закладывайтесь на монстра на 1,600 W, который вы никогда не нагрузите.
- Охлаждение. Имеет значение только многочасовое обслуживание, где термальный троттлинг сбрасывает частоты. Любая приличная карта с двумя-тремя вентиляторами выдержит.
- Линии PCIe. x8 против x16, Gen 4 против Gen 5 — влияет на время загрузки модели и трафик оффлоада на CPU, не на генерацию. Игнорируйте, если только вы не оффлоадите слои.
- NVLink и профессиональные драйверы. Хобби-обслуживание почти ничего не гоняет между картами при декодировании. Приятно иметь, но никогда не стоит платить за это здесь.
- NPU. NPU в современных ноутбуках и десктопных SoC действительно хорош в маленьких моделях зрения и аудио, но на момент написания нет практичного стека обслуживания LLM под него. Планируйте GPU, CPU или Apple Silicon — не NPU — для чат-моделей.
Мышление по размеру: сначала модель, потом карта
Не спрашивайте «что может запустить моя GPU». Спросите, какой уровень модели вы реально хотите, затем купите самую дешёвую карту, которая держит её с запасом:
- Выберите нагрузку: казуальный чат с 8B, серьёзный 32B-ассистент для кода/рассуждений или качество класса 70B, где позволяет бюджет.
- Посчитайте её след при хорошем кванте с контекстом, который реально используете, — в математике VRAM есть формула и таблицы с разборами.
- Сопоставьте с уровнем карты с запасом 10–20% — классы GPU соотносит уровни с моделями.
- Только затем оптимизируйте пропускную способность внутри уровня.
Идти от бюджета на GPU — так люди получают быструю карту, в которую влезают только бесполезно малые модели, или гигантскую карту, используемую на 40% ёмкости. Сначала бюджет на модель, затем на память, а вычисления устроятся сами. И прежде чем что-то апгрейдить, проверьте, что у вас на самом деле есть:
nvidia-smi --query-gpu=name,memory.total,memory.used --format=csv
Связанные разделы: математика VRAM · классы GPU · скорость · инференс на CPU