对于某些程序(不仅是一个程序),我发现对于大多数内核而言,缓存利用率(l2和统一)都很低(从1到10的比例最多为3)。该程序不是玩具和简单。那是正常的吗?设备是M2000。
我想知道如何衡量缓存利用率?我没有在文档中找到任何解释。
答案 0 :(得分:4)
如果内核受其他因素(例如计算或内存限制)的限制,则缓存利用率较低是正常的。真正提高缓存利用率(7或更高)的唯一方法是在该缓存中重复使用很多数据。
应将缓存利用率以峰值缓存带宽(显然是normalization的峰值)的百分比(从0到10,其中10为100%)进行测量。
通常(将因GPU而异,并且不会明确发布),可用的L2缓存带宽大约是可用内存(即GPU DRAM)带宽的2倍或更多。因此,要使该指标的读数高于5,在L2处看到的代码中的数据带宽必须高于内存带宽。这通常意味着数据重用。
应该有可能编写一个测试微基准来对此进行探索。