Инструменты8 октября 2026 г., 13:48 МСК🤖 Auto

MachGen открыла Open-VC Attention: в 2 раза быстрее FlashAttention-4 на B200

Лаборатория MachGen выпустила оптимизированный вариант внимания Open-VC для NVIDIA Blackwell. Решение использует FP8 и алгоритм ExpCast, обеспечивая двукратный прирост скорости по сравнению с BF16 FlashAttention-4.

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

Проблема: узкое место MUFU в FP8

На архитектуре NVIDIA Blackwell (B200) использование формата FP8 удваивает пропускную способность тензорных ядер. Однако специализированный блок MUFU, вычисляющий экспоненты, не получил такого ускорения. В стандартных ядрах внимания одна операция экспоненты на каждый скор-токен ограничивает производительность уровнем около 2.53 PFLOP/s — лишь половина от пиковой производительности FP8.

Решение: ExpCast и отказ от экспонент

Open-VC базируется на идее VC-Attention (Li et al., 2026), но переосмысливает её реализацию. Ключевая инновация — ExpCast: код вероятности softmax в формате FP8 (E4M3) является почти аффинной функцией от логарифма значения. Это позволяет вычислять экспоненту через одну операцию FMA (fused multiply-add), полностью исключая вызов MUFU и конвертацию в FP32.

В отличие от оригинальной статьи, MachGen отказалась от метода V-Smooth (кластеризация значений), так как на FP8 накладные расходы на перестановку данных превышают выгоду от снижения ошибки квантования. Вместо этого внедрена V-residual repair — точечное исправление ошибок для «плохо округленных» токенов.

Архитектурные оптимизации

  • Среднеоконный обход (Mid-window traversal): Порядок посещения блоков ключей изменен для раннего обнаружения максимума, что критично для предотвращения клиппинга скор при ExpCast.
  • Warp-specialized pipeline: Разделение задач между варпами: одни загружают данные, другие выполняют умножение матриц, третьи — обработку softmax. Это позволяет скрыть задержки памяти.
  • Слияние подготовки ввода: Квантование Q, K и V объединено в один CUDA-граф, добавляя всего 0.86 мс (1.5%) к вызову внимания при длине последовательности 73,397 токенов.

Результаты производительности

Open-VC демонстрирует значительное ускорение на B200. Ниже приведено сравнение времени выполнения полного вызова внимания (включая подготовку и опциональное исправление остатков) для активаций с 56 головами:

Конфигурация Относительная ошибка L2 Общее время (мс) Снижение ошибки Доп. время
Open-VC (без repair) 2.980% 58.14 — —
Open-VC (0.5% repair) 2.924% 59.05 1.90% 1.55%
Open-VC (1% repair) 2.919% 59.57 2.07% 2.46%
Open-VC (2% repair) 2.912% 60.81 2.28% 4.58%
BF16 (базовый) — 114.36 — —

Использование 0.5% токенов для исправления остатков (repair) дает оптимальный баланс: снижение ошибки почти на 2% при увеличении времени всего на 1.55%. Это позволяет достичь скорости, в 2 раза превышающей BF16 FlashAttention-4, сохраняя при этом высокое качество генерации видео.

Почему это важно

Открытый код доступен на GitHub. MachGen подчеркивает, что открытые ядра (kernels) и рецепты их использования могут стать фундаментом для всей индустрии, превращая узкое преимущество одной компании в общее достояние. Это особенно критично для генерации видео, где внимание является самой ресурсоемкой частью процесса.

Источник: Machgen ↗