0

次の問題が発生しました。を使用して cuda アプリケーションのgst_efficiencyとを測定したい。cuda 5.0 で配布されたドキュメントには、コンピューティング機能 2.0 ~ 3.0 を備えたデバイスに対して次の式を使用してこれらを生成するように指示されています。gld_efficiencynvprof

gld_efficiency = 100 * gld_requested_throughput / gld_throughput

gst_efficiency = 100 * gst_requested_throughput / gst_throughput

必要なメトリックについては、次の式が提供されます。

gld_throughput = ((128 * global_load_hit) + (l2_subp0_read_requests + l2_subp1_read_requests) * 32 - (l1_local_ld_miss * 128)) / gputime

gst_throughput = (l2_subp0_write_requests + l2_subp1_write_requests) * 32 - (l1_local_ld_miss * 128)) / gputime

gld_requested_throughput = (gld_inst_8bit + 2 * gld_inst_16bit + 4 * gld_inst_32bit + 8
* gld_inst_64bit + 16 * gld_inst_128bit) / gputime

gst_requested_throughput = (gst_inst_8bit + 2 * gst_inst_16bit + 4 * gst_inst_32bit + 8
* gst_inst_64bit + 16 * gst_inst_128bit) / gputime

使用されるメトリクスの数式が指定されていないため、これらは nvprof でカウントできるイベントであると想定しています。しかし、一部のイベントは私の gtx 460 では利用できないようです (gtx 560 Ti も試しました)。の出力を貼り付けましたnvprof --query-events

何が間違っているのか、または私が誤解しているものはありますか?

編集: さまざまなパラメーターについてアプリケーションを分析しようとしているため、CUDA Visual Profiler を使用したくありません。nvprofしたがって、複数のパラメーター構成を使用して実行し、複数のイベント (それぞれを 1 回の実行で) を記録してから、データをテーブルに出力したいと考えています。これはすでに自動化されており、他のメトリック (つまり、発行された命令) で機能しており、ロードとストアの効率のためにこれを実行したいと考えています。これが、私が を含むソリューションに興味がない理由ですnvvp。ちなみに、私のアプリケーションnvvpはストア効率に必要なメトリックを計算できないため、この場合はまったく役に立ちません。

4

1 に答える 1