Обзор веб-графического процессора

Франсуа Бофор
François Beaufort

WebGPU — это API веб-графики, который предлагает значительные преимущества, такие как значительное снижение рабочей нагрузки JavaScript для той же графики и более чем трехкратное улучшение результатов модели машинного обучения. Это возможно благодаря гибкому программированию графического процессора и доступу к расширенным возможностям, которых нет в WebGL.

API разработан с учетом веб-платформы и включает в себя идиоматический API JavaScript, интеграцию с обещаниями, поддержку импорта видео и безупречный опыт разработчика с четкими сообщениями об ошибках.

WebGPU — это результат совместных усилий группы сообщества W3C «GPU for the Web» , в которую входят вклад таких крупных компаний, как Mozilla, Apple, Intel и Microsoft.

Поддержка браузера

Этот первоначальный выпуск WebGPU был доступен в Chrome 113, на устройствах ChromeOS с поддержкой Vulkan, устройствах Windows с поддержкой Direct3D 12 и macOS. Скоро появятся Linux, Android и расширенная поддержка существующих платформ.

WebGPU — это разработка для Firefox и Safari , в дополнение к первоначальной реализации в Chrome.

Библиотечная поддержка

Многие широко используемые библиотеки WebGL уже реализуют поддержку WebGPU или уже сделали это. Это означает, что для использования WebGPU может потребоваться внести только одно изменение строки.

  • Babylon.js имеет полную поддержку WebGPU.
  • PlayCanvas объявила о начальной поддержке WebGPU.
  • TensorFlow.js поддерживает версии большинства операторов, оптимизированные для WebGPU.
  • Поддержка Three.js WebGPU находится в разработке, см. примеры .

И библиотека Dawn для Chromium, и библиотека wgpu для Firefox доступны как отдельные пакеты. Они предлагают отличную мобильность и эргономичные уровни, которые абстрагируют API-интерфейсы графического процессора операционной системы. Использование этих библиотек в нативных приложениях упрощает портирование на WASM через Emscripten и Rust web-sys .

Ресурсы

WebGPU — это важная технология, и мы рекомендуем следующие ресурсы, чтобы узнать больше: