WebGPU 是一种 Web 图形 API,具有显著的优势,例如可大幅减少相同图形的 JavaScript 工作负载,并将机器学习模型推断提升三倍以上。得益于灵活的 GPU 编程以及 WebGL 不提供的高级功能,这些都是可行的。
该 API 在设计时充分考虑了网络平台的需求,具有惯用的 JavaScript API、与 promise 集成、支持导入视频的功能,以及经过改进的开发者体验(包含清晰的错误消息)。
WebGPU 是 W3C 的“Web GPU”社区小组多方协作的结果,其中包括 Mozilla、Apple、Intel 和 Microsoft 等主要公司的贡献。
浏览器支持
WebGPU 的这一初始版本已在 Chrome 113 中推出,适用于支持 Vulkan 的 ChromeOS 设备、支持 Direct3D 12 的 Windows 设备和 macOS。我们即将支持 Linux、Android,并扩大对现有平台的支持。
除了在 Chrome 中的初始实现之外,Firefox 和 Safari 还在开发 WebGPU。
库支持
许多广泛使用的 WebGL 库已经开始实现或已经实现 WebGPU 支持。这意味着,使用 WebGPU 可能只需进行一行更改。
- Babylon.js 提供全面的 WebGPU 支持。
- PlayCanvas 宣布初步支持 WebGPU。
- TensorFlow.js 支持大多数运算符的 WebGPU 优化版本。
- 正在支持 Three.js WebGPU,具体请查看示例。
适用于 Chromium 的 Dawn 库和适用于 Firefox 的 wgpu 库均作为独立软件包提供。它们具有出色的可移植性和人体工学层,能够抽象出操作系统 GPU API。在原生应用中使用这些库可让您更轻松地通过 Emscripten 和 Rust web-sys 移植到 WASM。
资源
WebGPU 是一项重要技术,我们建议您参考以下资源了解详情: