その「GPU時間」の値, 無意味かも : モバイル端末におけるGPU時間の計測について

タグ:
日時:
2024年08月22日(木)16時20分〜17時20分
形式: レギュラーセッション(60分)
プラットフォーム: モバイル
受講スキル:
・Android で RenderDoc やゲームエンジンの機能を使ってGPU負荷の計測を試みたことがある方 ・グラフィクスAPIでのGPU時間の計測に興味のある方 ・特にモバイル端末上での, ランタイムでのGPU時間の計測/表示に興味のある方
受講者が得られるであろう知見:
・RenderDoc でのGPU時間("Duration")が Android では無意味なこと, またその理由 ・モバイル端末のGPUに特徴的な TB(D)R なGPUの動作の特徴 ・グラフィクスAPIでのGPU時間の計測を, TB(D)R で正しく行い, 無意味な計測を避ける方法 ・Unity / Unreal Engine 製 Android アプリでのGPU時間の表示について, その方法や, 無意味な計測値など注意点
セッションの内容

Android でのGPU負荷のプロファイリング手段として RenderDoc が紹介されることがあります.
ですが実は, RenderDoc の ⏰ ボタン で得られるGPU時間("Duration")の値は,
Android の端末では何ら有用な値にはなりません.

また Unity / Unreal Engine 製のアプリにおけるランタイムでのGPU時間の表示についても,
標準のままでは行えなかったり, 同様に実は無意味であるような値も表示されたりします.

これはモバイル端末のGPUで主流の Tile-Based (Deferred) Renderer なアーキテクチャにおいて,
グラフィクスAPIのGPUタイムスタンプ機能がかなり特殊な挙動をすることが関係しています.

今回は, グラフィクスAPIを使ったGPU時間の計測とリアルタイムでの表示や,
TB(D)R において, 無意味な値を得てしまうのを避け, これを正しく行うために必要な知見を共有します.

Unity / Unreal Engine 製の Android アプリでのGPU時間の計測に関しても,
無意味な値を参考にしてしまうことを避けるために, 重要な知識になります.


講演資料

  • CEDEC2024_その「GPU時間」の値_無意味かも_モバイル端末におけるGPU時間の計測について_CEDiL版.pdf

※資料のダウンロードにはログインが必要です。


講演者プロフィール

キャッシュ ジェームス富増

キャッシュ ジェームス富増
所属 : 元気株式会社

2016年に元気株式会社に入社, 2017年から内製エンジンの描画周りの開発に関わり始める.
2019年から Vulkan を用いたレンダラの開発やパフォーマンス調査などに従事.
グラフィクスの低レイヤ周りに興味がある.

《講演者からのメッセージ》
ターゲットデバイスでのパフォーマンスの調査/調整には CPU 処理に限らずそれと並列に実行される GPU 処理の時間を調べることが肝要ですが,
ことモバイル端末においては, 手法やその有効性に関する誤解や疑問が多くみられます.
今回はその辺りのモバイル端末特有の事情についての知見を共有させていただきます.