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

Huz*_*mad 2 x86 fpu avx avx2

我最近正在研究 FP 和 AVX,在维基百科(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等。

Pet*_*des 6

我只是想知道 AVX 是否有助于单个 FP 操作,例如将简单的 3.5 添加到 1.5。

是的,AVX 对于标量数学也很有用,因为它为您提供了 3 操作数非破坏性运算。例如

vaddsd xmm1, xmm0, [b]
Run Code Online (Sandbox Code Playgroud)

将把3.5 + 1.5结果放入 xmm1 中,而不破坏 xmm0 中的值,这与

addsd xmm0, [b]
Run Code Online (Sandbox Code Playgroud)

如果您告诉编译器允许他们这样做,编译器将使用 AVX 而不是 SSE 来处理所有事情。(gcc -march=haswell或者gcc -march=znver1,或者其他什么。)