AVX和浮点之间有什么关系?为什么将AVX用于FP计算?

时间:2019-03-07 14:58:15

标签: x86 avx avx2 fpu

我最近在研究FP和AVX,在Wikipedia(https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Applications)上,我读到AVX用于FP计算。我不知道为什么并行环境FP是流程。同样,https://forums.aida64.com/topic/1629-real-world-benefit-of-fpu-test/格式的AIDA管理员告诉FPU使用了AVX等。

2 个答案:

答案 0 :(得分:4)

  

我只想了解天气,AVX可以在单个FP操作中提供帮助,例如将简单的3.5添加到1.5。

是的,AVX也可用于标量数学,因为它为您提供了3个操作数的无损运算。例如

vaddsd xmm1, xmm0, [b]

不同,会将3.5 + 1.5结果放入xmm1,而不会破坏xmm0中的值。
addsd xmm0, [b]

如果您告诉编译器允许这样做,则编译器将使用AVX代替SSE。 (gcc -march=haswellgcc -march=znver1或其他任何内容。)

答案 1 :(得分:1)

AVX是CPU的SIMD扩展,提供了在一条指令中处理8 x单精度或4 x双精度运算的功能。因此,对于要均匀处理数据阵列的应用程序,使用AVX(相比使用单个(标量)FPU),可以将吞吐量提高4倍或8倍。

另请参阅:FMA