[LLVMdev] llvm-gfortran polyhedron 2005 results

Jack Howarth howarth at bromo.msbb.uc.edu
Wed Jun 18 21:19:15 PDT 2008


    I've benchmarked the llvm 2.3/llvm-gcc-4.2 release against
the stock gfortran compiler from gcc 4.2.4 on a 2.33GHz MacBook Pro
using the '-ffast-math -funroll-loops -msse3 -O3' optimization flags.

llvm-gfortran

   Benchmark   Compile  Executable   Ave Run  Number   Estim
        Name    (secs)     (bytes)    (secs) Repeats   Err %
   ---------   -------  ----------   ------- -------  ------
          ac      0.38       10000     19.33      10  0.0337
      aermod     33.57       10000     22.56      12  0.0205
         air      2.00       10000     11.34      10  0.0489
    capacita      0.65       10000     66.82      30  0.1579
     channel      0.66       10000      4.72      13  0.0949
       doduc      2.30       10000     48.87      10  0.0696
     fatigue      1.18       10000     16.91      10  0.0951
     gas_dyn      1.08       10000     26.84      18  0.0810
      induct      2.33       10000     68.04      10  0.0221
       linpk      0.62       10000     30.30      14  0.0494
        mdbx      1.26       10000     17.62      10  0.0350
          nf      0.67       10000     35.87      10  0.0555
     protein      1.48       10000     57.71      10  0.0866
      rnflow      1.79       10000     47.78      10  0.0487
    test_fpu      1.58       10000     16.88      12  0.0470
        tfft      0.54       10000      3.02      12  0.0545

Geometric Mean Execution Time =      23.04 seconds

stock gfortran

   Benchmark   Compile  Executable   Ave Run  Number   Estim
        Name    (secs)     (bytes)    (secs) Repeats   Err %
   ---------   -------  ----------   ------- -------  ------
          ac      3.96       10000     15.74      12  0.0413
      aermod     56.13       10000     34.64      12  0.0530
         air      3.15       10000     10.57      12  0.0700
    capacita      1.67       10000     58.43      23  0.0980
     channel      0.82       10000      3.77      10  0.0763
       doduc      6.41       10000     48.20      10  0.0705
     fatigue      2.55       10000     13.40      10  0.0590
     gas_dyn      2.67       10000     11.09      25  0.0926
      induct      5.10       10000     90.26      10  0.0782
       linpk      1.03       10000     30.20      11  0.0957
        mdbx      1.99       10000     15.47      12  0.0894
          nf      2.30       10000     31.97      12  0.0789
     protein      4.26       10000     50.58      10  0.0867
      rnflow      6.41       10000     42.79      12  0.0772
    test_fpu      5.84       10000     14.11      13  0.0725
        tfft      1.08       10000      2.89      12  0.0940

Geometric Mean Execution Time =      20.64 seconds

Currently, llvm-gfortran only outperforms stock gfortran
in code execution for aermod and induct benchmarks.  The
llvm-gfortran compiler performs worst on the gas_dyn
benchmark. The ratio of exection times for gfortran to
llvm-gfortran show...

ac       0.814
aermod   1.54
air      0.932
capacita 0.874
channel  0.799
doduc    0.986
fatigue  0.792
gas_dyn  0.413
induct   1.33
linpk    0.997
mdbx     0.878
nf       0.891
protein  1.06
rnflow   0.896
test_fpu 0.836
tfft     0.957

The llvm-gfortran compiler does succeed in lowering the compile times
across the board though.
                  Jack



More information about the llvm-dev mailing list