经过多年的开发,Chrome 团队推出了 WebGPU,它可以在网络上实现高性能 3D 图形和数据并行计算。
Chrome 团队激动地宣布,Chrome 113(目前为 Beta 渠道)现已默认支持 WebGPU。WebGPU 是一种新的 Web 图形 API,具有显著的优势,例如大幅降低了相同图形的 JavaScript 工作负载,并将机器学习模型推断能力提高了三倍以上。之所以能够这么做,是因为 GPU 编程更加灵活,并且能够使用 WebGL 未提供的高级功能。
WebGPU 的这一初始版本适用于 ChromeOS、macOS 和 Windows。我们将于今年晚些时候支持其他平台。
网络图形迎来新的黎明
WebGPU 是一种新的 Web API,可提供现代硬件功能并允许在 GPU 上进行渲染和计算操作,类似于 Direct3D 12、Metal 和 Vulkan。与 WebGL 系列 API 不同,WebGPU 支持使用更高级的 GPU 功能,并为 GPU 上的常规计算提供了一流的支持。此 API 在设计时充分考虑了网络平台的需求,具有惯用的 JavaScript API、与 promise 集成、支持视频导入以及提供出色的错误消息并提供了完善的开发者体验。
WebGPU 的这一初始版本是未来的更新和增强功能的构建块。该 API 将提供更高级的图形功能,我们建议开发者发送其他功能的请求。Chrome 团队还计划支持更深入地访问着色器核心,以便在 WGSL(WebGPU 着色语言)中实现更多机器学习优化和更多人体工学设计。
WebGPU 是 W3C 的“GPU for the Web”社区小组多方协作的结果,该小组成员包括 Mozilla、Apple、Intel 和 Microsoft 等主要公司。经过六年的开发(90 位贡献者、2000 项提交、3,000 个问题),从 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 中实现初始实现之外,Firefox 和 Safari 中的 WebGPU 也仍在开发之中。
库支持
许多广泛使用的 WebGL 库已经开始实现 WebGPU 支持,或者已经做到了。这意味着,使用 WebGPU 可能只需进行一行更改:
- Babylon.js 已提供全面的 WebGPU 支持。
- PlayCanvas 宣布初步支持 WebGPU。
- TensorFlow.js 支持大多数运算符的 WebGPU 优化版本。
- 正在支持 Three.js WebGPU,具体请查看示例。
资源
WebGPU 是一项重要技术,我们建议您参考以下资源了解详情:
致谢
感谢所有 Chromium 贡献者,特别是 Intel 员工为实现这一目标而提供的宝贵支持。