GPU web

Estándar web y API
GPU web
Año iniciado18 de mayo de 2021 ( 18/05/2021 )
Primera publicación18 de mayo de 2021 ( 18/05/2021 )
Última versiónBorrador de trabajo del W3C
(a partir de 2023) ( (A partir de 2023) )
OrganizaciónW3C
Comité
  • GPU para el grupo de trabajo web
  • GPU para la Web CG
Editores
  • fan de justin
  • Brandon Jones
  • Dzmitry Malyshau
  • Myles C. Maxfield
  • Kai Ninomiya
Normas relacionadas
Dominio
Sitio webwww.w3.org/TR/webgpu/

WebGPU es una API de JavaScript proporcionada por un navegador web que permite que los scripts de páginas web utilicen de manera eficiente la unidad de procesamiento gráfico (GPU) de un dispositivo. Esto se logra con las API de sistema subyacentes Vulkan , Metal o Direct3D 12. En los dispositivos relevantes, WebGPU está destinado a reemplazar el estándar WebGL anterior. [1]

Google Chrome habilitó el soporte inicial de WebGPU en abril de 2023. [1] [2] Safari y Firefox aún no lo han habilitado. [2] Por lo tanto, el estándar W3C se encuentra en la fase de borrador de trabajo.

Tecnología

WebGPU permite gráficos 3D dentro de un lienzo HTML . También tiene un soporte sólido para cálculos de GPU de propósito general . [3]

WebGPU utiliza su propio lenguaje de sombreado llamado WGSL , que fue diseñado para ser fácilmente traducible a SPIR-V , hasta que las quejas provocaron una redirección a un diseño más tradicional, similar a otros lenguajes de sombreado. La sintaxis es similar a la de Rust . [4] Tint es un compilador creado por Google para WGSL. [5] Naga es un proyecto similar desarrollado para las necesidades de wgpu-rs. [6]

Implementaciones

Tanto Google Chrome como Firefox son compatibles con WebGPU con SPIR-V, y se está trabajando en el frontend WGSL. Firefox y Deno utilizan la biblioteca wgpu de Rust. [7] Safari sigue las especificaciones originales de WebGPU y WGSL. [2]

La versión 113 de Chrome habilitó la compatibilidad inicial con WebGPU en dispositivos Windows con Direct3D 12 , dispositivos ChromeOS con Vulkan y macOS con Metal . [1] Esta compatibilidad con Android se habilitó en la versión 121. [2]

Historia

El 8 de junio de 2016, Google presentó la "API de gráficos web explícitos" al grupo de trabajo de WebGL (durante la reunión presencial bianual). [8] La presentación exploró las ideas y los principios básicos de la creación de una nueva API que eventualmente reemplazaría a WebGL, también conocida como "WebGL Next".

El 24 de enero de 2017, Khronos organizó una reunión sin IP dedicada a discutir las ideas de "WebGL Next", que coincidió con la reunión del grupo de trabajo de WebGL en Vancouver. [9] El equipo de Google presentó el prototipo NXT que implementaba una nueva API que podía ejecutarse en Chromium con OpenGL, o de forma independiente con OpenGL y Metal. NXT tomó prestados conceptos de todas las API nativas de Vulkan, Direct3D 12 y Metal. Los representantes de Apple y Mozilla también mostraron sus prototipos creados en Safari y Servo , respectivamente, los cuales replicaban de manera cercana la API de Metal.

El 7 de febrero de 2017, el equipo WebKit de Apple propuso la creación del grupo comunitario W3C para diseñar la API. Al mismo tiempo, anunciaron una prueba técnica de concepto y una propuesta bajo el nombre "WebGPU", basada en conceptos de Metal de Apple . [10] [11] [12] El nombre WebGPU fue adoptado posteriormente por el grupo comunitario como un nombre de trabajo para el futuro estándar en lugar de simplemente la propuesta inicial de Apple. [13] La propuesta inicial ha sido renombrada como "WebMetal" para evitar más confusiones. [14]

El grupo comunitario "GPU para la Web" del W3C se lanzó el 16 de febrero de 2017. En ese momento, Apple, Google y Mozilla tenían experimentos en el área, pero solo la propuesta de Apple se envió oficialmente al repositorio "gpuweb-proposals". [15] [16] [17] Poco después, el 21 de marzo de 2017, Mozilla envió una propuesta para WebGL Next dentro del repositorio Khronos, basada en el diseño de Vulkan. [18] [19]

El 1 de junio de 2018, citando "la resolución de problemas de más alto nivel" en el esfuerzo de estandarización entre navegadores, el equipo Chrome de Google anunció la intención de implementar el futuro estándar WebGPU. [13]

Referencias

  1. ^ abc "Chrome lanza WebGPU". Desarrolladores de Chrome . Consultado el 8 de abril de 2023 .
  2. ^ abcd «Estado de implementación de WebGPU». GitHub . Consultado el 14 de marzo de 2024 .
  3. ^ "WebGPU API". developer.mozilla.org . Consultado el 17 de marzo de 2024 .
  4. ^ Especificación del lenguaje de sombreado WebGPU
  5. ^ Código fuente de Tint
  6. ^ Código fuente de Naga
  7. ^ wgpu, Rust Graphics Mages, 3 de enero de 2024 , consultado el 3 de enero de 2024
  8. ^ Wallez, Corentin. "API de gráficos web explícitos" . Consultado el 25 de junio de 2019 .
  9. ^ Wallez, Corentin; Ninomiya, Kai. «Investigaciones sobre WebGL Next» . Consultado el 25 de junio de 2019 .
  10. ^ "Gráficos 3D de próxima generación en la Web". WebKit . 2017-02-07 . Consultado el 2018-08-13 .
  11. ^ "Apple busca posicionar a Metal como parte del nuevo estándar de gráficos 3D para la web". AppleInsider . Consultado el 13 de agosto de 2018 .
  12. ^ Claburn, Thomas (8 de febrero de 2017). «Apple, alérgica a los estándares web, presenta WebGPU, un estándar de gráficos web». The Register . Consultado el 14 de agosto de 2017 .
  13. ^ "Prototipo y demostraciones de WebGPU". WebKit . 2017-04-05 . Consultado el 2019-01-10 .
  14. ^ Jackson, Dean (16 de febrero de 2017). "Bienvenido y primeros pasos". public-gpu (Lista de correo) . Consultado el 11 de septiembre de 2018 .
  15. ^ Jackson, Dean. "Añadir la propuesta WebGPU de Apple". GitHub . Consultado el 8 de marzo de 2019 .
  16. ^ Malyshau, Dzmitry. "Creación de un prototipo de una nueva API 3D para la Web" . Consultado el 16 de diciembre de 2016 .
  17. ^ Malyshau, Dzmitry (21 de marzo de 2017). «Definición de la plataforma web» . Consultado el 11 de septiembre de 2018 .
  18. ^ Malyshau, Dzmitry. "Contribución de Mozilla: API de Obsidian". GitHub . Consultado el 8 de marzo de 2019 .
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=WebGPU&oldid=1241691206"