cpu - PAPI:时钟引用周期是什么意思?

标签 cpu metric papi

我正在使用 PAPI 库来调整和分析我的应用程序。
我想知道 (PAPI_REF_CYC : Reference clockcycles ) 实际上是什么意思?
提前致谢,

最佳答案

一些现代 CPU,包括 Intel 和 AMD 的 CPU,是 throttled .
这意味着它们的时钟不是固定的,而是根据事件的电源管理而变化 - 即使 CPU 的品牌频率是 X Ghz,通常也不会以该频率运行。

有关几个真实示例技术,请参阅 Intel Turbo boost technology/AMD Turbo coreIntel Enhanced Speedstep technology/AMD Quiet'n'Cool technology .

由于核心时钟可以减慢或加速,因此比较两种不同的措施是没有意义的。
让片段 A 在 100 个核心时钟中运行,片段 B 在 200 个核心时钟中运行意味着 B 通常较慢(它需要两倍的工作),但不一定 B 比 A 花费更多时间,因为单位不同。
这就是引用时钟发挥作用的地方 - 它是统一的。
如果代码段 A 在 100 个引用时钟中运行,而代码段 B 在 200 个引用时钟中运行,那么 B 确实比 A 花费了更多的时间。

将引用时钟滴答转换为时间(例如秒)并不容易,每个处理器使用不同的引用频率,即使在具有相同品牌名称的处理器之间也是如此。

关于cpu - PAPI:时钟引用周期是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356721/

相关文章:

python - 如何在 scikit-learn (python) 的 KernelDensity 中使用用户定义的指标

algorithm - R按反转排序的实现

x86 - 如何使用 perf 正确测量 IPC(每周期指令数)

cpu - 超线程与超标量执行

python - 在 Python 中检测 * 可用 * CPU 数量的可移植方法

python - nltk.metrics.distance中Jaccard距离度量的实现与数学定义不一致?

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

assembly - 如何定义一个用户定义的事件来被 PAPI 衡量?

c - 如何优化图像像素化程序

variables - 在内核调用之前从 CPU 初始化 GPU 的单个变量