これは、nvprofがカーネル内のフロップの数をプロファイルできることを示しています(下記のパラメータを使用してください)。また、ドキュメントを参照するとき(ここではhttp://docs.nvidia.com/cuda ... flop_count_spは「述語以外のスレッドによって実行される単精度浮動小数点演算の数(加算、掛け算、掛け算累積、特殊)」です)各積和演算数に2を貢献する。」FLVのためのNvidiaのnvprof出力
しかし、私が実行したときに、(flop_count_sp_add
+ flop_count_sp_mul
+ flop_count_sp_special
+ 2 * flop_count_sp_fma
ことになっている)flop_count_sp
の結果、私はそれが合計でflop_count_sp_special
の値が含まれていないことが判明。
あなたは私に何を使用すべきかを提案できますか?この値をflop_count_sp
の合計に加えるべきか、彼の式にはflop_count_sp_special
の値は含まれていませんか?
また、これらの特別な操作について教えてください。
私は、次のコマンドラインを使用しています:myKernel
は、引数で与えられたいくつかの入力引数を持っている私のCUDAカーネルの名前です
nvprof --metrics flops_sp --metrics flops_sp_add --metrics flops_sp_mul --metrics flops_sp_fma --metrics flops_sp_special myKernel args
。
例えば私nvprof出力のセクションは、以下のように示される:
==20549== Profiling result:
==20549== Metric result:
Invocations Metric Name Metric Description Min Max Avg
Device "Tesla K40c (0)"
Kernel: mykernel(float*, int, int, float*, int, float*, int*)
2 flop_count_sp Floating Point Operations(Single Precisi 70888 70888 70888
2 flop_count_sp_add Floating Point Operations(Single Precisi 14465 14465 14465
2 flop_count_sp_mul Floating Point Operation(Single Precisio 14465 14465 14465
2 flop_count_sp_fma Floating Point Operations(Single Precisi 20979 20979 20979
2 flop_count_sp_special Floating Point Operations(Single Precisi 87637 87637 87637
個々のイベント/指標の値を指定できますか?あなたのコマンドラインは私にとっては有効ではないようですが、 'flops_sp *'のようなメトリックはありません。 – Tom