O que vem por aí para a WebGPU

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

Publicado em 21 de novembro de 2024

A especificação da WebGPU está sempre em evolução, e grandes empresas como Google, Mozilla, Apple, Intel e Microsoft se reúnem semanalmente para discutir o desenvolvimento dela. A GPU mais recente para a reunião do grupo de trabalho da Web ofereceu uma visão geral dos principais objetivos e recursos planejados para a próxima iteração da WebGPU. Esta postagem no blog aborda alguns dos principais pontos da reunião.

Como alcançar o status de recomendação de candidato

O foco principal da reunião foi discutir o progresso da Meta 0 e finalizar os problemas que precisam ser resolvidos antes que ela possa alcançar o status de recomendação de candidato para o W3C. Essa é a próxima etapa do processo de padronização, e ela vem com garantias mais fortes de estabilidade e proteção de propriedade intelectual.

Os participantes da reunião concordaram que não há problemas que impeçam a recomendação do W3C para a WebGPU.

Priorizar novos recursos

Os participantes da reunião também priorizaram novos recursos. Eles começaram com uma lista de solicitações de recursos compiladas com base no feedback de desenvolvedores, implementadores e partes interessadas.

Um quadro branco com uma lista escrita à mão de termos relacionados a APIs de gráficos de computador, incluindo "Bindless", "Subgroups", "MDI", "Push Constants", "UMA", "Subgroup Matrix" e outros.

Após a discussão, os seguintes recursos principais da WebGPU para IA foram identificados:

  • Matrizes de subgrupos e de subgrupos: permita que o aplicativo use a comunicação local rápida entre as linhas de execução da GPU e aproveite o hardware de multiplicação de matrizes de tamanho fixo ao lado dos núcleos do sombreador. Consulte a proposta de subgrupos.

  • Buffers de texel: oferecem uma maneira mais eficiente de armazenar e acessar pequenos tipos de dados, como valores de 16 ou 8 bits, de forma portátil. Isso é importante para alguns algoritmos de processamento de imagens de ML. Consulte os slides do buffer de texel.

  • Mapeamento de buffer UMA: melhore a performance do upload de dados reduzindo ou eliminando cópias e sobrecarga de sincronização. Consulte o problema da especificação 2388.

Os seguintes recursos da WebGPU também estão sendo considerados e priorizados para desbloquear novos tipos de algoritmos de renderização:

  • Sem vinculação: essa proposta de recurso tão esperada é um pré-requisito para a maioria dos algoritmos de renderização de ponta, porque eles precisam de informações em toda a cena. O Bindless permite que os shaders usem um número ilimitado de recursos, incluindo texturas, em comparação com os limites relativamente rígidos atuais.

  • Vários desenhos indiretos: permite que as computaçãos anteriores na GPU criem vários desenhos em vez de apenas um com drawIndirect anteriormente. É um recurso importante para renderização orientada por GPU, como o descarte de objetos por GPU. Consulte a solicitação de envio 2315.

  • Átomos de 64 bits: em buffers ou texturas, é necessário fazer a "rasterização de software" na GPU, agrupando o teste de profundidade e a gravação de um payload de 32 bits em uma única operação atomicMax. Consulte o problema 4329.

Para aprimorar os recursos e a integração da WebGPU com a plataforma da Web, foram discutidos os seguintes recursos da WebGPU:

  • Modo de compatibilidade: esse modo tem como objetivo permitir que a WebGPU seja executada em uma gama mais ampla de dispositivos, incluindo aqueles que oferecem suporte apenas ao OpenGL ES 3.1. Consulte a proposta do modo de compatibilidade.

  • WebXR: permite que o módulo de camadas do WebXR faça interface com a WebGPU, fornecendo cadeias de troca da WebGPU para cada tipo de camada. Consulte os slides de integração do WebGPU/WebXR.

  • Canvas2D: cria uma melhor interoperabilidade entre Canvas 2D e WebGPU, resolve problemas de desempenho e ergonomia. Essa proposta de transferência da WebGPU permitiria o acesso a texto e desenho de caminho na WebGPU e a aplicação da renderização da WebGPU ao Canvas 2D.

A reunião também contou com apresentações e discussões sobre esforços para melhorar as ferramentas e bibliotecas do WGSL. Uma iniciativa importante é o desenvolvimento da WESL (WGSL, na sigla em inglês), que visa fornecer um conjunto de extensões de WGSL orientado pela comunidade.

Confira mais informações nas notas da reunião brutas.

Pensamentos

Essa reunião destacou a importância da colaboração entre o grupo de trabalho da WebGPU, os desenvolvedores e a comunidade de gráficos mais ampla para moldar o futuro da WebGPU. O grupo de trabalho está buscando ativamente feedback sobre os recursos propostos e está comprometido em trabalhar com os desenvolvedores para garantir que o WebGPU atenda às necessidades deles.

As próximas evoluções da WebGPU prometem ser um avanço significativo, abrindo novas possibilidades para gráficos da Web e capacitando os desenvolvedores a criar experiências na Web ainda mais imersivas e envolventes para a IA.