With the case-insensitive file system patch from
http://llvm.org/bugs/show_bug.cgi?id=9656#c15
applied to dragonegg 2.9, the following Polyhedron 2005 benchmarks are seen on
x86_64-apple-darwin10
under gcc 4.5.3svn using the dragonegg plugin...
===============================================================================Date
& Time : 8 Apr 2011 19:52:56
Test Name : de-gfortran_lin_O3
Compile Command : de-gfortran45 -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o
%n
Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct
linpk mdbx nf protein rnflow test_fpu tfft
Maximum Times : 2000.0
Target Error % : 0.100
Minimum Repeats : 10
Maximum Repeats : 100
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 1.28 26680 12.36 10 0.0025
aermod 25.42 1044024 18.33 10 0.0022
air 1.09 53492 7.64 10 0.0641
capacita 0.60 37016 46.78 10 0.0095
channel 0.33 22752 1.97 10 0.0102
doduc 2.09 136412 30.55 10 0.0073
fatigue 1.04 69720 9.01 10 0.0592
gas_dyn 0.90 58952 11.67 10 0.0987
induct 2.15 175240 27.01 10 0.0098
linpk 0.26 18824 15.67 10 0.0310
mdbx 0.76 53540 11.98 10 0.0083
nf 0.38 23920 31.02 13 0.0903
protein 1.25 74776 40.03 10 0.0261
rnflow 1.62 75624 31.95 10 0.0256
test_fpu 1.35 62352 11.45 10 0.0162
tfft 0.25 18576 2.15 12 0.0362
Geometric Mean Execution Time = 14.14 seconds
===============================================================================
This compares to the benchmark results for llvm-gfortran from llvm-gcc42 2.9...
===============================================================================Date
& Time : 8 Apr 2011 21:32:22
Test Name : llvm_gfortran_lin_p4
Compile Command : llvm-gfortran -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o
%n
Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct
linpk mdbx nf protein rnflow test_fpu tfft
Maximum Times : 2000.0
Target Error % : 0.100
Minimum Repeats : 10
Maximum Repeats : 100
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 0.79 26496 12.99 10 0.0013
aermod 18.40 1012996 16.83 10 0.0362
air 1.07 53244 7.93 10 0.0268
capacita 0.53 36728 46.43 10 0.0124
channel 0.30 22568 2.20 10 0.0214
doduc 2.03 131624 29.81 10 0.0187
fatigue 0.92 65524 9.39 10 0.0407
gas_dyn 0.76 54252 13.15 15 0.0991
induct 2.01 170684 24.56 10 0.0839
linpk 0.24 18216 15.68 10 0.0176
mdbx 0.74 53576 12.04 10 0.0254
nf 0.33 23024 31.82 14 0.0761
protein 1.10 70360 39.70 10 0.0348
rnflow 1.52 66152 32.30 10 0.0101
test_fpu 1.28 57000 11.26 10 0.0159
tfft 0.24 18572 2.15 13 0.0661
Geometric Mean Execution Time = 14.28 seconds
===============================================================================
and the benchmark results for the gfortran compiler from FSF gcc 4.5.3svn
itself...
===============================================================================Date
& Time : 8 Apr 2011 22:45:20
Test Name : gfortran_lin_p4
Compile Command : gfortran-fsf-4.5 -ffast-math -funroll-loops -msse3 -O3 %n.f90
-o %n
Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct
linpk mdbx nf protein rnflow test_fpu tfft
Maximum Times : 2000.0
Target Error % : 0.100
Minimum Repeats : 10
Maximum Repeats : 100
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 1.79 42704 10.35 10 0.0143
aermod 40.09 1411316 22.00 10 0.0139
air 2.29 77844 5.66 14 0.0847
capacita 1.73 81776 33.23 10 0.0085
channel 0.55 34712 1.84 11 0.0966
doduc 4.60 192784 27.91 10 0.0100
fatigue 1.54 81592 8.04 10 0.0126
gas_dyn 2.84 717448 4.46 16 0.0805
induct 3.64 174576 13.11 10 0.0078
linpk 0.73 38560 15.39 10 0.0366
mdbx 1.54 73876 11.36 10 0.0183
nf 1.92 79880 29.79 15 0.0983
protein 3.44 119336 38.70 10 0.0061
rnflow 5.13 188832 23.80 10 0.0153
test_fpu 4.14 163152 8.70 10 0.0189
tfft 0.50 26592 1.88 10 0.0322
Geometric Mean Execution Time = 11.40 seconds
================================================================================
Hi Jack, thanks for the numbers. Any chance of analysing why gcc does better on those where it does much better than dragonegg? Ciao, Duncan.> With the case-insensitive file system patch from http://llvm.org/bugs/show_bug.cgi?id=9656#c15 > applied to dragonegg 2.9, the following Polyhedron 2005 benchmarks are seen on x86_64-apple-darwin10 > under gcc 4.5.3svn using the dragonegg plugin... > > ===============================================================================> Date& Time : 8 Apr 2011 19:52:56 > Test Name : de-gfortran_lin_O3 > Compile Command : de-gfortran45 -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o %n > Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft > Maximum Times : 2000.0 > Target Error % : 0.100 > Minimum Repeats : 10 > Maximum Repeats : 100 > > Benchmark Compile Executable Ave Run Number Estim > Name (secs) (bytes) (secs) Repeats Err % > --------- ------- ---------- ------- ------- ------ > ac 1.28 26680 12.36 10 0.0025 > aermod 25.42 1044024 18.33 10 0.0022 > air 1.09 53492 7.64 10 0.0641 > capacita 0.60 37016 46.78 10 0.0095 > channel 0.33 22752 1.97 10 0.0102 > doduc 2.09 136412 30.55 10 0.0073 > fatigue 1.04 69720 9.01 10 0.0592 > gas_dyn 0.90 58952 11.67 10 0.0987 > induct 2.15 175240 27.01 10 0.0098 > linpk 0.26 18824 15.67 10 0.0310 > mdbx 0.76 53540 11.98 10 0.0083 > nf 0.38 23920 31.02 13 0.0903 > protein 1.25 74776 40.03 10 0.0261 > rnflow 1.62 75624 31.95 10 0.0256 > test_fpu 1.35 62352 11.45 10 0.0162 > tfft 0.25 18576 2.15 12 0.0362 > > Geometric Mean Execution Time = 14.14 seconds > > ===============================================================================> > This compares to the benchmark results for llvm-gfortran from llvm-gcc42 2.9... > > ===============================================================================> Date& Time : 8 Apr 2011 21:32:22 > Test Name : llvm_gfortran_lin_p4 > Compile Command : llvm-gfortran -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o %n > Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft > Maximum Times : 2000.0 > Target Error % : 0.100 > Minimum Repeats : 10 > Maximum Repeats : 100 > > Benchmark Compile Executable Ave Run Number Estim > Name (secs) (bytes) (secs) Repeats Err % > --------- ------- ---------- ------- ------- ------ > ac 0.79 26496 12.99 10 0.0013 > aermod 18.40 1012996 16.83 10 0.0362 > air 1.07 53244 7.93 10 0.0268 > capacita 0.53 36728 46.43 10 0.0124 > channel 0.30 22568 2.20 10 0.0214 > doduc 2.03 131624 29.81 10 0.0187 > fatigue 0.92 65524 9.39 10 0.0407 > gas_dyn 0.76 54252 13.15 15 0.0991 > induct 2.01 170684 24.56 10 0.0839 > linpk 0.24 18216 15.68 10 0.0176 > mdbx 0.74 53576 12.04 10 0.0254 > nf 0.33 23024 31.82 14 0.0761 > protein 1.10 70360 39.70 10 0.0348 > rnflow 1.52 66152 32.30 10 0.0101 > test_fpu 1.28 57000 11.26 10 0.0159 > tfft 0.24 18572 2.15 13 0.0661 > > Geometric Mean Execution Time = 14.28 seconds > > ===============================================================================> > and the benchmark results for the gfortran compiler from FSF gcc 4.5.3svn itself... > > ===============================================================================> Date& Time : 8 Apr 2011 22:45:20 > Test Name : gfortran_lin_p4 > Compile Command : gfortran-fsf-4.5 -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o %n > Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft > Maximum Times : 2000.0 > Target Error % : 0.100 > Minimum Repeats : 10 > Maximum Repeats : 100 > > Benchmark Compile Executable Ave Run Number Estim > Name (secs) (bytes) (secs) Repeats Err % > --------- ------- ---------- ------- ------- ------ > ac 1.79 42704 10.35 10 0.0143 > aermod 40.09 1411316 22.00 10 0.0139 > air 2.29 77844 5.66 14 0.0847 > capacita 1.73 81776 33.23 10 0.0085 > channel 0.55 34712 1.84 11 0.0966 > doduc 4.60 192784 27.91 10 0.0100 > fatigue 1.54 81592 8.04 10 0.0126 > gas_dyn 2.84 717448 4.46 16 0.0805 > induct 3.64 174576 13.11 10 0.0078 > linpk 0.73 38560 15.39 10 0.0366 > mdbx 1.54 73876 11.36 10 0.0183 > nf 1.92 79880 29.79 15 0.0983 > protein 3.44 119336 38.70 10 0.0061 > rnflow 5.13 188832 23.80 10 0.0153 > test_fpu 4.14 163152 8.70 10 0.0189 > tfft 0.50 26592 1.88 10 0.0322 > > Geometric Mean Execution Time = 11.40 seconds > > ===============================================================================> > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Marcus G. Daniels
2011-Apr-09 14:56 UTC
[LLVMdev] dragonegg/llvm-gfortran/gfortran benchmarks
On 4/9/2011 6:09 AM, Duncan Sands wrote:> Hi Jack, thanks for the numbers. Any chance of analysing why gcc does better on > those where it does much better than dragonegg? > > Ciao, Duncan.Also, does -fplugin-arg-dragonegg-enable-gcc-optzns get Dragonegg to match GCC performance where GCC was faster? Marcus