问题标签 [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.

0 投票
2 回答
1321 浏览

cuda - 如何使用 CUPTI 读取功耗?

我知道有一种方法可以使用 CUPTI 读取 GPU 的功耗。你知道我可以用什么方法吗?我在哪里可以找到例子?

0 投票
1 回答
178 浏览

c++ - 在一个循环中证明内存访问

我有以下功能:

PAPI用来计算我之间有多少负载和存储,我得到papi_start()papi_stop()结果如下:

负载(使用PAPI_LD_INS):

商店(使用PAPI_SR_INS):

其中第一个值是 N 的大小,第二个值是指令数。

我正在使用 O3 进行编译,我的缓存大小为 L1 = 32KB x 2(指令和数据,8 路)和 L2 = 1024KB(4 路)(2 核共享).. 我的 cpu 是 Intel T3200 和有SSE3..

我知道 O3 优化了代码,因此它将在其他功能中使用预取,并且由于我正在加载连续地址并且我的缓存有 64 字节的行大小,我一次加载 16 个浮点数,但我的计算没有达到这个价值观,所以有人可以向我解释一下吗?

编辑:这是我的汇编文件,很抱歉把它们扔在这里,但我从未使用过汇编,我无法真正理解其中的任何一个:

http://dl.dropboxusercontent.com/u/878621/mmc.s http://dl.dropboxusercontent.com/u/878621/mmc_asm.s

谢谢!

0 投票
1 回答
239 浏览

c - Benchmarking C code - Flush Cache

I am wondering if it is possible to force a cache flush within c using linux x86. I have read several answers answering how to do this within the shell or using asm/cache.h (requiring me to write a linux module...)

I am using the PAPI library which allows me to get very close to the exact number of clock cycles that a given block of code takes to execute. However, since I want to time some extremely short functions I need to run the functions many times for accurate statistics (the timing function call takes longer than the code within the blocks takes to execute). By running the code multiple times the cache is speeding up the execution of successive calls of the same block of code and I would like to prevent this!

0 投票
1 回答
2936 浏览

linux - 找出 CPU 有多少个硬件性能计数器

在运行 Linux 的 Intel 或 AMD x86-64 系统上,我在哪里/如何找到我的 CPU 拥有的硬件性能计数器的数量?

我想perf在执行某些应用程序时使用 Linux 工具来收集硬件性能计数器数据。perf wiki 的教程说,如果我指定(使用-e标志perf statperf record)比我的 CPU 中的性能计数器更多的硬件事件,那么这些事件将在执行期间在计数器上多路复用,从而允许它们在一个单一的perf命令,但可能会降低准确性,因为并非所有计数器都一直处于活动状态。(请注意,我在这里关注硬件事件,例如缓存和 TLB 行为 - 我知道可以跟踪大量/无限数量的内核软件跟踪点而不会不准确)。

如果我找到我的处理器型号,是否有英特尔/AMD 网站可以找到此信息?我可以在系统上运行一个简单的命令来检查硬件计数器的数量吗?我检查了 and 的输出cat /proc/cpuinfox86info -a但找不到此信息。

0 投票
1 回答
2716 浏览

performance - papi_test.h:没有文件或目录

我正在尝试将 PAPI 代码附加到已经运行的代码上,但在编译时它给出了错误 papi_test.h : no such file or directory

即使在 papi-5.3.0/src/ctests 文件夹中编译文件 attach_target.c 时也会出现同样的错误。我想使用 PAPI 监视已经运行的 C 代码并将计数器附加到它。

0 投票
3 回答
120 浏览

c - System() 的性能

对于 c 中的函数 system(),如果您试图查看您运行的命令是如何执行的,它会影响硬件计数器吗例如,假设我使用 Performance API(PAPI) 并且程序是预编译的矩阵乘法应用程序

我显然遗漏了一点,但我试图找出的是,通过使用所述计数器来获得正在运行的程序的性能是可能的。从我的测试中,我会得到如下所示的狂野数字。他们显然错了,只是想找出原因

0 投票
1 回答
571 浏览

c++ - 无法将 PAPI 库与 opt llvm 链接

我正在做一个项目,我需要使用 clang 只生成位码,使用 opt 运行一些优化通道,然后创建一个可执行文件并测量它的硬件计数器。

我可以通过 clang 直接使用链接:

但是现在我想在使用 clang 的前端并使用 opt 应用优化通道之后链接它。

我正在尝试以下方式:

完成上述过程后,我收到以下错误:

它无法解析 papi 函数。提前感谢您的帮助。

0 投票
1 回答
376 浏览

c - 在不同的函数中调用 PAPI_start() 和 PAPI_stop()?

通常 PAPI 是这样使用的:

但是,我有一个应用程序,它可以像这样对代码进行计时:

我想覆盖这个 time() 函数,它在另一个文件中。我的代码:

运行应用程序时,我PAPI error -9: EventSet is currently not running从 PAPI_stop() 获得。

我认为eventSet在函数的两次运行之间共享变量就足够了。不幸的是,这似乎不起作用,因为调用 PAPI_stop() 时事件没有运行。

有没有机会解决这个问题?

0 投票
1 回答
199 浏览

c - 在 Sandy Bridge 上计算整数运算

我想计算我的代码的计算强度,但它适用于integers,而不是floats。我想过用 PAPI 计算操作的数量,但是硬件没有提供整数操作的计数器。我怎样才能做到这一点?

0 投票
1 回答
358 浏览

intel - 已安装 MIC 的 PAPI,正确发现组件,但 PAPI_add_event 失败

我为 MIC 编译并安装了最新的 PAPI 5.4.0.0。我的配置选项是:

问题是 PAPI_add_event 在我自己的程序和测试程序中总是失败。报告的错误是“无效参数”。知道为什么吗?我尝试重新配置并重新安装,但问题仍然存在。

这些是“api_component_avail”显示的结果。对我来说这看起来很正常。它也与此线程匹配:https ://software.intel.com/en-us/forums/topic/530598