-
38 votesanswersviews
如何在SSE / AVX中使用融合乘法 - 加法(FMA)指令
我了解到一些Intel / AMD CPU可以同时进行多次加法并添加SSE / AVX:FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2 . 我想知道如何在代码中做到最好,我也想知道它是如何在CPU内部完成的 . 我的意思是超标量架构 . 假设我想做一个很长的总和,如下面的SSE: //sum = a1*b1 + a2*b2 + ... -
9 votesanswersviews
优化快速乘法但缓慢添加:FMA和doubledouble
当我第一次使用Haswell处理器时,我尝试使用FMA来确定Mandelbrot集 . 主要算法是这样的: intn = 0; for(int32_t i=0; i<maxiter; i++) { floatn x2 = square(x), y2 = square(y); //square(x) = x*x floatn r2 = x2 + y2; booln ma... -
17 votesanswersviews
GCC中的FMA3:如何启用
我有一个i5-4250U,它有AVX2和FMA3 . 我正在测试Linux上的GCC 4.8.1中的一些密集矩阵乘法代码 . 下面是我编译的三种不同方式的列表 . SSE2: gcc matrix.cpp -o matrix_gcc -O3 -msse2 -fopenmp AVX: gcc matrix.cpp -o matrix_gcc -O3 -mavx -fopenmp ... -
35 votesanswersviews
英特尔Broadwell处理器经历了显着的FMA性能异常
Code1: vzeroall mov rcx, 1000000 startLabel1: vfmadd231ps ymm0, ymm0, ymm0 vfmadd231ps ymm1, ymm1, ymm1 vfmadd231ps ymm2, ymm2, ymm2 vfmadd231ps ymm3, ymm3, ymm3 vfmadd23...