[LLVMdev] pb05 benchmarks for llvm/dragonegg 3.2

Jack Howarth howarth at bromo.med.uc.edu
Mon Dec 10 10:33:04 PST 2012


On Mon, Dec 10, 2012 at 05:20:31AM +0100, Duncan Sands wrote:
> Hi Jack, thanks for these numbers.
>
>>     With the commit from http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121203/158488.html,
>> the Polyhedron 2005 benchmarks complete again on x86_64-apple-darwin12. The result are similar to what
>> were seen with FSF gcc 4.6.2svn and llvm/dragonegg 3.0 (which was the last release that passed pb05)
>> http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-October/044091.html.
>>           Jack
>> ps Has an exhaustive effort been made yet to insure that llvm/dragonegg isn't still unnecessarily scalarizing
>> the vector code generated by FSF gcc?
>
> As far as I know, no effort has been made at all.

Duncan,
  I tried adding...

Index: lib/Transforms/Vectorize/LoopVectorize.cpp
===================================================================
--- lib/Transforms/Vectorize/LoopVectorize.cpp	(revision 169738)
+++ lib/Transforms/Vectorize/LoopVectorize.cpp	(working copy)
@@ -714,6 +714,8 @@ void InnerLoopVectorizer::scalarizeInstr
       Cloned->setOperand(op, Op);
     }
 
+    DEBUG(dbgs() << "LV: scalarizing vector.\n");
+
     // Place the cloned scalar in the new loop.
     Builder.Insert(Cloned);
 

to llvm svn for a debug build using...

-DCMAKE_BUILD_TYPE=Debug

However this doesn't produce any output when compiling with dragonegg using...

de-gfortran47 -msse3 -ffast-math -funroll-loops -O3 -fplugin-arg-dragonegg-enable-gcc-optzns aermod.f90 -v -o aermod

Is there something I have to pass through dragonegg in order to trigger the debug output from llvm?
Thanks in advance for any clarification.
        Jack

>
>  If that issue were completely solved, llvm/dragonegg might become faster
>> than vanilla FSF gcc.
>
> Another issue is that, until recently, LLVM didn't have much in the way of
> fast-math optimizations.  It should be better in 3.3.
>
> Ciao, Duncan.
>
>>
>> FSF gcc 4.7.2 with llvm/dragonegg 3.2 branch
>>
>> a) de-gfortran47 -msse3 -ffast-math -funroll-loops -O3 %n.f90 -o %n
>> b) de-gfortran47 -msse3 -ffast-math -funroll-loops -O3 -fplugin-arg-dragonegg-enable-gcc-optzns %n.f90 -o %n
>> c) gfortran-fsf-4.7 msse3 -ffast-math -funroll-loops -O3 %n.f90 -o %n
>>
>> Run time (secs)
>>
>> Benchmark      de-gfortran47 de-gfortran47+optzns gfortran47
>> ac                 12.28            8.02            8.17
>> aermod             15.88           14.54           16.49
>> air                 7.02            5.42            5.80
>> capacita           39.97           34.93           32.53
>> channel             2.08            2.10            1.83
>> doduc              27.17           27.59           25.71
>> fatigue             8.75            7.80            8.31
>> gas_dyn            12.11            4.64            3.98
>> induct             24.03           11.86           12.11
>> linpk              15.49           15.47           15.46
>> mdbx               11.90           11.31           11.18
>> nf                 29.34           29.67           28.01
>> protein            36.31           35.33           31.98
>> rnflow             27.27           26.74           24.67
>> test_fpu           11.31            9.13            7.91
>> tfft                1.93            1.94            1.86
>>
>> Geom. Mean         13.27           11.02           10.64
>>
>> Compile time (secs)
>>
>> Benchmark      de-gfortran47 de-gfortran47+optzns gfortran47
>> ac                  0.33            1.63            1.72
>> aermod             21.20           29.47           42.25
>> air                 1.13            2.66            4.38
>> capacita            0.51            1.00            1.85
>> channel             0.32            0.52            0.64
>> doduc               1.79            3.74            5.84
>> fatigue             0.91            1.29            1.93
>> gas_dyn             0.65            1.32            3.34
>> induct              1.73            2.81            3.93
>> linpk               0.22            0.51            0.91
>> mdbx                0.64            1.28            2.09
>> nf                  0.39            0.79            2.07
>> protein             1.11            1.95            4.30
>> rnflow              1.25            2.87            6.32
>> test_fpu            0.87            2.25            5.14
>> tfft                0.21            0.35            0.58
>>
>> Executable (bytes)
>>
>> Benchmark      de-gfortran47 de-gfortran47+optzns gfortran47
>> ac                 26768           47144           59104
>> aermod           1039416         1065048         1396928
>> air                61924           65948          110752
>> capacita           41328           45424           77904
>> channel            22720           26680           34688
>> doduc             128360          140564          205304
>> fatigue            69736           69800           90224
>> gas_dyn            58936           67232          123664
>> induct            163072          167296          179064
>> linpk              18664           26976           42624
>> mdbx               53580           57684           90216
>> nf                 23864           36176           84056
>> protein            74944           87128          131960
>> rnflow             71784           92344          205576
>> test_fpu           54088           74520          179448
>> tfft               18552           18400           30664
>>



More information about the llvm-dev mailing list