【问题标题】:What CPU state has an effect on intel FPU and SSE performance?什么 CPU 状态对英特尔 FPU 和 SSE 性能有影响?
【发布时间】:2017-05-08 13:30:16
【问题描述】:

在尝试追踪 performance issue 时,我最终寻找了有关哪些信息会对 x87 和 SSE 指令的性能产生影响的信息。我发现这些信息非常难以追踪,因为它往往隐藏在大型英特尔 PDF 中,或者有时在没有太多解释的情况下在 3rd 方网站上提及。

这个问题是关于控制字、位、模式、特定数据(例如非规范化)等等。它与内存带宽、缓存、页表、对齐或任何其他与内存相关的东西无关。我会用我目前找到的基本列表来回答,但请随时添加更多细节或我不知道的新状态。

【问题讨论】:

  • 被操作的值怎么样,应该放在“这个问题的目的”列表中吗?这不是状态,但也不是其他任何东西。
  • @harold 是的。我将编辑问题。
  • 不幸的是,在现代乱序处理器中存在大量隐式内部执行状态会影响性能,通常仅以一般术语记录。因此,例如,当浮点运算的 SSE 寄存器结果被传输到不同的执行端口以供整数指令处理时,您可能会遇到停顿。无论如何,我怀疑通过提供特定性能问题的详细信息来解决问题可能会更好。
  • Markus Wittmann、Thomas Zeiser、Georg Hager 和 Gerhard Wellein,“关于当前 x86-64 架构上的浮点运算成本的简短说明:反规范、上溢、下溢和除零”,ArXiv手稿,2015 年 6 月 (online)
  • Marc Andrysco、David Kohlbrenner、Keaton Mowery、Ranjit Jhala、Sorin Lerner 和 Hovav Shacham,“论次正常浮点和异常时序”,IEEE 安全和隐私研讨会,2015 年 5 月,第 623-639 页 (online)

标签: performance floating-point sse avx x87


【解决方案1】:

到目前为止,我发现:

  • FPU 控制世界 (FCW)。这有一个影响某些操作速度的精度字段。据我所知,它几乎已过时,因为它只影响 x87 指令。
  • MXCSR 寄存器。这会通过 DAZ(非正规数为零)和 FTZ(清零)位影响 SSE 数学。使用非正规的计算速度较慢。
  • AVX 寄存器上部的状态。用 vzeroupper 指令清零。英特尔论坛上有一个非常技术性的讨论:Software consequences of extending XMM to YMM

【讨论】:

猜你喜欢
  • 2013-10-21
  • 1970-01-01
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2011-07-28
  • 1970-01-01
相关资源
最近更新 更多