【问题标题】:PAPI: what does Clock reference cycles mean?PAPI:时钟参考周期是什么意思?
【发布时间】:2017-04-11 21:45:46
【问题描述】:

我正在使用 PAPI 库来调整和分析我的应用程序。

我想知道(PAPI_REF_CYC:参考时钟周期)实际上是什么意思?

提前致谢,

【问题讨论】:

    标签: cpu metric papi


    【解决方案1】:

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

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

    由于核心时钟可能会减慢或加快,因此比较两种不同的衡量标准是没有意义的。
    sn-p A 在 100 个核心时钟中运行,而 sn-p B 在 200 个核心时钟中运行意味着 B 通常更慢(它需要双倍的工作) ,但不一定 B 比 A 花费更多时间,因为单位不同。 这就是参考时钟发挥作用的地方 - 它是统一的。
    如果 sn-p A 在 100 个参考时钟中运行,而 sn-p B 在 200 个参考时钟中运行,那么 B 确实比 A 花费了更多时间。

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

    【讨论】:

    • 定义是正确的,但比较示例可能相反:即,您应该比较真实周期,而不是参考周期(这实际上只是不间断的墙-时钟时间)。如果一段代码在 100 个实际周期和 100 个参考周期中运行,而另一个代码片段在 200 个实际周期和 100 个参考周期中运行(因为平均 CPU 频率是第一种情况的两倍),那么它们的性能是否相同,或者是第二个是否需要双倍的“时间”(通过以 2 倍的频率运行可以方便地取消)?正确的解释取决于它是受 CPU 还是 L3/内存限制。
    • 特别是,对于许多您不能或不想完全控制频率的基准测试,报告实际周期非常方便,这通常与实际性能更好、更稳定地相关联存在频率缩放。
    • @BeeOnRope 好点!我完全把时钟反过来了!
    • 但是反过来,如果程序的一部分因为受到 cpu 性能以外的其他因素的限制而变慢,那么计算 ref-cycles 会更有用代码在该特定函数中很慢。我认为这只是对挂钟时间进行采样以识别代码的慢速部分。对吗?
    • @Peter 是的,ref-cycles 更好,例如,用于分析受网络限制的应用程序。使用挂钟会给你一个统一的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2017-09-24
    • 2022-01-22
    • 2010-10-25
    相关资源
    最近更新 更多