我得到了以下問題。我想使用nvprof
來測量我的cuda應用程序的gst_efficiency
和gld_efficiency
。在CUDA 5.0分佈式的文檔告訴我這些使用下列公式計算能力2.0-3.0設備產生:用nvprof計算gst_throughput和gld_throughput
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)。我粘貼的output。
任何想法什麼是錯的或我誤解了什麼?
編輯: 我不想使用CUDA Visual Profiler,因爲我試圖分析我的應用程序的不同參數。因此,我想使用多個參數配置來運行nvprof
,記錄多個事件(每個事件在其一次運行中),然後以表格形式輸出數據。我已經實現了自動化併爲其他指標(即指令發佈)工作,並希望爲加載和存儲效率做到這一點。這就是爲什麼我對涉及nvvp
的解決方案不感興趣。順便說一句,對於我的應用程序nvvp
未能計算商店效率所需的度量標準,因此在這種情況下它根本無助於我。
一些其他人可以使用Visual探查,直接測量這些指標給你,讓你不需要收集所有這些事件。 – 2013-03-26 00:35:24
@YuZhou請參閱我的編輯,謝謝 – soriak 2013-03-26 08:06:22
- 查詢事件中的事件名稱可能與表中的不同。嘗試下面的公式: 'gld_throughput =((128 * l1_global_load_hit)+(l2_subp0_read_sector_queries + l2_subp1_read_sector_queries)* 32 - (l1_local_ld_miss * 128))/ gputime' 'gst_throughput =(l2_subp0_write_sector_queries + l2_subp1_write_sector_queries)* 32 - (* l1_local_ld_miss 128))/ gputime' – 2013-03-26 20:31:07