的實際由內核實現的吞吐量是通過使用四個指標CUDA分析器報道:的區別是什麼:DRAM吞吐量VS全球內存吞吐量
- 全球內存負載吞吐量
- 全球內存存儲吞吐量
- DRAM讀取吞吐量
- DRAM寫入吞吐量
CUDA C最佳實踐指南將全局存儲器加載/存儲吞吐量描述爲實際的吞吐量,並且沒有具體說明DRAM讀/寫吞吐量。
CUPTI用戶指南定義:
- 全局存儲器加載吞吐量((128 * global_load_hit)+(l2_subp0_read_requests + l2_subp1_read_requests)* 32 - (l1_cached_local_ld_misses * 128))/(gputime)
- 全局存儲器存儲吞吐量(l2_subp0_write_requests + l2_subp1_write_requests)* 32 - (l1_cached_local_ld_misses * 128))/(gputime)
- DRAM讀throughpu噸爲(fb_subp0_read + fb_subp1_read)* 32/gputime
- DRAM寫吞吐量爲(fb_subp0_write + fb_subp1_write)* 32/gputime
我理解的DRAM的讀/寫吞吐量,因爲fb_subp *計數器報告許多DRAM訪問(32字節訪問時遞增1),並被收集用於所有SM。所以我很清楚吞吐量是根據gputime和訪問的字節數來計算的。
我不明白全局內存吞吐量的定義。 global_load_hit和counter沒有定義。我不明白爲什麼l1_cached_local_ld_misses在兩種情況下都被減少了。
DRAM在這種情況下與全局內存不同嗎?
如果我想知道我的內核的實際吞吐量應該使用DRAM還是全局內存吞吐量指標?
如果我想知道有多少可用帶寬被使用,我應該使用DRAM吞吐量嗎? – user760944