Após anos de desenvolvimento, a equipe do Chrome lançou a WebGPU, que permite gráficos 3D de alto desempenho e computação paralela na Web.
A equipe do Chrome tem o prazer de anunciar que a WebGPU agora está disponível por padrão no Chrome 113, que atualmente está no canal Beta. A WebGPU é uma nova API de gráficos 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 em melhorias nas inferências de modelos de machine learning. Isso é possível devido à programação de GPU mais flexível e ao acesso a recursos avançados não oferecidos pelo WebGL.
Essa versão inicial da WebGPU está disponível no ChromeOS, macOS e Windows. O suporte para outras plataformas será lançado ainda este ano.
Uma nova era para os gráficos da Web
A WebGPU é uma nova API para a Web, que expõe recursos modernos de hardware e permite operações de renderização e computação em uma GPU, semelhantes a Direct3D 12, Metal e Vulkan. Ao contrário da família WebGL de APIs, a WebGPU oferece acesso a recursos de GPU mais avançados e suporte de primeira classe para cálculos gerais na GPU. A API foi desenvolvida com a plataforma da Web em mente, com uma API idiomática de JavaScript, integração com promessas, suporte para importação de vídeos e uma experiência de desenvolvedor sofisticada com ótimas mensagens de erro.
Essa versão inicial da WebGPU serve como um elemento básico para atualizações e melhorias futuras. A API vai oferecer recursos gráficos mais avançados, e os desenvolvedores podem enviar solicitações de mais recursos. A equipe do Chrome também planeja fornecer acesso mais profundo aos núcleos de sombreador para gerar ainda mais otimizações de aprendizado de máquina e ergonomia adicional na WGSL, a WebGPU Shading Language.
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. Após seis anos de desenvolvimento (90 colaboradores, 2.000 confirmações, 3.000 problemas), a primeira implementação foi disponibilizada no Chrome, com suporte para Firefox e Safari em andamento.
As bibliotecas Dawn para Chromium e wgpu (links em inglês) para Firefox estão disponíveis como pacotes independentes e oferecem ótima portabilidade e camadas ergonômicas que abstraem as APIs de GPU do SO. O uso dessas bibliotecas em aplicativos nativos também facilita a portabilidade para WASM por meio do Emscripten e do Rust web-sys.
Suporte ao navegador
Essa versão inicial da WebGPU está disponível no Chrome 113 em dispositivos ChromeOS com suporte a Vulkan, em dispositivos Windows com suporte a Direct3D 12 e em macOS. Linux, Android e a compatibilidade expandida para plataformas existentes será lançada em breve.
A WebGPU está em desenvolvimento no Firefox e no Safari, além da implementação inicial no Chrome.
Suporte à biblioteca
Muitas bibliotecas WebGL amplamente utilizadas já estão em processo de implementação ou já implementaram o suporte à WebGPU. Isso significa que o uso da WebGPU pode exigir apenas uma mudança de linha:
- O Babylon.js já tem suporte completo para a WebGPU.
- A PlayCanvas anunciou o suporte inicial à WebGPU.
- O TensorFlow.js oferece suporte às versões otimizadas para WebGPU da maioria dos operadores.
- O suporte para a WebGPU do Three.js está em andamento. Consulte exemplos.
Recursos
A WebGPU é uma tecnologia importante, e recomendamos os seguintes recursos para saber mais:
- Confira as especificações do W3C para WebGPU e WGSL.
- Teste exemplos e conheça a WGSL com um tour.
- Veja a documentação do MDN.
- Leia a explicação oficial e as práticas recomendadas.
- Saiba mais sobre a computação da GPU e muito mais.
Agradecimentos
Agradecemos a todos os colaboradores do Chromium e, especialmente, ao pessoal da Intel pelo inestimável apoio para tornar isso possível.