【问题标题】:Measuring the CPU frequency scaling effect测量 CPU 频率缩放效果
【发布时间】:2013-11-01 01:10:14
【问题描述】:

最近我正在尝试测量 cpu 缩放的效果。如果我用这个时钟来测量它准确吗?

    template<std::intmax_t clock_freq>
    struct rdtsc_clock {
        typedef unsigned long long rep;
        typedef std::ratio<1, clock_freq> period;
        typedef std::chrono::duration<rep, period> duration;
        typedef std::chrono::time_point<rdtsc_clock> time_point;
        static const bool is_steady = true;

        static time_point now() noexcept
        {

            unsigned lo, hi;
            asm volatile("rdtsc" : "=a" (lo), "=d" (hi));

            return time_point(duration(static_cast<rep>(hi) << 32 | lo));
        }
    };

更新

根据我另一个post的评论,我认为redtsc不能用于衡量cpu频率缩放的效果,因为redtsc的计数器不受CPU频率的影响,对吗?

【问题讨论】:

  • 您的结果与理论结果的匹配程度如何?
  • 足以呈现效果,以及它们的区别
  • 请参阅stackoverflow.com/questions/4509727/…,了解如何查看您的 RDTSC 是否支持恒定速率时钟,与省电减速等无关。
  • @TonyD 再次感谢托尼。是的,我发现 cpuinfo 中标记了 constant_tsc
  • @TonyD 你想得出一个结论,所以我可以标记为答案吗?

标签: c++ c cpu performance-testing


【解决方案1】:

从我另一个post的评论来看,简而言之,redtsc 不能用于测量 cpu 频率缩放的效果,因为 redtsc 的计数器不受 CPU 频率的影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    相关资源
    最近更新 更多