VRAM описывает память устройства, бюджет — её размещение и пиковый расход конкретной нагрузки. Паспортная ёмкость сама по себе не сообщает, сколько памяти останется для KV после загрузки модели.
Почему это важно
Модель, которая загрузилась в пустой GPU, может исчерпать память после нескольких длинных диалогов. И сумма памяти нескольких карт не описывает свободное место на каждой из них. Расчёт даёт исходную границу, а приёмка подтверждает её на разрешённых длинах и конкурентности.
Что подтверждено
Размер размещённых весов покрывает только одну часть расхода памяти. Во время генерации нужны KV-кэш, промежуточные данные и рабочие буферы исполняемого пути; успешная загрузка весов не доказывает возможность принять целевую нагрузку.
Граница применимости: Вывод из размещения данных CUDA и анализа памяти serving в PagedAttention; конкретный состав выделений определяется движком и моделью.
В decoder-only модели с одинаковыми слоями и полным self-attention несжатый KV оценивают как 2 × L × Hkv × D × b × сумму S: массивы K/V, L слоёв, Hkv KV-голов, D элементов в голове, b байт на элемент и S хранимых токенов каждой активной последовательности. Накладные расходы размещения добавляют отдельно.
Граница применимости: Вывод для одного логического экземпляра KV с одинаковыми размерами и dtype K/V, без shared prefix, sliding window, offload и метаданных квантования; физическое распределение по GPU считают отдельно.
В grouped-query attention несколько query-голов используют одну группу key/value-голов. В оценку KV входит число KV-голов, а не автоматически число query-голов; при прочих равных меньшее Hkv уменьшает полезный объём кэша.
Граница применимости: Архитектура GQA из первичной публикации; реальные Hkv, число слоёв и размер головы берутся из конфигурации конкретной модели.
Четырёхбитные веса сами по себе не означают четырёхбитный KV-кэш. Разрядность весов и формат хранимых K/V — отдельные решения; в расчёте нужны реальные dtype кэша и дополнительные данные его представления, если используется квантование.
Граница применимости: Вывод из weight-only подхода AWQ и структуры KV; поддержка конкретного сочетания weight/KV dtype текущим движком не предполагается.
У каждого GPU собственные ограничения размещения и выделения памяти. Сумма VRAM нескольких устройств не превращает их в одно место для любой модели: при выбранном разбиении переполненная карта может остановить запуск, даже если на соседней остаётся запас.
Граница применимости: Вывод для обычного распределённого размещения CUDA/Megatron; Unified Memory, удалённый доступ и offload не объявляются безусловной общей VRAM и требуют отдельного договора.
Расчёт полезных байтов нужно дополнить пиковыми временными выделениями и устройством аллокатора. Фрагментация и рабочие буферы могут ограничить размещение раньше арифметической суммы весов и KV; универсальный процент запаса из этой формулы не следует.
Граница применимости: Вывод из управления GPU-памятью CUDA и мотивации PagedAttention; бюджет резервов определяют измерением выбранного runtime и его нагрузки.
Граница приёма запросов должна выдержать сочетание допустимых входных длин, продолжения генерации и числа активных последовательностей. Тест одной короткой последовательности не подтверждает этот предел; отмена и завершение также должны возвращать занятое состояние в доступный пул.
Граница применимости: Эксплуатационный вывод из допуска Orca и жизненного цикла KV в PagedAttention; проверяется заданный максимум, а не неограниченный рост контекста.
Не путать
Квантование может уменьшить представление весов, но бюджет охватывает ещё KV и runtime. Нельзя переносить коэффициент сжатия файла весов на весь расход GPU-памяти.
Tensor parallelism меняет распределение вычислений и некоторых тензоров между GPU. Бюджет после такого разбиения считают по устройствам: не все буферы обязаны делиться на число участников одинаково.
Что проверить
- Запишите число параметров, реальное представление весов и служебные данные квантования.
- Возьмите L, Hkv и D из конфигурации модели, не заменяя KV-головы query-головами.
- Оцените KV по хранимым входным и выходным токенам всех активных последовательностей.
- Проверьте dtype KV независимо от разрядности весов.
- Составьте размещение весов, KV и рабочих буферов отдельно для каждого GPU.
- Измерьте пиковые выделения при разрешённых длинах и конкурентности; обоснуйте запас.
- Испытайте завершение, отмену и повторный допуск запросов без накопления потерянного KV.
Первоисточники
CUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникEfficient Memory Management for Large Language Model Serving with PagedAttention
Woosuk Kwon и соавторы · arXiv:2309.06180, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникAttention Is All You Need
Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникGQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
Joshua Ainslie и соавторы · arXiv:2305.13245, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникAWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
Ji Lin и соавторы · arXiv:2306.00978, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникMegatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism
Shoeybi et al.; NVIDIA · arXiv:1909.08053, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Первичная схема tensor parallelism при обучении; поддержка современного serving здесь не подтверждается.
Открыть первоисточникOrca: A Distributed Serving System for Transformer-Based Generative Models
USENIX · USENIX OSDI 2022, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Iteration-level scheduling и selective batching; результат статьи не переносится на любой движок.
Открыть первоисточник