Intel AVX:为什么没有256位的双精度浮点变量点积版本?



在另一个关于SO的问题中,我们尝试(并成功)找到一种方法来替换AVX缺失的指令:

 __m256d _mm256_dp_pd(__m256d m1, __m256d m2, const int mask);

有谁知道这条指令缺失的原因吗?

这个和其他各种AVX限制的潜在原因是AVX在体系结构上只不过是两个并排的SSE执行单元——你会注意到几乎没有AVX指令在两个128位的向量之间的边界上水平操作(这在vpalignr的情况下特别烦人)。一般来说,你只需要并行地获得两个128位SSE操作,这对于大多数仅以元素方式操作的指令很有用,但不如适当的256位SIMD实现有用。

最新更新