首页 > 解决方案 > 如何在 PAPI 中将 7 个事件放在一个事件集中

问题描述

在 PAPI 中,我试图将 7 个事件放在一个事件集中,这样我就可以在一个操作中读取 7 个结果,但我总是得到 return -1,有人可以帮助我吗?我的代码如下:

int events1[] = {
PAPI_L1_TCM,
PAPI_L2_TCM,
PAPI_L3_TCM,
PAPI_MEM_WCY,
PAPI_RES_STL,
PAPI_TLB_DM,
PAPI_TLB_IM};
PAPI_library_init(PAPI_VER_CURRENT);
i = PAPI_start_counters(events1,7);

wherei似乎是 -1 这意味着PAPI_EINVAL.

我尝试更改值PAPI_NUM_TLS,但没有奏效。

标签: eventspapi

解决方案


我现在有同样的问题。但正如我发现的那样,麻烦来自第 5 个和第 6 个计数器。这里:https ://icl.cs.utk.edu/projects/papi/wiki/PAPI3:PAPI_add_event.3 at IBM POWER6 NOTES 提到这两个计数器是特定的,据我所知应该计算具体事件。我还没有找到解决方案。对于第 5 个,我添加了 PAPI_TOT_INS 并且似乎可以工作,但是对于第 6 个,PAPI_TOT_CYC 正如他们所说的那样给出了 PAPI_ECNFLCT 错误。


推荐阅读