GCC 6.1.0与英特尔编译器15和自动矢量化性能

时间:2016-12-28 14:17:31

标签: performance gcc icc sse2

在SSE2 / AVX方面,是否有可能在GCC中实现类似的性能水平?

看起来英特尔编译器15在自动矢量化效率方面更胜一筹。 作为基准,我使用了经典的flops.c基准测试 (https://github.com/AMDmi3/flops/blob/master/flops.c

以下是我的英特尔至强E5-2690(Sandy Bridge)的结果

英特尔编译器15 [/ O2 / arch:AVX / fp:fast]

FLOPS C Program (double Precision), V2.0 18 Dec 1992

Module     Error        RunTime      MFLOPS
                        (usec)
 1     1.8119e-013      0.0034   4177.1562
 2    -1.4166e-013      0.0055   1283.6676
 3     8.2157e-015      0.0013  13600.0000
 4     1.8874e-015      0.0023   6655.1127
 5    -2.7645e-014      0.0048   6060.4082
 6     5.1903e-014      0.0041   7159.1128
 7    -8.4583e-011      0.0200    598.5387
 8    -1.4488e-014      0.0041   7293.4473

Iterations      =  512000000
NullTime (usec) =     0.0000
MFLOPS(1)       =  1823.5616
MFLOPS(2)       =  1585.2039
MFLOPS(3)       =  3663.4158
MFLOPS(4)       =  7799.1296

GCC 6.1.0 [-m32 -mavx -Ofast]

{{1}}

有些东西告诉我,我忘了在GCC中启用一些特殊的开关。

聚苯乙烯。是的我知道英特尔编译器降低了精度。

0 个答案:

没有答案