被屏蔽的FP乘法是否可以提高AVX512的性能?

时间:2018-10-18 07:59:46

标签: vectorization avx2 avx512

AVX512具有以屏蔽形式提供的几个/大多数浮点指令,您可以在其中选择要更改/清零的结果。 CPU实际是使用该信息调度表(即应执行乘法运算)还是仅设置将哪些结果覆盖并计算非屏蔽结果然后丢弃?

在实践中,这对于例如处理很有用:

for (int i=0; i<27; i++) a[i] *= b[i];

27不能被8整除,因此会有一些剩余项。一个可以创建一个单独的循环处理。或者,如果至少有4个,请使用AVX,然后一一处理其余的。许多可能性。

这个特定的循环将使一个好的编译器自动对向量进行很好的矢量化,但这只是更复杂的情况的一个示例,在这种情况下,我想手动进行矢量化,但是仍然有未使用的项,或者例如,我知道一些乘法结果没有用。

编辑:经过实验检查,看来屏蔽操作实际上较慢。

0 个答案:

没有答案