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