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 muito reduzida do JavaScript para os mesmos gráficos e melhorias mais de três vezes nas inferências de modelos de machine learning. Isso é possível devido à programação flexível de GPU e ao acesso a recursos avançados que a WebGL não oferece.

A API foi projetada com a plataforma da Web em mente, com uma API JavaScript idiomática, 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 para Direct3D 12 e macOS. O suporte para Linux, Android e plataformas existentes será expandido em breve.

A WebGPU é um trabalho em andamento para o Firefox e o Safari, além da implementação inicial no Chrome.

Suporte de biblioteca

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

  • O Babylon.js tem suporte total à WebGPU.
  • O PlayCanvas anunciou o suporte inicial à WebGPU.
  • O TensorFlow.js oferece suporte às versões otimizadas para WebGPU da maioria dos operadores.
  • O suporte do Three.js para WebGPU está em andamento. Confira exemplos.

A biblioteca Dawn para Chromium e a wgpu para Firefox estão disponíveis como pacotes independentes. Elas oferecem ótima portabilidade e camadas ergonômicas que abstrai APIs de GPU do sistema operacional. O uso dessas bibliotecas em aplicativos nativos facilita a portabilidade para o WASM pelo Emscripten e Rust web-sys.

Recursos

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