Qué sigue para WebGPU

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

Fecha de publicación: 21 de noviembre de 2024

La especificación de WebGPU evoluciona constantemente, y las principales empresas como Google, Mozilla, Apple, Intel y Microsoft se reúnen semanalmente para analizar su desarrollo. La reunión más reciente del grupo de trabajo de GPU para la Web ofreció una idea de los objetivos y las funciones principales planificados para la próxima iteración de WebGPU. En esta entrada de blog, se exploran algunas de las conclusiones clave de la reunión.

Alcanzar el estado de recomendación de candidato

Uno de los objetivos principales de la reunión fue analizar el progreso del hito 0 y finalizar los problemas que se deben abordar antes de que pueda alcanzar el estado de recomendación candidata para el W3C. Este es el siguiente paso en el proceso de estandarización y ofrece garantías más sólidas de estabilidad y protección de la propiedad intelectual.

Los participantes de la reunión coincidieron en que no son bloqueos y que estos problemas se pueden resolver de manera oportuna, lo que allanó el camino para la recomendación candidata de WebGPU del W3C.

Prioriza las funciones nuevas

Los participantes de la reunión también priorizaron las funciones nuevas. Comenzó con una lista de solicitudes de funciones compiladas a partir de los comentarios de los desarrolladores, los implementadores y las partes interesadas.

Una pizarra con una lista escrita a mano de términos relacionados con las APIs de gráficos por computadora, incluidos "Bindless", "Subgrupos", "MDI", "Push Constants", "UMA", "Subgroup Matrix" y otros.

Después del debate, se identificaron las siguientes funciones clave de WebGPU para la IA:

  • Matrices de subgrupos y subgrupos: Permite que la aplicación use una comunicación local rápida entre subprocesos de GPU y aproveche el hardware de multiplicación de matrices de tamaño fijo junto a los núcleos de sombreadores. Consulta la propuesta de subgrupos.

  • Buffers de texels: Proporcionan una forma más eficiente de almacenar y acceder a tipos de datos pequeños, como valores de 16 bits o 8 bits, de forma portátil. Esto es importante para algunos algoritmos de procesamiento de imágenes de AA. Consulta las diapositivas del búfer de texels.

  • Asignación de búfer de UMA: Mejora el rendimiento de la carga de datos reduciendo o eliminando las copias y la sobrecarga de sincronización. Consulta el problema de especificación 2388.

También se están considerando y priorizando las siguientes funciones de WebGPU para desbloquear nuevos tipos de algoritmos de renderización:

  • Sin vinculación: Esta propuesta de función muy esperada es un requisito previo para la mayoría de los algoritmos de renderización de vanguardia, ya que necesitan información de toda la escena. Sin vinculación, los sombreadores pueden usar una cantidad ilimitada de recursos, incluidas las texturas, en comparación con los límites relativamente estrictos que existen actualmente.

  • Indirecto de varios dibujos: Permite que los cálculos anteriores en la GPU creen varios dibujos en lugar de uno solo con drawIndirect anteriormente. Es una función importante para la renderización impulsada por GPU, como para la eliminación de objetos de la GPU. Consulta la solicitud de extracción 2315.

  • Operaciones atómicas de 64 bits: Ya sea en búferes o texturas, es necesario realizar una "rasterización de software" en la GPU, ya que combina la prueba de profundidad y la escritura de una carga útil de 32 bits en una sola operación atomicMax. Consulta el problema 4329.

Para mejorar las capacidades de WebGPU y su integración con la plataforma web más amplia, se analizaron las siguientes funciones de WebGPU:

  • Modo de compatibilidad: El objetivo de este modo es permitir que WebGPU se ejecute en una gama más amplia de dispositivos, incluidos aquellos que solo admiten OpenGL ES 3.1. Consulta la propuesta del modo de compatibilidad.

  • WebXR: Permite que el módulo de capas de WebXR existente se comunique con WebGPU proporcionando cadenas de intercambio de WebGPU para cada tipo de capa. Consulta las diapositivas de integración de WebGPU/WebXR.

  • Canvas2D: Crea una mejor interoperabilidad entre Canvas 2D y WebGPU, lo que aborda problemas de rendimiento y ergonomía. Esta propuesta de transferencia de WebGPU permitiría tener acceso al dibujo de texto y ruta en WebGPU, y poder aplicar la renderización de WebGPU a Canvas 2D.

En la reunión, también se presentaron y analizaron iniciativas para mejorar las herramientas y bibliotecas de WGSL. Una iniciativa notable es el desarrollo de WESL (WGSL Extended Shading Language), que tiene como objetivo proporcionar un conjunto de extensiones impulsadas por la comunidad a WGSL.

Puedes encontrar más información en las notas de reuniones sin procesar.

Pensamientos

En esta reunión, se destacó la importancia de la colaboración entre el grupo de trabajo de WebGPU, los desarrolladores y la comunidad gráfica más amplia para definir el futuro de WebGPU. El grupo de trabajo busca activamente comentarios sobre las funciones propuestas y se compromete a trabajar con los desarrolladores para garantizar que WebGPU satisfaga sus necesidades.

Las próximas evoluciones de WebGPU prometen ser un paso adelante significativo, ya que ofrecen nuevas posibilidades para los gráficos web y permiten a los desarrolladores crear experiencias web aún más envolventes y atractivas para la IA.