1.使える時はGPUを使ってビデオ会議の背景置き換えを精緻化(2/2)まとめ
・WebベースのGPUを使った推論はOpenGLの性能の約25%しか達成できない
・これはWebGLがML作業ではなく主に画像レンダリング用にに設計されたため
・Multiple Render Targetsを使ってメモリ操作の効率化を実現して性能を向上
2.WebGL使用時のMLを高速化
以下、ai.googleblog.comより「High-Definition Segmentation in Google Meet」の意訳です。元記事の投稿は2022年8月25日、Tingbo HouさんとJuhyun Leeさんによる投稿です。
アイキャッチ画像はstable diffusion
また、このセグメンテーションモデルの付属のモデルカードを公開し、公正な評価について詳述しています。私達の分析によると、このモデルは様々な地域、肌色、性別で一貫した性能を発揮し、IoU指標にはわずかな偏差があるのみです。
Model | Resolution | Inference | IoU | Latency(ms) |
CPU segmenter | 256×144 | Wasm SIMD | 94.00% | 8.7 |
GPU segmenter | 512×288 | WebGL | 96.90% | 4.3 |
Macbook Pro(2018モデル)での従来のセグメンテーションモデルと新しいHDセグメンテーションモデルとの比較
WebGL による Web ML の高速化
Webベースの推論における共通の課題は、Web技術が、デバイス上でネイティブに動作するアプリと比較して、性能上のペナルティを受ける可能性があることです。GPUの場合、このペナルティは相当なもので、ネイティブのOpenGLの性能の約 25% しか達成できません。
これは、Webベースの推論のための現在のGPU標準であるWebGLが、任意のML作業ではなく、主に画像レンダリングのために設計されたためです。特に、WebGLは、汎用計算を可能にし、モバイルやネイティブアプリでML作業を可能にするコンピュートシェーダ(compute shaders)を含んでいません。
この課題を克服するために、我々は、色や深度のような画素特性の計算に通常用いられるフラグメントシェーダで低レベルのニューラルネットワークカーネルを促進し、グラフィックスコミュニティからヒントを得た新しい最適化を適用しました。GPU上のML作業は、しばしば計算よりもメモリ帯域幅に制約されるため、Multiple Render Targets(MRT)など、メモリアクセスを向上させるレンダリング技術に焦点を当てました。
MRTは、最近のGPUに搭載されている機能で、複数の出力テクスチャ(画像を表す OpenGL オブジェクト)に対して一度に画像をレンダリングすることができます。MRTはもともとディファードシェーディング(deferred shading)のような高度なグラフィックスレンダリングをサポートするために設計されましたが、私たちはこの機能を利用して、畳み込みや完全接続レイヤーのような重要な演算に対するフラグメントシェーダの実装のメモリバンド幅使用量を劇的に削減できることを発見しました。これは、中間テンソルを複数のOpenGLテクスチャとして扱うことで実現されています。
下図では、4つのGLテクスチャを持つ中間テンソルの例を示しています。MRTでは、GPUスレッドの数、つまり重みのためのメモリ要求の回数を事実上4分の1に減らし、メモリバンド幅の使用を節約することができます。これはコードにかなりの複雑さをもたらしますが、ネイティブOpenGLの90%以上の性能を達成するのに役立ち、ネイティブアプリケーションとの差を縮めることができます。
左:Conv2Dの古典的な実装で、テンソルとOpenGLのテクスチャが1対1に対応するもの。赤、黄、緑、青のボックスは、それぞれ中間テンソルA、Bの1つのテクスチャ内の異なる位置を示します。
右:MRTを用いたConv2Dの実装では、中間テンソルA,Bはそれぞれ4つのGLテクスチャの集合で実現され、赤、黄、緑、青のボックスで描かれます。これにより、重みのリクエスト数が4倍削減されたことに注目してください。
まとめ
Google Meet で使用するミドルレンジまたはハイエンドなデバイスに搭載されているGPUを活用し て、リアルタイムセグメンテーションモデルの品質を急速に向上させることができました。WebGPUのような、Webにコンピュートシェーダをもたらす今後の技術によって実現される可能性に期待しています。また、GPU推論以外にも、XNNPACK WebAssemblyを用いた量子化推論により、低電力端末でのセグメンテーション品質の向上にも取り組んでいます。
謝辞
Meetチームとこのプロジェクトに関わった人々、特にSebastian Jansson, Sami Kalliomäki, Rikard Lundmark, Stephan Reiter, Fabian Bergmark, Ben Wagner, Stefan Holmer, Dan Gunnarsson, Stéphane Hulaud, そしてこれを可能にしたチームメンバー全員に感謝します。Siargey Pisarchyk, Raman Sarokin, Artsiom Ablavatski, Jamie Lin, Tyler Mullen, Gregory Karpiak, Andrei Kulik, Karthik Raveendran, Trent Tolley, および Matthias Grundmannの皆さんです。
3.使える時はGPUを使ってビデオ会議の背景置き換えを精緻化(2/2)関連リンク
1)ai.googleblog.com
High-Definition Segmentation in Google Meet
2)arxiv.org
Efficient Heterogeneous Video Segmentation at the Edge