【问题标题】:Can I measure branch prediction failures on modern Intel Mac OS X?我可以在现代 Intel Mac OS X 上测量分支预测失败吗?
【发布时间】:2016-02-29 10:37:41
【问题描述】:

我想在 Mac OS X 上针对英特尔处理器的 Xcode 测量分支预测失败,显然是为了速度优化。

有没有办法对 XCode 的 Instruments 进行编程来实现这一点?

我已经检查过了,很遗憾,Xcode 文档中没有此信息。 我怀疑这可以通过一些自定义设置来实现。

目的是识别优化问题,例如: Why is it faster to process a sorted array than an unsorted array?

我知道存在一个Intel commercial solution,用于在 Linux 和 Windows 上运行的英特尔处理器。在 OS X 上,您显然只能监控在 Linux 或 Windows 系统上运行的远程 Intel 处理器。

与商业工具相比,我更喜欢一种设置/编程 Xcode 和 Apple 工具的方法,以至少在此问题上获得最低限度的可见性。

【问题讨论】:

  • 我不知道 XCode,但是 Cachegrind 可以做到。 valgrind.org/docs/manual/cg-manual.html
  • 我发现存在 OS X 兼容版本的 Cachegrind,看起来很有希望。我将编译它并尝试一下。另一方面,我注意到 Xcode 分析工具中的 Counters 工具(没有详细记录)似乎允许“计数”看起来正是分支预测失败的情况。

标签: xcode macos optimization profiling branch-prediction


【解决方案1】:

对于其他为此苦苦挣扎的人,在 Instruments 9.2 中:

  • 选择计数器
  • 转到文件>录制选项
  • 选择“采样方式:事件”
  • 选择一个事件名称(参见docs),在本例中为“BR_MISP_RETIRED.CONDITIONAL”:

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2019-11-20
      • 1970-01-01
      • 2013-11-28
      • 2013-02-12
      • 1970-01-01
      • 2013-09-20
      • 2011-01-13
      • 2012-06-09
      相关资源
      最近更新 更多