WebGPU 是一款 Web 图形 API,具有显著优势,例如可大幅减少相同图形的 JavaScript 工作负载,并将机器学习模型推理速度提高 3 倍以上。之所以能够实现这一点,是因为 GPU 编程非常灵活,并且可以访问 WebGL 不提供的高级功能。
该 API 专为 Web 平台而设计,具有符合惯例的 JavaScript API、与 Promise 的集成、支持导入视频,以及提供清晰错误消息的精致开发者体验。
WebGPU 是 W3C 的“适用于 Web 的 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 是一项重要的技术,我们建议您参阅以下资源以了解详情: