- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有对英特尔 Nehalem 架构可实现的每周期最大指令数的估计?另外,影响每个周期最大指令数的瓶颈是什么?
最佳答案
电话:DR :
Intel Core、Nehalem 和 Sandybridge/IvyBridge:最多 5 个 IPC,包括 1 宏融合 cmp+分支 将 5 条指令放入 4 个融合域 uops,其余为单 uop 指令。 (其中最多 2 个可以是微融合存储或负载 + ALU。)
Haswell 高达第 9 代:使用两对 macro-fusable ALU+branch 最多可以实现每个周期 6 条指令指令和两条指令被解码为两个潜在的微融合 uops。根据 my testing on Skylake.,最大未融合域 uop 吞吐量为每个时钟 7 uop .
早期的 P6 系列:Pentium Pro/PII/PIII 和 Pentium M。还有 Pentium 4:使用 3 条被解码为 3 uop 的指令可以实现每个周期最多 3 条指令。 (没有宏融合,和 3-wide 解码和问题)。
由于增加了每时钟 5 uop 的前端带宽,Sunny Cove 上的最大 IPC 可能是 7。
来源:Agner Fog's microarch pdf and instruction tables .另见 x86标记维基。
Intel Core2 和更高版本中的乱序管道可以在每个时钟发出/重命名 4 个融合域 uops。这是瓶颈。 宏融合将结合cmp / jcc
变成一个 uop,但是每个解码块只能发生一次。 (直到哈斯韦尔)。
此外,解码(最多 4 条指令以 4-1-1-1 模式将最多 4 条指令转换为最多 7 条微指令)是 SnB 系列中微指令缓存之前的另一个重要瓶颈。多 uop 指令必须在第一个“槽”中解码。有关 Nehalem 中潜在瓶颈的更多信息,请参阅 Agner Fog 的微架构指南。
尼哈勒姆 InstLatx64显示 nop
令人惊讶的是只有 0.33c 的吞吐量,而不是 0.25,但结果是根据 https://www.uops.info/table.html那是因为 nop
在 Sandybridge 之前需要 CPU 中的 ALU 执行单元。 Agner Fog 说他没有发现 Nehalem 的退休瓶颈。
即使您可以将每 4 个 uops 设置为多个宏融合对处于循环中,但 Nehalem 的吞吐量仅为每个时钟(端口 5)一个融合测试和分支 uop。因此,即使其中一些未被采用,每个时钟也不能维持一个以上的宏融合比较和分支。 (Haswell 可以在端口 0 或端口 6 上运行未采用的分支)。
;; Should run at one iteration per clock
.l:
mov edx, [rsi] ; doesn't need an ALU uop. A store would work here, too, but a NOP need an ALU port on Nehalem.
add eax, edx
inc rsi
cmp rsi, rdi ; macro-fuses
jb .l ; with this, into 1 cmp+branch uop
mov
加载或存储占用管道带宽,因此拥有 4 宽问题/重命名有好处。前端能够比乱序内核执行的速度更快也很有用,因此在调度程序中总是有一个工作缓冲区排队,因此它可以找到指令级并行性并尽早开始 future 的负载,诸如此类。
push
/
pop
感谢堆栈引擎),
fxchg
可能是 Nehalem 中唯一不需要 ALU 端口的融合域 uop。或者也许它确实如此,比如
nop
.在 SnB 家族 uarches 上,
xor same,same
is handled in the rename/issue stage ,有时还有 reg-reg
mov
s(IVB 及更高版本)。
nop
也从未执行过,与 Nehalem 不同,因此 SnB/IvB 对于
nop
的吞吐量为 0.25c即使他们只有 3 个 ALU 端口。
关于x86 - 英特尔 Nehalem 微架构可以实现的最大 IPC 是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041009/
我试图让我的 nehalem cpu 达到单线程 FP 峰值性能,以检测我的应用程序的性能异常,但我似乎无法达到。时钟速度为3.2 GHz,我想在不使用SSE指令和多线程的情况下实现cpu的峰值FP性
是否有对英特尔 Nehalem 架构可实现的每周期最大指令数的估计?另外,影响每个周期最大指令数的瓶颈是什么? 最佳答案 电话:DR : Intel Core、Nehalem 和 Sandybridg
在带有 2Tb DRAM 的 80 核 (160HT) nehalem 架构上运行一些测试后,我遇到了一个小的 HPC 问题: 当每个线程开始请求有关“错误”套接字上的对象的信息时,具有 2 个以上套
我是一名优秀的程序员,十分优秀!