Visão geral da WebGPU

François Beaufort
François Beaufort

A WebGPU é uma API gráfica da Web que oferece benefícios significativos, como carga de trabalho de JavaScript muito reduzida para os mesmos gráficos e mais de três vezes melhorias nas inferências de modelos de machine learning. Isso é possível devido à programação flexível da GPU e ao acesso a recursos avançados não fornecidos pelo WebGL.

A API foi desenvolvida pensando na plataforma da Web, com uma API idiomática de JavaScript, integração com promessas, suporte para importação de vídeos e uma experiência de desenvolvedor refinada com mensagens de erro claras.

A WebGPU é o resultado de um esforço colaborativo do Grupo da Comunidade "GPU for the Web" do W3C, que inclui contribuições de grandes empresas como Mozilla, Apple, Intel e Microsoft.

Suporte ao navegador

Essa versão inicial da WebGPU foi disponibilizada no Chrome 113, em dispositivos ChromeOS com suporte a Vulkan, dispositivos Windows com suporte a Direct3D 12 e em macOS. Linux, Android e o suporte expandido para plataformas existentes será lançado em breve.

A WebGPU está em desenvolvimento para o Firefox e para o Safari, além da implementação inicial no Chrome.

Suporte à biblioteca

Muitas bibliotecas WebGL amplamente usadas já estão em processo de implementação ou já fizeram o suporte à WebGPU. Isso significa que o uso da WebGPU pode exigir apenas uma única mudança de linha.

  • O Babylon.js é totalmente compatível com a WebGPU.
  • A PlayCanvas anunciou o suporte inicial à WebGPU.
  • O TensorFlow.js oferece suporte às versões otimizadas para WebGPU da maioria dos operadores.
  • A compatibilidade com a WebGPU da Three.js está em andamento. Consulte os exemplos.

As bibliotecas Dawn para Chromium e wgpu para Firefox estão disponíveis como pacote independente. Eles oferecem ótima portabilidade e camadas ergonômicas que abstraem as APIs da GPU do sistema operacional. O uso dessas bibliotecas em aplicativos nativos facilita a portabilidade para o WASM usando Emscripten e Rust web-sys.

Recursos

A WebGPU é uma tecnologia importante, e recomendamos os seguintes recursos para saber mais: