Chrome 113 は、Web 用の最新の低オーバーヘッド グラフィック API である WebGPU を有効にします。

Chrome 113 は、Web 用の最新の低オーバーヘッド グラフィック API である WebGPU を有効にします。

Google は本日、現在ベータ版であるバージョン 113 以降、デフォルトの Chrome ブラウザで WebGPU サポートを有効にすることを発表しました。WebGPU は、2017 年から開発が進められている次世代グラフィックス API で、Web ブラウザーやその他のアプリケーションで Microsoft Direct3D 12、Apple Metal、Vulkan などの低オーバーヘッド API を活用することを目的としています。

WebGPU のサポートはしばらく前から利用可能でしたが、API がまだ完成しておらず、更新ごとに問題が発生する可能性があるため、Chrome ではデフォルトで無効になっています。Googleは、MozillaとAppleの両方が最終的にはFirefoxとSafariでWebGPUをサポートすると述べており、Chromiumブラウザエンジンに依存するMicrosoft EdgeやOperaなどのブラウザもGoogleと同様にWebGPUを有効にする可能性があるとしている。

Chrome 113 はまず Windows、macOS、ChromeOS 上の WebGPU をサポートしますが、Linux や Android などの「他のプラットフォーム」のサポートは「今年後半に予定されています。」このバージョンのブラウザは、5 月中にすべての Chrome ユーザーが利用できるようになる予定です。

Chrome でのサポートは、新しい API、更新された API、画像形式、ビデオ コーデックなど、新しい標準にとって大きな前進となります。StatCounter によると、Chrome 自体は世界中のブラウザ市場シェアの約 3 分の 2 を占めており、他の Chromium ベースのブラウザも含めるとブラウザ市場シェア全体のほぼ 80% を占めています。Safari と Firefox がサポートを追加すると、世界中の事実上すべての Web ブラウザーで WebGPU コードを実行できるようになります。そのため、WebGPU とは何か、および WebGPU が存在する理由を簡単に説明する価値があります。

ウェブGPUとは何ですか?

WebGPU は、 WebGLの後継のようなもので、Adobe Flash などの追加のサードパーティ プラグインを必要とせずにブラウザで OpenGL ベースのグラフィックスを表示できるようにするはるかに古い API です。WebGL は 2009 年に発表されたときは革新的でしたが、現在では OpenGL と同じ問題の多くに悩まされています。つまり、最新の GPU を最大限に活用しておらず、ドライバーのオーバーヘッドによりパフォーマンスが低下する可能性があり、機会も限られています。GPU コンピューティング負荷のサポートが不格好です。

「WebGL は主に画像を描画するために設計されていますが、(手間をかければ) 他の種類の計算を実行するために再利用できますが、WebGPU は GPU 上で一般的な計算を実行するための一流のサポートを備えています」と、 WebGPU の存在理由を説明する草案文書には記載されています。。新しい API は、Babylon.js などの環境や Unity などのゲーム エンジンのグラフィックスを向上させます。機械学習や人工知能に使用されるような GPU で高速化されたワークロードをサポートします。また、ネイティブ アプリが恩恵を受ける GPU アクセラレーションを、(特に) 写真やビデオの Web アプリで簡単に利用できるようになります。

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 と呼ばれるトランスレーターを使用します。ANGLE は、代わりに OpenGL API 呼び出しを Direct3D および Metal API 呼び出しに変換します。WebGPU を使用すると、遅い、またはメンテナンスが不十分な OpenGL 実装を作成するために、完全に別個のプロジェクトを開始する必要はありません。

WebGPU には独自のシェーダ言語 (WGSL) もあり、Chrome チームは現在もそのサポートに取り組んでいます。今日の発表では、Google は将来のリリースで WGSL を介して「シェーダ コアへのより深いアクセスを提供する予定」であると述べています。他の WebGPU API と同様に、WGSL はプラットフォームに依存せず、使用するオペレーティング システムの優先シェーダー言語に簡単に変換できます。

最後に、名前に「ネットワーク」という言葉が含まれていますが、WebGPU API はブラウザーに限定されません。wgpu プロジェクトは、WebGPU の Rust バージョンで、WebGPU アプリケーションを作成し、Web ブラウザーの外部で実行できるようにします。

今すぐ WebGPU を試してみたい場合は、Chrome 113 ベータ版をここから入手できます。コード サンプルを含む GitHub リポジトリはここから入手できます。また、 WebGPUWGSLの両方の公式ドキュメントもあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です