WebGPU 是一種網頁圖形 API,可提供許多重要優點,例如大幅減少相同圖形的 JavaScript 工作負載,以及改善機器學習模型推論的速度,提升幅度超過三倍。這是因為 GPU 程式設計具備彈性,且可存取 WebGL 未提供的進階功能。
這個 API 的設計以網頁平台為重點,提供慣用 JavaScript API、整合承諾、支援匯入影片,以及提供清晰錯誤訊息的完善開發人員體驗。
WebGPU 是 W3C「GPU for the Web」社群群組的合作成果,其中包括 Mozilla、Apple、Intel 和 Microsoft 等主要公司的貢獻。
瀏覽器支援
這個 WebGPU 的初始版本已在 Chrome 113 中推出,適用於支援 Vulkan 的 ChromeOS 裝置、支援 Direct3D 12 的 Windows 裝置,以及 macOS。我們即將推出 Linux、Android 和現有平台的擴充支援功能。
除了在 Chrome 中初步實作 WebGPU,Firefox 和 Safari 也正在進行相關作業。
程式庫支援
許多廣泛使用的 WebGL 程式庫都已開始實作 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 是一項重要的技術,建議您參閱下列資源,進一步瞭解相關資訊: