歷經多年開發的 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」社群團體合作成果,成員來自 Mozilla、Apple、Intel 和 Microsoft 等主要公司。從 2017 年的初始設計開始,6 年來開發了六年 (90 名貢獻者、2000 個修訂版本、3000 個問題),Chrome 現已推出首次實作,並持續支援 Firefox 和 Safari。
Chromium 的 Dawn 程式庫和 Firefox 的 wgpu 程式庫都是以獨立套件的形式提供,兩者皆可提供絕佳的可攜性和人體工學層,這些架構則抽象 OS GPU API。在原生應用程式中使用這些程式庫,也可讓您更容易透過 Emscripten 和 Rust web-sys 輕鬆攜碼至 WASM。
瀏覽器支援
這個初始版的 WebGPU 適用於支援 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 是一項重要的技術,建議您使用下列資源瞭解詳情:
- 查看 WebGPU 和 WGSL 的 W3C 規格。
- 不妨透過範例進行實驗,並利用導覽探索 WGSL 服務。
- 查看 MDN 說明文件。
- 請參閱官方的說明和最佳做法。
- 瞭解 GPU 運算和其他相關資訊。
特別銘謝
非常感謝所有 Chromium 貢獻者,尤其是 Intel 對這項技術的貢獻者十分寶貴的支持,能協助實現這個計畫。