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