WebGPU медленнее CUDA в 9 раз, но это не из-за графики
«Исследование систематически измеряет истинные накладные расходы диспетчеризации WebGPU при выводе LLM, показывая, что они доминируют над временем вычислений ядра при пакетном размере 1.»
Стоп, что?
Это не проблема железа. Это цена за то, чтобы сайты не взломали ваш компьютер.
Представьте, что вы на почте. Вместо того чтобы отправить одну тяжёлую коробку (большой расчёт), вы обязаны отправить тысячу конвертиков (мелкие операции), и каждый нужно проверить на рентгене (валидация WebGPU). Время уходит не на перевозку, а на очередь.
Учёные разобрали, как работает запуск LLM-моделей через WebGPU в браузерах.
- Главный миф: Ранние тесты преувеличивали накладные расходы в 20 раз, потому что измеряли одну операцию в вакууме.
- Реальная цена: Истинные накладные расходы на одну операцию (API + Python) — около 95 микросекунд. На чистое «оформление» вызова уходит 24-71 микросекунды, в зависимости от системы (Vulkan/Metal).
- Что это значит для скорости: На RTX PRO 2000 (карта 2019 года) float32 вычисления идут в 1.4 раза быстрее, чем WebGPU на топовой RTX 5090. Потому что старая карта без «досмотра» тратит время только на вычисления.
- Ключевой эксперимент: Объединение операций (fusion) на Vulkan дало прирост в 53%. На CUDA — ноль. Это доказывает, что проблема именно в накладных расходах на каждую мелкую операцию, а не в мощности видеокарты.
- Итог платформ: Созданный авторами бэкенд для PyTorch показал лишь 11-12% от производительности CUDA. При batch=1 (один запрос) накладные расходы доминируют независимо от качества ядра вычислений.
Что это значит для вас
Значит ли это, что безопасный и быстрый ИИ в браузере — взаимоисключающие понятия? Или следующий шаг — «дипломатический иммунитет» для проверенных операций?