WebGPU 是一款 Web 图形 API,具有显著优势,例如可大幅减少相同图形的 JavaScript 工作负载,并将机器学习模型推理速度提高 3 倍以上。之所以能够实现这一点,是因为 GPU 编程非常灵活,并且可以访问 WebGL 不提供的高级功能。
该 API 专为 Web 平台而设计,具有符合惯例的 JavaScript API、与 Promise 的集成、支持导入视频,以及提供清晰错误消息的精致开发者体验。
WebGPU 是 W3C 的“网络 GPU”社区小组通力协作的成果,其中包括 Mozilla、Apple、Intel 和 Microsoft 等大型公司做出的贡献。
浏览器支持
此 WebGPU 初始版本已在 Chrome 113 中发布,适用于支持 Vulkan 的 ChromeOS 设备、支持 Direct3D 12 的 Windows 设备和 macOS。我们即将推出 Linux、Android 以及对现有平台的扩展支持。
除了在 Chrome 中实现 WebGPU 之外,我们还在为 Firefox 和 Safari 实现 WebGPU。
库支持
许多广泛使用的 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 是一项重要的技术,我们建议您参阅以下资源以了解详情: