Google Chrome 于 2023 年 4 月 6 日正式发布了 WebGPU,目前可在 Chrome.113.beta 版本中使用。
WebGPU 是一种新型 Web API,它具有很显著优势,例如减少了 JavaScript 的工作量,以及提高了机器学习模型推断速度。
Web 图形的新曙光
WebGPU 是一种新的 Web 图形 API,WebGPU 公开了现代硬件功能并允许在 GPU 上执行渲染与计算操作,类似于 Direct3D 12、Metal 和 Vulkan。与 WebGL 系列 API 不同,WebGPU 能够访问更高级的 GPU 功能,并为 GPU 上的常规计算提供一流支持。该 API 在设计上兼容 Web 端,提供 JavaScript API、集成 Promises 、支持导入视频以及带有大量错误消息来帮助开发者定位问题,对开发者友好。
WebGPU 的这个初始版本是未来更新和增强的基础。API 将提供更高级的图形功能,鼓励开发人员发送对其他功能的需求。Chrome 团队还计划提供对着色器核心的更深入访问,以便在 WebGPU 着色语言 WGSL 中进行更多的机器学习优化和额外的人体工程学。
WebGPU 是 W3C 的“Web GPU”社区组 协作努力的结果,其中包括来自 Mozilla、Apple、Intel 和 Microsoft 等主要公司的贡献。经过 6 年的开发(90 位贡献者,2000 次提交,3000 次发布),从 2017 年的初始设计开始,第一个实现现在可以在 Chrome 中使用,并正在支持 Firefox 和 Safari。
Chromium 的 Dawn 库和 Firefox 的 wgpu 库都可以作为独立包使用,它们提供了出色的可移植性和人体工程学层,可以抽象操作系统 GPU API。在本机应用程序中使用这些库还可以更轻松地通过 Emscripten 和 Rust web-sys 移植到 WASM。
浏览器支持
WebGPU 的首个版本可在支持 Vulkan 的 ChromeOS 设备、支持 Direct3D 12 的 Windows 设备和 macOS 的 Chrome 113 中使用。Linux、Android 和对现有平台的扩展支持即将推出。
除了 Chrome 在 Chrome 113 Beta 中实现了 WebGPU 之外,目前 Firefox 和 Safari 中也正在进行对 WebGPU 的支持。
库的支持
有很多基于 WebGL 的库已经开始添加对 WebGPU 的支持,有些也已经完全支持 WebGPU。这意味我们使用 WebGPU 的话,只需要改一点代码即可。
- Babylon.js 已经完全支持 WebGPU。查看示例。
- PlayCanvas 宣布了对 WebGPU 的初步支持。
- TensorFlow.js 支持大多数运算符的 WebGPU 优化版本。
- Three.js 对 WebGPU 支持正在进行中。查看示例。
了解更多
WebGPU 是一项重要的技术,可以通过以下链接了解并学习 WebGPU:
- 查看 WebGPU 和 WGSL 的 W3C 规范。
- 查看 WebGPU 示例并通过 tour-of-wgsl 学习并使用 WGSL。
- WebGPU-MDN 文档。
- 阅读官方 解释器 和 最佳实践。
- 了解 GPU 计算 及 WebGPU 的介绍。