Релиз модели1 августа 2026 г., 01:30 МСК🤖 Auto

NVIDIA: Как оптимизировать Long-Context Inference через Co-Design архитектуры

NVIDIA опубликовала технические рекомендации по совместному проектированию моделей и GPU. Ключ к скорости вывода — увеличение group size для фазы decode и использование специфичных стратегий параллелизма.

Баннер новости 4848

Проблема: Attention доминирует во времени вывода

По мере роста контекстных окон (до 128K+ токенов) операция Attention становится главным узким местом. На примере DeepSeek-R1 показано, что доля времени, затрачиваемого на Attention, возрастает с 18% при контексте 4K до 85% при 128K. Это требует пересмотра архитектуры моделей под конкретные GPU-архитектуры NVIDIA, а не просто оптимизации кода.

Ключевые метрики: Prefill vs Decode

Фазы prefill (обработка промпта) и decode (генерация токенов) имеют разные ограничения. Prefill ограничен вычислительной мощностью (compute-bound), так как оперирует большими матрицами. Decode ограничен пропускной способностью памяти (memory-bound), так как читает KV-cache из HBM для каждого нового токена.

Параметр Prefill Decode
Длина запроса Полный ввод (ISL токенов) 1 токен
Контекст Attention Промпт (ISL токенов) Весь KV-cache (KVSL токенов)
Основное ограничение Вычисления (matmul + softmax) Пропускная способность HBM
Размер GEMM-M ISL (большой) 1 (маленький)

Решение 1: Group Size (G) критичен для Decode

Group size ($G$) — отношение количества query-голов к KV-головам. Для фазы decode увеличение $G$ напрямую повышает арифметическую интенсивность и снижает объем передаваемых данных. Увеличение $G$ с 1 (MHA) до 8 дает ускорение в 2 раза, так как уменьшается объем чтения из памяти. NVIDIA рекомендует использовать GQA с высоким $G$ (например, Nemotron 3 использует всего 2 KV-головы) для максимальной эффективности decode.

Решение 2: Head Dimension и Parallelism

Для совпадения с тайлингом GPU и выравниванием памяти оптимальными размерами head dimension ($Hsz$) являются 128 или 256. Стратегия параллелизма зависит от количества KV-голов ($KH$):

  • Tensor Parallelism (TP): Не должно превышать количество KV-голов, чтобы избежать дублирования KV-состояния.
  • Малое количество KV-голов: Требует использования Attention Data Parallelism (ADP), KV Parallelism (KVP) или гибридных подходов (Wide EP, Helix Parallelism), реализованных в TensorRT-LLM.

Практические выводы

Для достижения максимальной пропускной способности на NVIDIA GPU разработчикам следует:

  1. Максимизировать group size ($G$) для фазы decode.
  2. Использовать head dimensions 128 или 256.
  3. Применять сжатие KV-кэша, sparse-attention или sliding-window для минимизации эффективного состояния KV.
  4. Адаптировать стратегию параллелизма под количество KV-голов модели.

Источник: NVIDIA dev blog ↗