RenderDoc で GPU カウンター(ハードウェアカウンタ-) の値を見ることができます。NVIDIA GPUを使用する場合では、準備が必要なので、その手順を説明します。
準備
NVIDIA GPUを使う場合、GPUカウンタ-へのアクセスのためにライブラリの導入が必要です。これは、Nsight PerfSDK library というもので、NVIDIA の Web サイトからダウンロードする必要があります。
![](https://www.technicalife.net/wp-content/uploads/cocoon-resources/blog-card-cache/7ab44af368dbef457ca8fca10377ff37.jpg)
![](https://www.technicalife.net/wp-content/uploads/2024/01/nsight-perfsdk.png)
このサイトからzip ファイルをダウンロードします。この zip ファイルに含まれる「nvperf_grfx_host.dll」ファイルを RenderDoc が認識する以下のフォルダにコピーします。
- %USERPROFILE%\AppData\Roaming\renderdoc\plugins\nv
GPUカウンタ-の取得・確認
RenderDoc を起動して、アプリケーションのキャプチャを取得します。
その後、 Performance Counter Viewer を開きます。(表示されていない場合には、メニュー/Window/Performance Counter Viewer と辿って開いてください)。このウィンドウ内にある Capture Counters ボタンを押すと、以下のようなカウンタ-を選択するウィンドウが表示されます。
![](https://www.technicalife.net/wp-content/uploads/2024/01/gpu-counters.png)
もしここでエラーが表示されているようであれば、DLLのコピーが正しく行われているか、パスの間違いがないかなどを確認してみてください。このあと、Sample counters ボタンを押すとカウンタ-の値をサンプリングして、結果を表示します。
![](https://www.technicalife.net/wp-content/uploads/2024/01/gpu-counters-2-1024x218.png)
Vulkan のカウンター
一般的な Vulkan Built-in カウンターも用意されています。以下のようなものが用意されていました。こちらについては、準備不要・管理者として実行も不要で値を得ることができるようです。
![](https://www.technicalife.net/wp-content/uploads/2024/01/vulkan-builtin-counters.png)
まとめ
NVIDIA GPUの場合、GPUカウンタ-値を得るための準備が必要なので、その手順を紹介しました。AMD GPUの場合には標準(準備不要)で使えるらしいです。こちらは未確認です。
参考
- https://renderdoc.org/docs/window/performance_counter_viewer.html
余談、背景情報
RenderDoc の Event Browser で表示することが出来る Duration の値は、正確ではないようです。
手元では誤差とは思えない大きな値が表示されており、また、Duration表示のON/OFF を切り替えるたびに値の変動が大きいので、値の参考にできないと感じました。
![](https://www.technicalife.net/wp-content/uploads/2024/01/renderdoc-counter-difference.png)
そこで、今回のようにGPUのカウンターを得る方法にしました。ただし、Vulkan Built-in の GPU Duration カウンターの値は割と正しい値によっているようなので、こちらは信じてよいのかもしれません。しかし、これもまた Nsight Graphics で表示されるものと差分が大きいので、だんだんどれを信じてよいかわからなくなります。ベンダー提供ツールの値を一番信用したい、次点でGPUカウンターを信じたいところではあります。
ただし、AndroidなどのGPUではどのみち描画コマンド単位の計測には意味がないので、その点は気をつける必要があります。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUYwJTlGJTkzJUIxJTIwQW5kcm9pZCUyMCUyQiUyMFJlbmRlckRvYyUyMCVFMyU4MSVBN2RyYXclMjBjYWxsJUUzJTgxJUFFJUUzJTgzJTkxJUUzJTgzJTk1JUUzJTgyJUE5JUUzJTgzJUJDJUUzJTgzJTlFJUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgxJUFGJUU4JUE4JTg4JUU2JUI4JUFDJUUzJTgxJUE3JUUzJTgxJThEJUUzJTgxJUFBJUUzJTgxJTg0JTIwLSUyMFRCJTI4RCUyOVIlRTMlODElQUIlRTMlODElOEElRTMlODElOTElRTMlODIlOEJHUFUlRTYlOTklODIlRTklOTYlOTMlRTMlODElQUUlRTglQTglODglRTYlQjglQUMlRTMlODElQUIlRTklOTYlQTIlRTMlODElOTklRTIlODAlQTYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWE2YzI1NmY3ZWI4ZjIyMzVjNzc0MWFhOGVkZmQzZWM2&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBKYW1lczAxMjQmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTU4MjE4NWE5NTM1NTE2ZmE1M2Q1MzM1MzlkNmIzOWFl&blend-x=142&blend-y=486&blend-mode=normal&s=deb43e3f06914eee26b50d6eb52d6ec6)
情報
今回は、以下の環境を対象として記載しています。他の環境ではまた異なる状況となる可能性があります。
- Windows11
- NVIDIA Geforce RTX 3060
- ドライババージョン 537.58
- RenderDoc v1.30
- Nsight PerfSDK 2023.5
コメント