我正在使用 PAPI 库来调整和分析我的应用程序。
我想知道(PAPI_REF_CYC:参考时钟周期)实际上是什么意思?
提前致谢,
一些现代 CPU,包括 Intel 和 AMD 的 CPU,都受到限制。
这意味着它们的时钟不是固定的,而是根据激活的电源管理而变化 - 即使 CPU 的品牌频率是 X Ghz,它通常也不会以该频率运行。
有关几个实际示例技术,请参阅Intel Turbo Boost 技术/ AMD Turbo 内核和Intel Enhanced Speedstep 技术/ AMD Quiet'n'Cool 技术。
由于核心时钟可以减慢或加快,比较两种不同的措施是没有意义的。
有一个片段 A在 100 个核心时钟中运行,而片段 B在 200 个核心时钟中运行意味着 B 通常更慢(它需要双倍的工作),但不一定 B 比 A 花费更多的时间,因为单位不同。这就是参考时钟发挥作用的地方——它是统一的。
如果片段 A在 100 个参考时钟中运行,而片段 B在 200 个参考时钟中运行,那么 B 确实比 A 花费了更多时间。
将参考时钟滴答转换为时间(例如秒)并不容易,每个处理器使用不同的参考频率,即使在具有相同品牌名称的处理器之间也是如此。