1.1 Introducción
WebGPU API es la sucesora de WebGL API y representa el mayor cambio arquitectónico desde el inicio de las soluciones de GPU basadas en navegador. La razón principal de este cambio es la demanda de la industria de proporcionar una API que le dé más poder y control al programador. Las implementaciones de controladores específicos del proveedor suelen ser complejas e imponen sobrecargas de rendimiento de la CPU sobre las que los desarrolladores no tienen control. Gran parte de estas sobrecargas se podrían evitar si la API le devolviera más control a los desarrolladores. Un ejemplo de esto es la sobrecarga del controlador que está presente en la administración de recursos de WebGL. Los controladores deben realizar un seguimiento de la vida útil de cada recurso que utiliza el flujo de renderizado. El seguimiento de los recursos por parte del controlador a menudo es innecesario, si se puede suponer que el programador puede realizar esta tarea con mucha menos sobrecarga. Proporcionar a los desarrolladores las herramientas para implementar su propia administración de recursos quita esa responsabilidad a la implementación del controlador y, a menudo, permite mejoras de rendimiento (si se hace correctamente).
Sin embargo, un gran poder conlleva una gran responsabilidad. Es cierto que esta mayor responsabilidad hace que aprender la API WebGPU sea más difícil que aprender la API WebGL. Como sucede con todas las cosas, la primera vez que se enfrenta a algo, puede parecer abrumador o demasiado difícil de aprender, pero si es persistente en su deseo de aprender esta nueva API, las recompensas valdrán la pena.
No te preocupes si eres un principiante absoluto en lo que se refiere a programación gráfica y de computación. Este texto está escrito sin dar suposiciones sobre tu nivel de habilidad actual y presenta ejemplos simplificados para que puedas empezar. Por lo tanto, incluso si nunca antes has escrito aplicaciones web con GPU, deberías estar en buenas manos.
La API WebGPU se utiliza para acelerar los cálculos en aplicaciones basadas en la web que tradicionalmente serían manejados por la CPU en el navegador. Si bien la programación de GPU ha sido viable durante las últimas décadas mediante aplicaciones nativas, sus aplicaciones en navegadores han sido limitadas. Dado que la programación de GPU se ha convertido en un recurso fundamental en prácticamente todas las industrias, la API WebGPU no podría haber llegado en un mejor momento. Por ejemplo, la programación de GPU se puede utilizar para acelerar el procesamiento de video, imágenes digitales y señales de audio, física estadística, computación científica, imágenes médicas, visión artificial, redes neuronales y aprendizaje profundo, criptografía e incluso detección de intrusiones, entre muchas otras áreas.
Sin duda, este es un texto muy importante que ofrece a los estudiantes, aficionados, académicos e investigadores una mejor comprensión del mundo de la programación de GPU en general y de las soluciones proporcionadas por la API WebGPU en particular. El libro está escrito de manera que se adapte a los diferentes niveles de experiencia de los estudiantes y se puede utilizar como texto independiente o como guía de referencia para ampliar otro material (búsqueda de proyectos/ejemplos).
Todos los principales motores de navegador están trabajando para implementar esta especificación WebGPU. Visita https://caniuse.com/webgpu Para obtener una descripción general de dónde se encuentran todos los navegadores y las diferentes versiones: