【问题标题】:Hardware Performance counter on Intel Core DuoIntel Core Duo 上的硬件性能计数器
【发布时间】:2011-05-07 06:21:22
【问题描述】:

我听说有 AMD 处理器可以让您测量 缓存命中和未命中。我想知道 Intel Core Duo 机器上是否也有这样的功能,或者它们是否还不支持。

【问题讨论】:

    标签: performance x86 intel processor intel-pmu


    【解决方案1】:

    如果您在 Linux 上工作,哥伦比亚大学正在开发一个名为 LiMiT 的有趣库,它可以快速读取性能计数器并虚拟化它们以避免进程启动和停止、在处理器之间移动等问题. 我目前正在与开发人员一起上课,尽管我自己与该项目没有任何关系。

    【讨论】:

      【解决方案2】:

      是的,从远古的 Pentium Pro 开始就有很多硬件性能计数器。

      Linux 中的 Oprofile 和 perf,Linux/Windows 中的 Vtune,MacOSX 中的 Shark 都可以使用它们。

      英特尔架构文档中列出了所有计数器(第 3B 卷,第 30 章;附录 A 中的列表): http://www.intel.com/products/processor/manuals/

      甚至 Atom 也有一些性能寄存器。

      这里有一个针对不同 CPU 的好列表 http://oprofile.sourceforge.net/docs/

      【讨论】:

      【解决方案3】:

      我个人通过执行指令 rdtsc 的程序集包装器使用时间戳计数器。然后我得到一个无符号 64 位整数,其中包含自处理器上电以来经过的内部时钟周期数。两次读数之间的差异是执行其间的一段代码所需的代码周期数。可以以相同的方式访问缓存命中读数的指令。

      如果没有相关的时间框架,我很难理解通过读取缓存计数器得出什么结论。此时间范围不应太长,否则任务切换或中断可能会影响该值。

      根据 Microsoft 的说法,如果在处理器上启用了降速功能(以降低能耗),则 rdtsc 指令可能不准确,应牢记(或关闭!)。

      【讨论】:

      • 这个问题是关于读取性能计数器,而不是时间戳计数器(无论如何,这些天读取的是实时的,而不是周期)。
      【解决方案4】:

      This document 当然暗示英特尔酷睿双核处理器可以提供您所寻找的信息。我想在英特尔网站上搜索一下也很有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-06
        • 2013-08-14
        • 2010-10-09
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2015-11-27
        相关资源
        最近更新 更多