Какова связь между AVX и плавающей точкой, и почему AVX используется для вычислений FP? - PullRequest
0 голосов
/ 07 марта 2019

Я недавно изучал 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 и т. Д.

Ответы [ 2 ]

4 голосов
/ 08 марта 2019

Я просто хочу знать, что 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=haswell или gcc -march=znver1, или что угодно.)

1 голос
/ 07 марта 2019

AVX - это расширение SIMD для ЦП, которое позволяет обрабатывать 8 операций одинарной или 4 операции двойной точности в одной инструкции. Поэтому для приложений, в которых вы обрабатываете массивы данных однородно, вы можете потенциально увеличить пропускную способность в 4 или 8 раз, используя AVX, конкурирующую с использованием одного (скалярного) FPU.

См. Также: FMA

...