最近 CPU 代架构的每个周期 Load/stores
Load/stores per cycle for recent CPU architecture generations
灵感来自 this answer 到
FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2
可以在核心上发布的 just-loads/loads-and-stores 数量是多少 - 对于 Sandy/Ivy Bridge、Broad/Haswell、Sky/Kaby Lake?同样有趣的是 AMD Bulldozer、Jaguar 和 Zen 的数量。
PS - 我知道由于 cache/memory 带宽,这可能不是一个可持续的速率,我只是问问题。
基于以下信息:
- http://users.atw.hu/instlatx64/
- http://www.agner.org/optimize/
- http://www.agner.org/optimize/blog/read.php?i=423
- https://en.wikichip.org/wiki/amd/microarchitectures/zen
Sandy/Ivy:每个周期,2 次加载,或 1 次加载和 1 次存储。 256 位加载和存储计数加倍,但仅限于加载或存储本身 - 它仍然只有一个地址,因此 AGU 在下一个周期再次可用。通过混合一些 256b 操作,您仍然可以获得每个周期 2x 128b 加载和 1x 128b 存储。
Haswell/Broadwell: 2 加载 and 一个存储,256 位 loads/stores 不 算双倍。端口7(store AGU)只能处理简单的地址计算(base+const,无索引),复杂的情况会去p2/p3和负载竞争,简单的情况可能会竞争无论如何,但至少不要有。
Sky/Kaby: 与 Broadwell
相同
推土机:2 装载量,或 1 装载量和 1 装载量。 256 位加载和存储计数加倍。
Jaguar:1 次加载或 1 次存储,256 位加载和存储计数加倍。到目前为止,这是该列表中最差的一个,因为它是列表中唯一的低功耗 µarch。
Ryzen:2 次加载,或 1 次加载和 1 次存储。 256 位加载和存储计数加倍。
灵感来自 this answer 到
FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2
可以在核心上发布的 just-loads/loads-and-stores 数量是多少 - 对于 Sandy/Ivy Bridge、Broad/Haswell、Sky/Kaby Lake?同样有趣的是 AMD Bulldozer、Jaguar 和 Zen 的数量。
PS - 我知道由于 cache/memory 带宽,这可能不是一个可持续的速率,我只是问问题。
基于以下信息:
- http://users.atw.hu/instlatx64/
- http://www.agner.org/optimize/
- http://www.agner.org/optimize/blog/read.php?i=423
- https://en.wikichip.org/wiki/amd/microarchitectures/zen
Sandy/Ivy:每个周期,2 次加载,或 1 次加载和 1 次存储。 256 位加载和存储计数加倍,但仅限于加载或存储本身 - 它仍然只有一个地址,因此 AGU 在下一个周期再次可用。通过混合一些 256b 操作,您仍然可以获得每个周期 2x 128b 加载和 1x 128b 存储。
Haswell/Broadwell: 2 加载 and 一个存储,256 位 loads/stores 不 算双倍。端口7(store AGU)只能处理简单的地址计算(base+const,无索引),复杂的情况会去p2/p3和负载竞争,简单的情况可能会竞争无论如何,但至少不要有。
Sky/Kaby: 与 Broadwell
相同推土机:2 装载量,或 1 装载量和 1 装载量。 256 位加载和存储计数加倍。
Jaguar:1 次加载或 1 次存储,256 位加载和存储计数加倍。到目前为止,这是该列表中最差的一个,因为它是列表中唯一的低功耗 µarch。
Ryzen:2 次加载,或 1 次加载和 1 次存储。 256 位加载和存储计数加倍。