gpt4 book ai didi

c - 使用 PAPI 从 perf_event_uncore 列表读取硬件计数器

转载 作者:行者123 更新时间:2023-12-02 02:39:17 35 4
gpt4 key购买 nike

我正在尝试使用 PAPI 读取其中一个硬件计数器。当我尝试从 perf_event 列表中读取事件时,它工作正常。但是现在我需要从 perf_event_uncore 列表中读取一个计数器,它是通过 papi_native_avail 获得的,但是我收到了一个错误。运行在cascade lake架构上,linux 5.4.0-3-amd64版本。

int err = PAPI_event_name_to_code("skx_unc_imc0::UNC_M_WPQ_CYCLES_FULL",&native);
if (err != PAPI_OK)
printf("PAPI_event_name_to_code error: %d\n", err);

err = PAPI_add_event(EventSet, native);

if (err!= PAPI_OK)
printf("PAPI_add_event error: %d\n", err);

尽管 PAPI_event_name_to_code 返回 PAPI_OK,PAPI_add_event 返回 -1,即 PAPI_EINVAL - 无效参数。我尝试了多个来自 perf_event_uncore 的计数器,但我遇到了同样的问题。我是否需要使用不同的功能将其添加到事件集中?还是我做错了什么?

最佳答案

我发现了一些似乎是解决方案的东西。在像这样添加 cpu=0 规范后:PAPI_event_name_to_code("skx_unc_imc0::UNC_M_WPQ_CYCLES_FULL:cpu=0",&native) 调用 PAPI_add_event 函数时没有进一步的错误。

还要注意,我已经检查过,这个特定的硬件计数器不能和其他的一起计数,所以它应该是事件集中唯一的事件。

关于c - 使用 PAPI 从 perf_event_uncore 列表读取硬件计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60781505/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com