經過多年的開發,Chrome 團隊推出了 WebGPU,可在網頁上執行高效能 3D 圖形和資料平行運算。
Chrome 團隊很高興宣布,WebGPU 現已預設在 Chrome 113 中提供,目前位於 Beta 版管道。WebGPU 是新的網頁圖形 API,可提供許多重要優點,例如大幅減少相同圖形的 JavaScript 工作負載,以及改善機器學習模型推論的速度,效果是原來的三倍以上。這是因為 GPU 程式設計更具彈性,且可存取 WebGL 不提供的進階功能。
這個 WebGPU 初始版本適用於 ChromeOS、macOS 和 Windows。其他平台的支援功能將於今年稍晚推出。
網頁圖形的新紀元
WebGPU 是網頁的全新 API,可公開新式硬體功能,並允許在 GPU 上執行算繪和運算作業,類似於 Direct3D 12、Metal 和 Vulkan。與 WebGL 系列 API 不同,WebGPU 可讓您存取更先進的 GPU 功能,並為 GPU 上的一般運算提供一流支援。這個 API 的設計以網路平台為重點,提供慣用 JavaScript API、整合承諾、支援匯入影片,以及提供優質錯誤訊息的完善開發人員體驗。
這個 WebGPU 的初始版本可做為日後更新和強化功能的建構模塊。API 將提供更進階的圖形功能,開發人員可提出額外功能要求。Chrome 團隊也打算提供更深入的著色器核心存取權,以便在 WGSL (WebGPU 著色語言) 中進行更多機器學習最佳化和人體工學調整。
WebGPU 是 W3C「GPU for the Web」社群群組的合作成果,其中包括 Mozilla、Apple、Intel 和 Microsoft 等主要公司的貢獻。經過六年的開發 (90 位貢獻者、2000 次提交、3000 個問題),自 2017 年初始設計以來,第一個實作項目現已在 Chrome 中推出,並正在為 Firefox 和 Safari 提供支援。
適用於 Chromium 的 Dawn 程式庫和適用於 Firefox 的 wgpu 程式庫皆可做為獨立套件使用,且提供極佳的移植性和符合人體工學的圖層,可抽象化 OS GPU API。在原生應用程式中使用這些程式庫,也可以透過 Emscripten 和 Rust web-sys 更輕鬆地移植至 WASM。
瀏覽器支援
這個 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 支援功能正在開發中,請參閱範例。
資源
WebGPU 是一項重要的技術,建議您參閱下列資源,進一步瞭解相關資訊:
特別銘謝
在此特別感謝所有 Chromium 貢獻者,以及提供寶貴支援的 Intel 團隊。