Chrome 113 激活了 WebGPU,這是一種現代的、低開銷的網絡圖形 API。
谷歌今天宣布將從版本 113 開始在其默認 Chrome 瀏覽器中啟用 WebGPU 支持,該瀏覽器目前處於測試階段。WebGPU 自 2017 年開始開發,是下一代圖形 API,旨在在 Web 瀏覽器和其他應用程序中利用 Microsoft Direct3D 12、Apple Metal 和 Vulkan 等低開銷 API。
WebGPU 支持已經提供了一段時間,但在 Chrome 中默認處於禁用狀態,因為 API 尚未最終確定,而且更新過程中可能會出現問題。谷歌表示,Mozilla 和蘋果最終都將在 Firefox 和 Safari 中支持 WebGPU,而像 Microsoft Edge 和 Opera 這樣依賴 Chromium 瀏覽器引擎的瀏覽器也可以像谷歌那樣啟用它。
Chrome 113 首先支持Windows、macOS 和ChromeOS 上的WebGPU,而“對Linux 和Android 等其他平台的支持”將於今年晚些時候推出。”該版本的瀏覽器應該會在5 月份的某個時候向所有Chrome 用戶提供。
Chrome 的支持對於任何新標準來說都是一大進步,無論是新的還是更新的 API、圖像格式還是視頻編解碼器。據 StatCounter 稱,Chrome 本身約佔全球瀏覽器市場份額的三分之二,如果算上其他基於 Chromium 的瀏覽器,則幾乎佔瀏覽器總市場份額的 80%。一旦 Safari 和 Firefox 添加支持,幾乎世界上所有的 Web 瀏覽器都將能夠運行 WebGPU 代碼,因此有必要簡單解釋一下 WebGPU 是什麼以及它存在的原因。
什麼是網絡 GPU?
WebGPU 是WebGL的後繼者,WebGL 是一種更古老的 API,允許您在瀏覽器中顯示基於 OpenGL 的圖形,而無需額外的第三方插件(例如 Adobe Flash)。雖然 WebGL 在 2009 年推出時具有革命性意義,但如今它遇到了許多與 OpenGL 相同的問題:它沒有充分利用現代 GPU,可能會因驅動程序開銷而損失性能,而且機會有限。以及對 GPU 計算負載的笨拙支持。
“雖然WebGL 主要是為繪製圖像而設計的,但可以重新調整用途(需要付出更多的努力)來執行其他類型的計算,但WebGPU 為在GPU 上執行一般計算提供了一流的支持,”解釋為什麼存在WebGPU的草稿文件中寫道。新的 API 將改進 Babylon.js 等環境和 Unity 等遊戲引擎中的圖形;將支持 GPU 加速的工作負載,例如用於機器學習和人工智能的工作負載;並且可以讓照片和視頻 Web 應用程序(以及其他應用程序)更輕鬆地利用本機應用程序受益的 GPU 加速。
WebGPU 是由一個工作組開發的,該工作組包括Google、Microsoft、Apple、Mozilla、Intel 和許多其他公司的代表,因此,API 被設計為盡可能廣泛兼容。WebGPU 不是任何現有圖形 API 的直接實現,而是位於 Direct3D 12、Metal 和 Vulkan 之上並與之交互的本機 API。來自 Shopify 工程師、前 Google 員工 Surma 的解釋者很好地總結了這一點(我們的重點):
“雖然 WebGL 只是 OpenGL 的一個薄包裝,但 WebGPU 採取了不同的方法。它引入了自己的抽象,並且不直接反映任何這些本機 API。部分原因是沒有一個 API 在所有系統上都可用,而且還因為許多概念(例如極低級別的內存管理)對於 Web API 來說並不是慣用的。相反,WebGPU 的設計讓人感覺“像網絡一樣”,並且可以方便地位於任何本機圖形 API 之上,抽像出它們的特性。它已在 W3C 中標準化,所有主要瀏覽器供應商都坐在桌子旁。”
這樣做的優點是 WebGPU 代碼變得非常可移植 – 編寫 WebGPU 代碼,只要用戶擁有支持它的硬件和瀏覽器,您就應該在使用 Direct3D 的 Windows 系統和使用 Vulkan 的 Android 手機上獲得相同的結果。它避免了一些讓 WebGL 正常工作的技巧 – 例如,Windows 和 macOS 上的 WebGL 甚至不直接使用 OpenGL,而是使用名為 ANGLE 的轉換器,它將 OpenGL API 調用轉換為 Direct3D 和 Metal API 調用。使用 WebGPU,無需啟動一個完全獨立的項目來編寫緩慢或維護不良的 OpenGL 實現。
WebGPU 還擁有自己的著色器語言 (WGSL),Chrome 團隊仍在努力支持該語言 – 今天的公告稱,Google“計劃在未來版本中通過 WGSL 提供對著色器核心的更深入訪問”。與 WebGPU API 的其餘部分一樣,WGSL 是獨立於平台的,並且可以輕鬆轉換為您使用的任何操作系統的首選著色器語言。
最後,儘管名稱中有“網絡”一詞,但 WebGPU API 並不局限於瀏覽器。wgpu 項目是 Rust 的 WebGPU 版本,允許您編寫 WebGPU 應用程序並在 Web 瀏覽器之外運行它們。
如果您現在想嘗試 WebGPU,可以在此處獲取 Chrome 113 beta 。此處提供了包含代碼示例的 GitHub 存儲庫,並且還有WebGPU和WGSL的官方文檔。
發佈留言