我想使用PAPI 5.5.1来检查我的一些文本算法的性能,以观察周期、错误预测数量和管道的差异。我检查了库提供的本机事件,并使用工具papi_avail验证了我的计算机支持它们。
当我尝试同时测量最多 5 个本机事件时,它运行良好。但之后,PAPI拒绝开始计数。
这是我的简化内容:
#define NB_EVENTS 6
int CS_Events[NB_EVENTS] = {PAPI_BR_INS, PAPI_BR_MSP, PAPI_TOT_CYC, PAPI_TOT_INS, PAPI_RES_STL, PAPI_TOT_IIS};
PAPI_start_counters(CS_Events, NB_EVENTS); /* return PAPI_ECNFLCT */
PAPI_ECNFLCT的描述是:
硬件事件存在,但由于计数器资源限制无法计数
我在 PAPI/perf 文档中再也找不到这方面的信息了。(我对 x86(32|64) 和 ARM 处理器很感兴趣)。
所以计数器似乎有硬件限制?
是否存在表处理器/限制的值来了解它?
有没有其他方法可以做到这一点?