Después de años de desarrollo, el equipo de Chrome lanzó WebGPU, que permite gráficos en 3D de alto rendimiento y procesamiento paralelo de datos en la Web.
El equipo de Chrome se complace en anunciar que WebGPU ahora está disponible de forma predeterminada en Chrome 113, que actualmente se encuentra en el canal beta. WebGPU es una nueva API de gráficos web que ofrece beneficios significativos, como una carga de trabajo de JavaScript muy reducida para los mismos gráficos y mejoras más de tres veces en las inferencias de modelos de aprendizaje automático. Esto es posible gracias a una programación de GPU más flexible y al acceso a funciones avanzadas que WebGL no proporciona.
Esta versión inicial de WebGPU está disponible en ChromeOS, macOS y Windows. La compatibilidad con otras plataformas se lanzará más adelante este año.
Un nuevo amanecer para los gráficos web
WebGPU es una nueva API para la Web que expone capacidades de hardware modernas y permite operaciones de renderización y procesamiento en una GPU, similar a Direct3D 12, Metal y Vulkan. A diferencia de la familia de APIs de WebGL, WebGPU ofrece acceso a funciones de GPU más avanzadas y proporciona compatibilidad de primer nivel para cálculos generales en la GPU. La API está diseñada teniendo en cuenta la plataforma web y cuenta con una API de JavaScript idiomática, integración con promesas, compatibilidad con la importación de videos y una experiencia de desarrollador pulida con excelentes mensajes de error.
Esta versión inicial de WebGPU funciona como un bloque de construcción para futuras actualizaciones y mejoras. La API ofrecerá funciones gráficas más avanzadas, y se recomienda a los desarrolladores que envíen solicitudes de funciones adicionales. El equipo de Chrome también planea proporcionar un acceso más profundo a los núcleos de sombreadores para lograr aún más optimizaciones del aprendizaje automático y ergonomía adicional en WGSL, el lenguaje de sombreado de WebGPU.
WebGPU es el resultado de un esfuerzo colaborativo del grupo comunitario "GPU for the Web" del W3C, que incluye contribuciones de empresas importantes como Mozilla, Apple, Intel y Microsoft. Después de seis años de desarrollo (90 colaboradores, 2, 000 confirmaciones y 3,000 problemas) desde el diseño inicial en 2017, la primera implementación ya está disponible en Chrome, y la compatibilidad con Firefox y Safari está en curso.
Tanto la biblioteca Dawn para Chromium como la biblioteca wgpu para Firefox están disponibles como paquetes independientes y ofrecen una gran portabilidad y capas ergonómicas que abstraen las APIs de la GPU del SO. El uso de estas bibliotecas en aplicaciones nativas también facilita la portabilidad a WASM a través de Emscripten y Rust web-sys.
Navegadores compatibles
Esta versión inicial de WebGPU está disponible en Chrome 113 en dispositivos ChromeOS con compatibilidad con Vulkan, dispositivos Windows con compatibilidad con Direct3D 12 y macOS. Pronto se admitirán Linux, Android y una compatibilidad expandida con las plataformas existentes.
WebGPU es un trabajo en curso en Firefox y Safari, además de la implementación inicial en Chrome.
Compatibilidad con bibliotecas
Muchas bibliotecas de WebGL de uso general ya están en proceso de implementar la compatibilidad con WebGPU o ya lo hicieron. Esto significa que usar WebGPU solo puede requerir que realices un cambio en una sola línea:
- Babylon.js ya es compatible por completo con WebGPU.
- PlayCanvas anunció la compatibilidad inicial con WebGPU.
- TensorFlow.js admite versiones optimizadas para WebGPU de la mayoría de los operadores.
- La compatibilidad con WebGPU de Three.js está en curso. Consulta los ejemplos.
Recursos
WebGPU es una tecnología importante, y te recomendamos los siguientes recursos para obtener más información:
- Consulta las especificaciones del W3C para WebGPU y WGSL.
- Experimenta con muestras y explora WGSL con un recorrido.
- Consulta la documentación de MDN.
- Lee la explicación y las prácticas recomendadas oficiales.
- Obtén información sobre el procesamiento de GPU y más.
Agradecimientos
Muchas gracias a todos los colaboradores de Chromium y, en especial, a Intel por su invaluable apoyo para que esto fuera posible.