6

CUDAプロファイラーを使用するnvvpと、命令に関連する「オーバーヘッド」がいくつかあります。次に例を示します。

  • 分岐分岐オーバーヘッド;
  • 共有/グローバル メモリのリプレイ オーバーヘッド。と
  • ローカル/グローバル キャッシュ リプレイ オーバーヘッド。

私の質問は次のとおりです。

  1. これらのオーバーヘッドの原因は何ですか?そして
  2. それらはどのように計算されますか?
  3. 同様に、Global Load/Store Efficiency はどのように計算されますか?

添付ファイル: これらのオーバーヘッドを計算するすべての数式は、CUDA5 ツールキットに含まれている「CUDA Profiler ユーザー ガイド」に記載されています。

4

1 に答える 1

2

あなたの質問に対する答えのいくつかをここで見つけることができます:

CUDA プロファイラーがリプレイされた命令を示すのはなぜですか: 82% != グローバル リプレイ + ローカル リプレイ + 共有リプレイ?

Replayed Instructions (%)カーネルの実行中に再生された命令の割合を示します。リプレイされた命令は、ハードウェアによって実際に発行された命令の数と、カーネルによって実行される命令の数との差です。理想的には、これはゼロであるべきです。これは、100 * (発行された命令 - 実行された命令) / 発行された命令として計算されます。

グローバル メモリ リプレイ (%)グローバル メモリ アクセスが原因でリプレイされた命令の割合。これは、100 * (l1 グローバル ロード ミス) / 発行された命令として計算されます。

Local memory replay (%)ローカル メモリ アクセスが原因で発生した命令のリプレイの割合。これは、100 * (l1 ローカル ロード ミス + l1 ローカル ストア ミス) / 発行された命令として計算されます。

Shared bank conflict replay (%)共有メモリ バンクの競合が原因でリプレイされた命令の割合。これは、100 * (l1 共有競合)/発行された命令として計算されます。

于 2012-12-10T18:18:34.543 に答える