2

これを含むいくつかのオンラインリソースがそれを持っている場合、実行された命令の数+リプレイの数=発行された命令の数、そしてリプレイの数が正の場合、CUDAカーネルはどのように次のプロパティを持つことができますか? nvprof)?

Invocations       Avg       Min       Max       Event Name
1                 69161760  69161760  69161760  inst_executed
1                 37263115  37263115  37263115  inst_issued1
1                 19130919  19130919  19130919  inst_issued2

(inst_issued = inst_issued1 + inst_issued2 = 37263115 + 19130919; ratio = inst_executed/inst_issued > 1).

inst_issued = inst_issued1 + inst_issued2 

発行された命令の総数の正しい式は?*issued1と*issued2以外にカーネル発行の命令はありますか?もしそうなら、どのようにそれらをプロファイリングできますか?

オンラインでは、私の質問に対する明確な答えは見当たりません。たとえば、私のバージョンのnvprof --query-eventsは、-eventsへの可能な引数として上記の3つのパラメーターのみを生成します。また、CUDAプログラミングのドキュメント、上記のリンク、またはCUDA命令の最適化に関連する、私が読んだ他の10個ほどのリンクのいずれにもこれについての言及はないようです。

追加情報:

0)CUDA 5.0を実行していて、nvcc -m64 -arch=sm_30でコンパイルしています。

1)カーネルの数学のみのバージョンを実行していますが、レジスタプレッシャーがないため、グローバルメモリアクセスの数はごくわずかです。

2)nVidiaビジュアルプロファイラーにアクセスできないため、上記とは異なる回答が得られるかどうかはわかりません。

どうもありがとうございました。これがばかげている場合は、事前にお詫び申し上げます。

4

1 に答える 1

3

inst_issue2 は、2 つの命令が発行された発行スロットの数です。

inst_issued1: サイクルごとに発行された単一命令の数

inst_issued2: サイクルごとに発行されたデュアル命令の数

発行された命令の合計の計算式は次のとおりです。

inst_issued = (inst_issued2 * 2) + inst_issued1

質問で数字を使用すると、次のようになります。

inst_issued = (inst_issued2 * 2) + inst_issued1
            = (19130919 * 2) + 37263115
            = 75524953
ratio = inst_executed / inst_issued
      = 69161760 / 75524953
      = .916
于 2013-03-11T13:13:55.313 に答える