概要
WebGPUは、グラフィカル処理とGPGPUのための将来的な標準とAPIのためのワーキングネームである。「モダンな3D画像処理と計算機能」を提供することを目的としている。
Apple, Google, Microsoft, Mozillaを含むさまざまな組織のエンジニアが協力して、W3CのGPU for the Webコミュニティグループで開発される。
VulkanやMetal、Direct3Dをラップするような形で、クロスプラットフォームに動作するAPIの提供を行う。
実装・設計
設計の中心となるヘッダーファイルはwebgpu.hで提供されている。これには関数や構造体などの「設計書」のみが定義されており、中身は別のライブラリに存在する。
Rust
WebGPUの設計書に基づいて純粋なRustでそれを実装したものがwgpuだ。主にMozilla FirefoxやRustのGUIライブラリで使用されている。
C++
WebGPUをC++で実装したものが、WebGPU-C++やDawnである。特にDawnはGoogleによって開発されており、Google Chromeに搭載されている。
ブラウザの対応
Google Chrome
Google Chromeでは、バージョン113以上で正式にサポートされている。
同じくMicrosoft Edgeもバージョン113以上で対応している。
Safari
SafariはMetalを通してWebGPUをサポートするが、現時点ではプレビュー版でサポートされている。
また、フラグでWebGPU = true
を設定することでプレビュー版でなくても使用できる。
Firefox
Mozilla Firefoxは、残念ながらデフォルトではサポートされない。代わりにdom.webgpu.enabled
フラグを有効化することでサポートされる。
W3CにMozillaが参加しているので、じきに正式サポートされるはずだ。