经过多年的开发,Chrome 团队推出了 WebGPU,这项技术支持在网页中显示高性能 3D 图形并进行数据并行计算。
Chrome 团队非常高兴地宣布,Chrome 113(目前处于 Beta 渠道)现在默认支持 WebGPU。WebGPU 是一种新的 Web 图形 API,具有显著优势,例如可大幅减少相同图形的 JavaScript 工作负载,并将机器学习模型推理速度提高 3 倍以上。这得益于更灵活的 GPU 编程和对 WebGL 不提供的高级功能的访问。
WebGPU 的此初始版本适用于 ChromeOS、macOS 和 Windows。我们将于今年晚些时候支持其他平台。
Web 图形的新纪元
WebGPU 是适用于 Web 的全新 API,可公开现代硬件功能,并允许在 GPU 上执行渲染和计算操作,类似于 Direct3D 12、Metal 和 Vulkan。与 WebGL 系列 API 不同,WebGPU 提供对更高级 GPU 功能的访问,并为 GPU 上的一般计算提供一流的支持。该 API 专为 Web 平台而设计,具有符合惯例的 JavaScript API、与 Promise 的集成、支持导入视频,并提供完善的开发者体验和出色的错误消息。
WebGPU 的这个初始版本将作为未来更新和增强功能的基石。该 API 将提供更高级的图形功能,我们鼓励开发者请求添加其他功能。Chrome 团队还计划提供对着色器核心的更深入访问,以便在 WebGPU 着色语言 WGSL 中实现更多机器学习优化和额外的工效学改进。
WebGPU 是 W3C 的“适用于 Web 的 GPU”社区群组共同努力的成果,其中包括 Mozilla、Apple、Intel 和 Microsoft 等大公司的贡献。从 2017 年的初始设计开始,经过六年(90 位贡献者、2,000 次提交、3,000 个问题)的开发,Chrome 现已推出首个实现,我们正在为 Firefox 和 Safari 提供支持。
适用于 Chromium 的 Dawn 库和适用于 Firefox 的 wgpu 库均可作为独立软件包提供,它们提供了高度可移植且符合人体工学的层,可抽象化操作系统 GPU API。在原生应用中使用这些库还可以更轻松地通过 Emscripten 和 Rust web-sys 移植到 WASM。
浏览器支持
此 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 支持,请参阅示例。
资源
WebGPU 是一项重要的技术,我们建议您参阅以下资源以了解详情:
致谢
非常感谢所有 Chromium 贡献者,尤其是 Intel 团队,感谢他们对此项目提供宝贵的支持。