Performance 是否有关于AVX2采集指令延迟的数据?

Performance 是否有关于AVX2采集指令延迟的数据?,performance,x86,latency,micro-optimization,avx2,Performance,X86,Latency,Micro Optimization,Avx2,是否有关于AVX2收集延迟的数据 (例如,一条访问单个缓存线的_mm256 _i32gather _ps指令)此页面提供所有内部函数的延迟数据: _mm256_i32gather_ps的延迟为6。实际上,这实际上取决于硬件。如果您查看Agner Fog,您会发现Zen1和Zen2没有列出延迟,但Vdps的吞吐量为13-20和9-16。对于英特尔处理器,我们有: xmm ymm Processor throughpu

是否有关于AVX2收集延迟的数据


(例如,一条访问单个缓存线的_mm256 _i32gather _ps指令)

此页面提供所有内部函数的延迟数据:


_mm256_i32gather_ps的延迟为6。

实际上,这实际上取决于硬件。如果您查看Agner Fog,您会发现Zen1和Zen2没有列出延迟,但Vdps的吞吐量为13-20和9-16。对于英特尔处理器,我们有:

                     xmm                 ymm
Processor    throughput latency  throughput latency
-------------------------------------------------------
Haswell          9                    12
Broadwell        6                     7
Skylake          4         12          5       13
SkylakeX         4         12          5       13
Coffee Lake      4         12          5       13

此外,不再列出AVX2采集指令的吞吐量/延迟,但AVX512也有一些吞吐量/延迟。

只有一个经验数据点-我最近为采集的负载运行了一个快速基准测试,吞吐量非常差-我加载了一个分割向量,因此,向量的前半部分来自一条缓存线,后半部分来自另一条缓存线-这似乎需要相当多的周期。注意:这些是最小延迟。不可能,最小延迟对于最小的道集(2个元素)是17个周期,对于大的道集(8个元素,如DD形式)是22个周期,至少如果你以通常的方式从地址输入到结果进行测量。同样值得检查的是,他们发布了他们使用的微基准指令序列,并自动化了测试。@PeterCordes-Wow。谢谢你的宝贵资源。这些表格中的信息太多了。我总是关闭“文档”和“IACA”列;我不在乎他们有时会错,我只是想要真正的测量。这就减少了混乱,足以比较来自两个微体系结构的数据。