Cuda GPU缓存利用率

Cuda GPU缓存利用率,cuda,gpu,Cuda,Gpu,对于一些程序(不仅仅是一个),我发现大多数内核的缓存利用率(l2和unified)都很低(在1到10的范围内高达3)。这些程序不是玩具和简单的。这正常吗?该设备是M2000 我想知道如何衡量缓存利用率?我在文件里找不到任何解释 如果内核受到其他因素的限制,例如计算或内存限制,那么缓存利用率低是正常的。获得真正高的缓存利用率(7或更高)的唯一方法是在该缓存中进行大量数据重用 缓存利用率应以峰值缓存带宽的百分比(从0到10,10表示100%)来衡量(显然有些情况下) 通常(因GPU而异,且未明确发布

对于一些程序(不仅仅是一个),我发现大多数内核的缓存利用率(l2和unified)都很低(在1到10的范围内高达3)。这些程序不是玩具和简单的。这正常吗?该设备是M2000


我想知道如何衡量缓存利用率?我在文件里找不到任何解释

如果内核受到其他因素的限制,例如计算或内存限制,那么缓存利用率低是正常的。获得真正高的缓存利用率(7或更高)的唯一方法是在该缓存中进行大量数据重用

缓存利用率应以峰值缓存带宽的百分比(从0到10,10表示100%)来衡量(显然有些情况下)

通常(因GPU而异,且未明确发布)可用二级缓存带宽约为可用内存(即GPU DRAM)带宽的2倍或更高。因此,要在这个指标上获得高于5的读数,代码中的数据带宽(如L2所示)必须高于内存带宽。这通常意味着数据重用


应该可以编写一个测试微基准来探索这一点。

如果内核受到某些其他因素的限制,例如计算或内存限制,那么缓存利用率低是正常的。获得真正高的缓存利用率(7或更高)的唯一方法是在该缓存中进行大量数据重用

缓存利用率应以峰值缓存带宽的百分比(从0到10,10表示100%)来衡量(显然有些情况下)

通常(因GPU而异,且未明确发布)可用二级缓存带宽约为可用内存(即GPU DRAM)带宽的2倍或更高。因此,要在这个指标上获得高于5的读数,代码中的数据带宽(如L2所示)必须高于内存带宽。这通常意味着数据重用


应该可以编写一个测试微基准来探索这一点。

谢谢。我还看到,对于某些内核,所报告的二级利用率为n/a。这是否意味着内核根本不使用缓存?但是L2命中率是一个大于零的数字。谢谢。我还看到,对于某些内核,所报告的二级利用率为n/a。这是否意味着内核根本不使用缓存?但是L2命中率是一个大于零的数字。