问题标签 [papi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ubuntu - 在 ubunutu 上安装 PAPI,运行“make test”时出现错误
我试图在我的桌面上的 ubutu 16.4 上安装 papi。我面临错误,我找不到任何解决方案。也许是因为这是我第一次使用 Papi。我从http://icl.cs.utk.edu/papi/software/index.html下载了 papi 5.5 版。我第一步通过运行 $ .\configure 将它安装在我的机器上,然后它们运行 make,但是当我运行 make test 时,出现以下错误:
cpu - PAPI:时钟参考周期是什么意思?
我正在使用 PAPI 库来调整和分析我的应用程序。
我想知道(PAPI_REF_CYC:参考时钟周期)实际上是什么意思?
提前致谢,
c++ - 为什么我需要以根用户身份运行应用程序才能使 PAPI 库正常工作?
我刚刚升级到 Ubuntu 16.04 LTS。在我的 C++ 应用程序中,我使用 PAPI 库,所以我从http://icl.utk.edu/papi/安装了它。但是由于某种原因,我不能再运行我的应用程序,而不必sudo
在开始时输入。
即使只是papi_avail
在终端上输入以查看可用的计数器,我也会得到:
如果我跑步,sudo papi_avail
我会得到这个:
Ubuntu 16.04 发生了什么变化?
c++ - 使用 perf 和 papi 测量 L1 数据缓存未命中
PAPI_L1_LDM
papi 和L1-dcache-load-misses
perf有什么区别?
我使用了相同的设置,就像这里的这篇文章。
所以,结果我得到了 papi:
不幸PAPI_L1_DCA
的是,这台机器不支持。
对于 perf(仅在用户空间,因为 papi 也仅测量用户空间而没有内核空间):调用:perf stat -B -e L1-dcache-load-misses:u,cache-misses:u ./perf
16,539 似乎更合理N=1000000
。加载数据未命中(papi 中的 PAPI_L1_LDM)和数据缓存未命中(papi 中的 PAPI_L1_DCM)有什么区别?为什么这些数字在 papi 和 perf 中不同?性能是否cache-misses:u
与 L2 缓存未命中有关?
编辑:硬件(Xeon E5-2600 v3 系列,Haswell-EP 12 核)
c++ - 使用 PAPI 为单独的 pthread 分析缓存未命中
我正在尝试调查我的程序的性能,而缓存未命中是一个巨大的瓶颈。出于测试目的,在实现PAPI
到目标应用程序之前,我需要验证东西是如何工作的,这就是我发布示例程序的原因。
我的意图是PAPI
用于监视单独线程的缓存未命中。我正在尝试使用PAPI_attach
将我的事件集应用于特定的线程 ID,但是,当不使用PAPI_attach
.
我为验证我的担忧而进行的另一个实验是在运行这个非常简单的程序时启动 Firefox 浏览器。这增加了测量缓存未命中的数量,因此很明显,关于该PAPI_attach
功能以及我如何使用它,有些东西非常奇怪。
为我的线程工作者使用以下代码:
以下代码用于生成线程:
不好的是我没有收到任何错误,这表明一切正常。
c - 调用 PAPI_start_counters 时执行冻结
我面临一个奇怪的问题,即程序在调用 PAPI_start_counters 函数时冻结。
例如,当我使用此处的代码并编译为“gcc -o papitest high_level.c -lpapi”并运行 ./papitest 后,我得到输出:该系统中有 11 个计数器,然后什么也没有。如果我尝试使用Ctrl+来终止程序,则C不会发生任何事情,而 kill -9 也不会发生任何事情。我的系统如下:
操作系统:Debian GNU/Linux 8 (jessie) 内核:Linux 3.16.0-5-amd64 架构:x86-64 采用 32 核 Intel(R) Xeon(R) CPU E5-4603 v2 @ 2.20GHz
我记得过去在运行旧内核的同一台服务器上使用 PAPI。
编辑:这是运行 dmesg 时显示的内容:
android - arm64的交叉编译
我正在尝试在juno arm 开发板上安装 papi 工具,我已经在该板上安装了 64 位 Linaro `ack-armlt' Android Common Kernel plus Android 文件系统(我按照本教程完成了该操作)。
我的系统是:
编译显示这些日志:
运行 sudo make:
我对交叉编译和/或使用 Juno board 和 Android 不是很有经验。因此,如果这是一个“基本”问题,请耐心等待,感谢您抽出宝贵时间。
events - 如何在 PAPI 中将 7 个事件放在一个事件集中
在 PAPI 中,我试图将 7 个事件放在一个事件集中,这样我就可以在一个操作中读取 7 个结果,但我总是得到 return -1,有人可以帮助我吗?我的代码如下:
wherei
似乎是 -1 这意味着PAPI_EINVAL
.
我尝试更改值PAPI_NUM_TLS
,但没有奏效。
c - libPAPI:最大同时事件度量
我想使用PAPI 5.5.1来检查我的一些文本算法的性能,以观察周期、错误预测数量和管道的差异。我检查了库提供的本机事件,并使用工具papi_avail验证了我的计算机支持它们。
当我尝试同时测量最多 5 个本机事件时,它运行良好。但之后,PAPI拒绝开始计数。
这是我的简化内容:
PAPI_ECNFLCT的描述是:
硬件事件存在,但由于计数器资源限制无法计数
我在 PAPI/perf 文档中再也找不到这方面的信息了。(我对 x86(32|64) 和 ARM 处理器很感兴趣)。
所以计数器似乎有硬件限制?
是否存在表处理器/限制的值来了解它?
有没有其他方法可以做到这一点?
x86 - 如何使用 perf 正确测量 IPC(每周期指令)
我想知道如何使用 perf 正确测量每个周期的指令。作为参考:http ://www2.engr.arizona.edu/~tosiron/papers/SPEC2017_ISPASS18.pdf用于他们inst_retired.any
的cpu_clk_unhalted.ref_tsc
计算,我现在想知道这是否是正确的方法。相比之下,PAPI 使用硬件计数器PAPI_TOT_INS
和PAPI_TOT_CYC
计算 IPC。
经过一些测量,我得出结论:
inst_retired.any:u
似乎和PAPI_TOT_INS
cpu-cycles
似乎和PAPI_TOT_CYC
在一个示例基准上,cpu-cycles
相差cpu_clk_unhalted.ref_tsc
约 25%。现在的问题是,这两个值中哪一个是正确的计算值?还是两种方法都错了?