Содержание
Что вошло в первый выпуск WebGPU Kernels
Hugging Face выпустила @huggingface/kernels — JavaScript-библиотеку для загрузки и запуска оптимизированных WebGPU-ядер с Hugging Face Hub. Вместе с ней опубликованы 207 ядер под лицензией Apache 2.0 и браузерный стенд Fleet. Пакет, коллекция и тестовый стенд уже открыты, поэтому canTry=true.
Ядра публикуются как версионированные пакеты
Коллекция охватывает низкоуровневые операции, из которых складывается выполнение нейросетей: матричные умножения, нормализации, свёртки, операции внимания, квантование и преобразования раскладки данных. Каждое ядро размещено в отдельном репозитории на Hub вместе с контрактом входов и выходов, поддерживаемыми типами данных, WGSL-шаблонами, тестами корректности и наборами для бенчмарков.
Приложение обращается к ядру по идентификатору репозитория и версии контракта. Библиотека получает манифест, выбирает подходящий вариант шейдера для формы входных данных и устройства, выделяет память под результат и запускает вычисление через WebGPU. Такой формат позволяет обновлять реализации независимо от приложения, сохраняя стабильный JavaScript-интерфейс.
Что показал бенчмарк Hugging Face
Авторы сравнили коллекцию с ONNX Runtime Web 1.30.0-dev на GPU Apple M4. Из 1756 тестов в итоговую выборку вошли 809 случаев, где обе реализации дали совпадающие результаты и устойчивые измерения. В этой выборке WebGPU Kernels оказались быстрее в среднем в 2,57 раза по геометрическому среднему и в 1,90 раза по медиане: 629 побед, 176 проигрышей и четыре ничьи.
Для отдельных операций Hugging Face приводит ускорение в 3,52 раза для Add, 1,14 раза для MatMul, 2,11 раза для Softmax и 2,22 раза для LayerNormalization. Это не оценка скорости целых моделей: измерялось только время работы на GPU без загрузки ядер, компиляции шейдеров, передачи входов и чтения результата.
Fleet собирает результаты на разных устройствах
Производительность WebGPU зависит от браузера, операционной системы, видеокарты и драйвера. Поэтому Hugging Face одновременно открыла Fleet — стенд, который запускает тесты корректности и скорости непосредственно в браузере пользователя. С согласия участника результаты добавляются в закрытый массив свидетельств, чтобы команда могла находить ошибки на редких конфигурациях и улучшать выбор вариантов ядер.
Коллекция пока является низкоуровневым фундаментом, а не готовым средством запуска любой модели. Разработчику необходимо самостоятельно собрать вычислительный граф и учесть накладные расходы. WebGPU также доступен не во всех сочетаниях браузера, ОС, GPU и драйвера. Hugging Face сообщает, что работает с командой ONNX Runtime над переносом улучшений в экосистему ONNX Runtime Web.
Где попробовать
Описание архитектуры и результаты тестов опубликованы в официальном блоге Hugging Face. Все 207 операций доступны в организации webgpu-kernels на Hub, preview-пакет — в реестре npm, а тест своего устройства можно запустить в Fleet.
Как запустить первое WebGPU-ядро
Проверьте поддержку WebGPU
Откройте Fleet в современном браузере и убедитесь, что сервис обнаружил совместимый GPU и драйвер.Установите preview-пакет
Добавьте @huggingface/kernels с тегом preview в JavaScript-проект через npm.Выберите операцию на Hub
Откройте коллекцию webgpu-kernels и проверьте карточку нужного ядра, типы входов и поддерживаемую версию контракта.Сравните результат и время
Запустите ядро на реальных формах тензоров и измерьте полный путь вместе с компиляцией, передачей данных и чтением результата.Главное о WebGPU Kernels
Сколько ядер опубликовано в первом выпуске?
Hugging Face открыла 207 WebGPU-ядер под лицензией Apache 2.0.
Можно ли использовать библиотеку прямо сейчас?
Да. Preview-пакет доступен в npm, коллекция открыта на Hugging Face Hub, а Fleet запускается в браузере.
Означает ли ускорение в 2,57 раза такую же прибавку для модели?
Нет. Это геометрическое среднее для отдельных операций на Apple M4 без накладных расходов и не гарантия скорости полной модели.
На каких устройствах это работает?
Нужны браузер, операционная система, GPU и драйвер с поддержкой WebGPU; точная совместимость и скорость зависят от конфигурации.