经过多年的开发,Chrome 团队于今日发布了对WebGPU的支持,从而实现在Web上进行高性能3D图形和数据并行计算。WebGPU功能在Chrome 113 中可用,目前为Beta版本。WebGPU 是一种新的Web图像API,相比较其他方法具有明显的优势和渲染效果。相比较JS,同样的图像处理任务工作量具有极大地减小,对机器学习模型推理可以提供三倍以上的性能。
WebGPU开放了现代硬件功能并允许在GPU上进行渲染和计算操作,类似于Direct3D 12、Metal 和 Vulkan。与WebGL系列的API不同,WebGPU提供对更高级GPU功能的访问,并为GPU上的一般计算提供第一手的支持。该API的设计考虑了Web平台,支持惯用的JavaScript API风格、可与promise的集成、对导入视频的支持以及优化对开发人员的体验,提供大量错误消息信息用于调试。
Chrome 团队还计划提供对着渲染器核心的更深入访问,以便在WGSL(WebGPU着色语言)中进行更多的机器学习优化和额外的人体工程学支持。
WebGPU 是W3C GPU for the Web社区组共同努力的结果。该社区组包括 Mozilla、Apple、Intel 和 Microsoft 等大公司的贡献。经过6年的开发(94位贡献者,2000次提交3000 次发布),从2017年的初始设计开始,第一个实现今天终于可以在Chrom中使用,对Firefox和Safar支持正在进行中。
适用于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中的支持目前正在开发中。
库支持
许多广泛使用的WebGL的库已经在开发WebGPU支持的过程中实现兼容。如果要切换WebGPU可能只需要进行一行配置:
abylon.js 已经完全支持 WebGPU。
PlayCanvas 宣布了最初的WebGPU支持。
TensorFlow.js 支持大多数运算符的WebGPU优化版本。
Three.js 对WebGPU 支持正在进行中。
领取专属 10元无门槛券
私享最新 技术干货