[LLVMdev] Polyhedron 2005 results for dragonegg 3.3svn

Jack Howarth howarth at bromo.med.uc.edu
Sat Jun 1 16:13:44 PDT 2013


On Sat, Jun 01, 2013 at 06:45:48AM +0200, Duncan Sands wrote:
>
> These results are very disappointing, I was hoping to see a big improvement
> somewhere instead of no real improvement anywhere (except for gas_dyn) or a
> regression (eg: mdbx).  I think LLVM now has a reasonable array of fast-math
> optimizations.  I will try to find time to poke at gas_dyn and induct: since
> turning on gcc's optimizations there halve the run-time, LLVM's IR optimizers
> are clearly missing something important.
>
> Ciao, Duncan.
>

Duncan,
   In case it helps, I benchmarked disabling individual -ffast-math optimizations (with partial results
appended). The most important optimization to the benchmark runtimes seems to be -funsafe-math-optimizations
(as can be seen from the runtime regression caused by -fno-unsafe-math-optimizations). Does llvm currently
support all of the features of FSF gcc's -funsafe-math-optimizations?
            Jack

Tested on x86_apple-darwin12

Compile Flags: -ffast-math -funroll-loops -O3 -fno-tree-vectorize

de-gfc48: /sw/lib/gcc4.8/bin/gfortran -fplugin=/sw/lib/gcc4.8/lib/dragonegg.so -specs=/sw/lib/gcc4.8/lib/integrated-as.specs
de-gfc48+optzns: /sw/lib/gcc4.8/bin/gfortran -fplugin=/sw/lib/gcc4.8/lib/dragonegg.so -specs=/sw/lib/gcc4.8/lib/integrated-as.spec
s -fplugin-arg-dragonegg-enable-gcc-optzns
gfortran48: /sw/bin/gfortran-fsf-4.8
de-gfc48+nounsafe+optzns:/sw/lib/gcc4.8/bin/gfortran -fplugin=/sw/lib/gcc4.8/lib/dragonegg.so -specs=/sw/lib/gcc4.8/lib/integrated
-as.specs -fplugin-arg-dragonegg-enable-gcc-optzns -fno-unsafe-math-optimzations
de-gfc48+math-errno+optzns: /sw/lib/gcc4.8/bin/gfortran -fplugin=/sw/lib/gcc4.8/lib/dragonegg.so -specs=/sw/lib/gcc4.8/lib/integra
ted-as.specs -fplugin-arg-dragonegg-enable-gcc-optzns -fmath-errno
de-gfc48+math-signans+optzns: /sw/lib/gcc4.8/bin/gfortran -fplugin=/sw/lib/gcc4.8/lib/dragonegg.so -specs=/sw/lib/gcc4.8/lib/integ
rated-as.specs -fplugin-arg-dragonegg-enable-gcc-optzns -fsignaling-nans

Run time (secs)

Benchmark     de-gfc48  de-gfc48   gfortran48 de-gfc48+nounsafe de-gfc48+math-errno de-gfc48+math-signans
                        +optzns                   +optzns           +optzns              +optzns

ac             11.33      8.10       8.02          9.20             8.10                  8.10 
aermod         16.03     14.45      16.13         14.83            14.20                 14.51
air             6.80      5.28       5.73          6.84             5.26                  5.31
capacita       39.89     35.21      34.96         36.72            35.21                 35.51
channel         2.06      2.29       2.69          2.30             2.29                  2.30
doduc          27.35     26.13      25.74         29.90            26.42                 26.99
fatigue         8.83      4.82       4.67          5.60             4.87                  4.82
gas_dyn        11.41      9.79       9.60         12.97            10.56                 12.13
induct         23.95     21.75      21.14         22.34            21.39                 21.91 
linpk          15.49     15.48      15.69         15.49            15.49                 15.52 
mdbx           11.91     11.28      11.39         11.85            11.27                 11.83  
nf             29.92     29.57      27.99         29.67            29.67                 29.47
protein        36.34     33.94      31.91         34.23            33.62                 33.97
rnflow         25.97     25.27      22.78         27.99            28.00                 28.00
test_fpu       11.48     10.91       9.64         10.95            10.94                 10.93 
tfft            1.92      1.91       1.91          1.91             1.90                  1.91

Geom. Mean     13.12     11.70      11.64         12.62            11.82                 12.01




More information about the llvm-dev mailing list