アプリのトレースをしました
このレポート ファイルでは:
1.
ドロップダウンで「CUDA -> CUDA Summary」を選択すると
表のランタイム API 呼び出し項目の下
%時間- 80.66
打ち上げ
%デバイス時間- 15.46
他のすべての時間のパーセンテージはほぼ 0% です
ここで私の質問は、時間の 19.34% とデバイス時間の 84.54% の残りはどこにあるのかということです。つまり、完全に異なる「合計時間」値に対するパーセンテージを意味する場合は?
2.
推力ベクトルを使用して、データを前後にコピーしました。このレポートの「メモリ コピー」セクションで、実行時のメモ コピーの % Time 値はすべて無視できるようです。
しかし、Runtime API Calls (80.66 という高い % Time 値を持つ) の「概要」リンクをクリックすると、犯人である「cudaMemcpy」の「Capture Time %」値が高いことがすぐにわかります。この「Runtime API Calls Summary」ページの73.75 として。
ここでの私の質問はそれです
- これは、レポートの「メモコピー」セクションに表示されていなくても、私のボトルネックが依然として throw::copy() への呼び出しであることを意味しますか?
- また、一般的に最もコストがかかる正確な関数呼び出しを実際に見つけるにはどうすればよいでしょうか?
- タイムライン機能は、これらのいずれかでどのように役立ちますか?