我目前正在使用 PAPI 对一些代码进行基准测试。
我获得的预设值之一是 PAPI_L1_ICA,即对 L1 指令高速缓存执行的指令高速缓存访问量。
据我所见,代码受此支配,因为算法的运行时间和 PAPI_L1_ICA 似乎或多或少相当,而其他指标,如分支错误预测、缓存未命中、tlb 未命中和 CPU 指令,通常确实如此不解释运行时间的行为。
我的问题是,什么定义了触发 L1 指令缓存访问的操作?根据我的测量,访问量约为 150.000,而例如完成的指令 PAPI_TOT_INS 的数量仅为大约 10.000。他们不应该有点平等吗?