发布时间:2023 年 7 月 20 日;上次更新时间:2025 年 8 月 11 日
WebGPU 是一种 Web 图形 API,可带来显著优势,例如大幅减少相同图形的 JavaScript 工作负载,以及将机器学习模型推理的性能提升三倍以上。这是因为 WebGL2 具有灵活的 GPU 编程功能,并且可以访问 WebGL 未提供的高级功能。
该 API 在设计时充分考虑了 Web 平台,具有惯用的 JavaScript API、与 Promise 的集成、对导入视频的支持,以及通过清晰的错误消息提供完善的开发者体验。
WebGPU 是 W3C 的“Web GPU”社区组共同努力的成果,其中包含来自 Mozilla、Apple、Intel 和 Microsoft 等主要公司的贡献。
浏览器支持
WebGPU 的初始版本已在 Chrome 113 中发布,适用于支持 Vulkan 的 ChromeOS 设备、支持 Direct3D 12 的 Windows 设备和 macOS。在搭载 Android 12 及更高版本且由 Qualcomm 和 ARM GPU 提供支持的设备上,Chrome 121 后来也支持 Android。我们很快就会支持 Linux,并扩大对现有平台的支持范围。
除了 Chrome 中的实现之外,WebGPU 还随 Windows 上的 Firefox 141 和 Safari 26 一起发布。
如需了解 WebGPU 实现状态的最新动态,您可以查看 gpuweb 实现状态页面。
库支持
许多广泛使用的 WebGL 库都在实现 WebGPU 支持,或者已经实现了 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 是一项重要技术,我们建议您参考以下资源了解详情: