WebGPU はウェブ グラフィック API であり、同じグラフィックに対する JavaScript ワークロードを大幅に削減し、ML モデルの推論を 3 倍以上向上させるなど、大きなメリットをもたらします。これが可能なのは、柔軟な GPU プログラミングと、WebGL では提供されない高度な機能を利用できるためです。
この API はウェブ プラットフォームを念頭に置いて設計されており、慣用的な JavaScript API、Promise との統合、動画のインポートのサポート、明確なエラー メッセージを表示する洗練されたデベロッパー エクスペリエンスを備えています。
WebGPU は、W3C の「GPU for the Web」コミュニティ グループによる共同作業の成果です。これには、Mozilla、Apple、Intel、Microsoft などの大手企業からの貢献も含まれます。
ブラウザ サポート
WebGPU のこの初期リリースは、Chrome 113、Vulkan をサポートする ChromeOS デバイス、Direct3D 12 をサポートする Windows デバイス、macOS で利用できるようになりました。Linux、Android、既存のプラットフォームのサポート拡大は近日提供予定です。
WebGPU は、Firefox と Safari で現在開発中であり、Chrome への初期実装にも対応しています。
ライブラリ サポート
広く使用されている WebGL ライブラリの多くは、すでに WebGPU のサポートが実装されているか、すでに実装されています。つまり、WebGPU を使用する場合、1 行変更するだけで済みます。
- Babylon.js で WebGPU を完全にサポートしています。
- PlayCanvas は、WebGPU の初期サポートを発表しました。
- TensorFlow.js は、ほとんどの演算子の WebGPU に最適化されたバージョンをサポートしています。
- Three.js の WebGPU のサポートは進行中です。例をご覧ください。
Chromium の Dawn ライブラリと Firefox の wgpu ライブラリは、どちらもスタンドアロン パッケージとして提供されています。オペレーティング システムの GPU API を抽象化する優れたポータビリティと人間工学に基づくレイヤを提供します。これらのライブラリをネイティブ アプリケーションで使用すると、Emscripten と Rust web-sys を介して WASM に簡単に移植できます。
リソース
WebGPU は重要な技術であるため、詳細については次のリソースをご覧ください。
- WebGPU と WGSL については、W3C の仕様をご確認ください。
- サンプルでテストし、ツアーで WGSL を探索してください。
- MDN のドキュメントをご覧ください。
- 公式の説明とベスト プラクティスをご覧ください。
- GPU コンピューティングや詳細についてご確認ください。