Chrome に搭載された WebGPU

長年の開発を経て、Chrome チームは WebGPU をリリースしました。これにより、ウェブ上で高性能の 3D グラフィックスとデータ並列計算が可能になります。

François Beaufort
François Beaufort

Chrome チームは、現在 Beta チャンネルで提供されている Chrome 113 で、WebGPU がデフォルトで利用可能になったことをお知らせいたします。WebGPU は、同じグラフィックで JavaScript ワークロードを大幅に削減し、機械学習モデルの推論を 3 倍以上に改善するなど、大きなメリットをもたらす新しいウェブ グラフィック API です。これは、より柔軟な GPU プログラミングと、WebGL では提供されていない高度な機能へのアクセスが可能であるためです。

この WebGPU の初回リリースは、ChromeOS、macOS、Windows で利用できます。他のプラットフォームへの対応は年内に予定されています。

ウェブ グラフィックの新しい夜明け

WebGPU はウェブ向けの新しい API です。Direct3D 12、Metal、Vulkan と同様に、最新のハードウェア機能を公開し、GPU でレンダリングと計算オペレーションを可能にします。WebGL ファミリーの API とは異なり、WebGPU はより高度な GPU 機能にアクセスでき、GPU での一般的な計算をファーストクラスでサポートします。この API はウェブ プラットフォームを念頭に設計されており、JavaScript の慣用的な API、Promise との統合、動画のインポートのサポート、エラー メッセージの改善など、デベロッパー エクスペリエンスが向上しています。

WebGPU のこの初期リリースは、今後のアップデートと機能強化の基盤となります。この API は、より高度なグラフィック機能を提供します。デベロッパーは、追加機能のリクエストを送信することをおすすめします。また、Chrome チームは、シェーダー コアにさらにアクセスできるようにし、WGSL(WebGPU シェーディング言語)で機械学習の最適化と人間工学をさらに進めていく予定です。

WebGPU は、W3C の「GPU for the Web」コミュニティ グループによる共同作業の成果です。このグループには、Mozilla、Apple、Intel、Microsoft などの大手企業が参加しています。2017 年の最初の設計から 6 年間の開発(90 人のコントリビューター、2,000 件の commit、3,000 件の問題)を経て、Chrome で最初の実装が利用可能になりました。Firefox と Safari のサポートも進行中です。

Chromium の Dawn ライブラリと Firefox の wgpu ライブラリはどちらもスタンドアロン パッケージとして利用できます。これらのライブラリは、OS GPU API を抽象化する優れたポータビリティと人間工学的なレイヤを提供します。ネイティブ アプリケーションでこれらのライブラリを使用すると、EmscriptenRust web-sys を介して WASM に簡単に移植できます。

ブラウザ サポート

WebGPU のこの初期リリースは、Vulkan をサポートする ChromeOS デバイス、Direct3D 12 をサポートする Windows デバイス、macOS の Chrome 113 で利用できます。Linux、Android、既存のプラットフォームのサポート拡大は近日中に提供される予定です。

WebGPU は、Chrome での初期実装に加えて、FirefoxSafari でも開発中です。

ライブラリのサポート

広く使用されている多くの WebGL ライブラリは、すでに WebGPU サポートの実装を開始しているか、すでに実装しています。つまり、WebGPU を使用するには、1 行の変更のみが必要になる場合があります。

  • Babylon.js はすでに WebGPU を完全にサポートしています。
  • PlayCanvas が WebGPU の初期サポートを発表しました。
  • TensorFlow.js は、ほとんどの演算子の WebGPU 最適化バージョンをサポートしています。
  • Three.js の WebGPU サポートは現在開発中です。をご覧ください。

リソース

WebGPU は重要な技術です。詳しくは、以下のリソースをご覧ください。

謝辞

この機能の実現にご協力いただいたすべての Chromium コントリビューター、特に Intel の皆様に心より感謝いたします。