我有一个关于x86架构(如Xeon X5660)中不同缓存级别的缓存未命中之间关系的问题。
我在OpenCL应用程序(Blackscholes)上进行了一些性能计数器分析。对于每个计数器,我将所有核心上的所有值相加,得到以下结果:
问题是为什么L3缺失次数比L2缺失次数更多?(我已经多次重新运行了分析,方差不显著)。我的基本想法是:
L2缺失= L3命中+ L3缺失
有人能解释一下这里出了什么问题吗?我错过了什么吗?
再进一步说,是什么导致最后一级缓存(CPU)的高速缓存读取?仅仅是从L2数据缺失吗?
谢谢
我在OpenCL应用程序(Blackscholes)上进行了一些性能计数器分析。对于每个计数器,我将所有核心上的所有值相加,得到以下结果:
instructions #: 493167746502.000000
L3_MISS #: 1967809.000000
L1_MISS #: 2344383795.000000
L2_DATA_MISS #: 901131.000000
L2_MISS #: 1397931.000000
memory loads #: 151559373227.000000
问题是为什么L3缺失次数比L2缺失次数更多?(我已经多次重新运行了分析,方差不显著)。我的基本想法是:
L2缺失= L3命中+ L3缺失
有人能解释一下这里出了什么问题吗?我错过了什么吗?
再进一步说,是什么导致最后一级缓存(CPU)的高速缓存读取?仅仅是从L2数据缺失吗?
谢谢