【发布时间】:2013-04-08 15:14:24
【问题描述】:
在another question on SO 中,我们尝试(并成功)找到了替换 AVX 缺失指令的方法:
__m256d _mm256_dp_pd(__m256d m1, __m256d m2, const int mask);
有人知道这条指令丢失的原因吗?部分回答here。
【问题讨论】:
-
“失踪”是什么意思?从字面上看,有数以百万计的东西 AVX 没有说明,除了“说明不是 AVX 的一部分”之外没有其他理由
-
我的错,“缺失”,因为我希望 AVX 实现它,因为单精度版本已经存在 (_mm256_dp_ps)。我想了解他们为什么选择不实施它(哲学或技术原因)。但你是对的,这可能不是最好的术语。
-
点积指令是缓慢的 bozo ISA 扩展,除了鼓励新手矢量程序员选择笨拙的数据布局外,几乎什么也没做。一般来说,应尽可能避免横向操作,点积是最严重的违规行为之一。
-
我正在阅读 2015 年 9 月的上述评论(来自@StephenCanon),但我仍然想发表评论。点积是数值计算中最有用和最常见的运算之一。当然,向量单元必须有相应的操作。像佳能先生这样笼统地说,却不提供任何解释,真是令人讨厌。
标签: c++ performance simd avx