受this answer启发
FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2
对于Sandy / Ivy Bridge,Broad / Haswell,Sky / Kaby Lake,可以在核心上发布的正常装载/装载和存储的数量是多少?同样有趣的是AMD Bulldozer,Jaguar和Zen的数量。
PS - 我知道由于缓存/内存带宽可能不是一个可持续的速率,我只是询问问题。
答案 0 :(得分:5)
基于以下信息:
Sandy / Ivy:每个周期,2个负载,或1个负载和1个存储。 256位加载和存储计数加倍,但仅限于加载或存储本身 - 它仍然只有一个地址,因此AGU在下一个周期再次可用。通过混合大约256b操作,每个周期仍然可以获得2x 128b负载和1x 128b存储。
Haswell / Broadwell:2加载和商店,256位加载/存储不计数加倍。端口7(存储AGU)只能处理简单的地址计算(base + const,没有索引),复杂的情况会转到p2 / p3并与负载竞争,简单的情况可能无论如何都会竞争但至少不要' 到。
Sky / Kaby:和Broadwell一样
推土机:2次装载,或1次装载和1次装载。 256位加载和存储计数加倍。
Jaguar:1次加载或1次存储,256位加载和存储计数加倍。到目前为止这个列表中最糟糕的一个,因为它是列表中唯一的低功耗μarch。
Ryzen:2次加载,或1次加载和1次存储。 256位加载和存储计数加倍。