nofib regressions in HEAD since 7.6.2 release

Johan Tibell johan.tibell at gmail.com
Tue Feb 12 04:17:50 CET 2013


Hi Nicolas!

I tried to reproduce the difference between 7.0.4 and 7.6.2 on the exp3_8,
wheel-sieve1, and primes and couldn't get the same percent difference as
you. We need to reconcile these differences somehow. Lets start with more
exact machine specs. I have a:

$ cat /proc/cpuinfo
processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
stepping : 9
microcode : 0x12
cpu MHz : 1600.000
cache size : 8192 KB
...

$ uname -a
Linux johantibell.com 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23
UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

And GHC versions:

$ ghc-7.0.4 --info
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("Project version","7.0.4")
 ,("Booter version","6.12.1")
 ,("Stage","2")
 ,("Build platform","x86_64-unknown-linux")
 ,("Host platform","x86_64-unknown-linux")
 ,("Target platform","x86_64-unknown-linux")
 ,("Have interpreter","YES")
 ,("Object splitting","YES")
 ,("Have native code generator","YES")
 ,("Have llvm code generator","YES")
 ,("Support SMP","YES")
 ,("Unregisterised","NO")
 ,("Tables next to code","YES")
 ,("RTS ways","l debug  thr thr_debug thr_l thr_p  dyn debug_dyn thr_dyn
thr_debug_dyn")
 ,("Leading underscore","NO")
 ,("Debug on","False")
 ,("LibDir","/usr/local/lib/ghc-7.0.4")
 ,("Global Package DB","/usr/local/lib/ghc-7.0.4/package.conf.d")
 ,("C compiler flags","[\"-fno-stack-protector\"]")
 ,("Gcc Linker flags","[]")
 ,("Ld Linker flags","[]")
 ]

$ ghc-7.6.2 --info
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("GCC extra via C opts"," -fwrapv")
 ,("C compiler command","/usr/bin/gcc")
 ,("C compiler flags"," -fno-stack-protector ")
 ,("ar command","/usr/bin/ar")
 ,("ar flags","q")
 ,("ar supports at file","@ArSupportsAtFile@")
 ,("touch command","touch")
 ,("dllwrap command","/bin/false")
 ,("windres command","/bin/false")
 ,("perl command","/usr/bin/perl")
 ,("target os","OSLinux")
 ,("target arch","ArchX86_64")
 ,("target word size","8")
 ,("target has GNU nonexec stack","True")
 ,("target has .ident directive","True")
 ,("target has subsections via symbols","False")
 ,("LLVM llc command","llc")
 ,("LLVM opt command","opt")
 ,("Project version","7.6.2")
 ,("Booter version","7.4.1")
 ,("Stage","2")
 ,("Build platform","x86_64-unknown-linux")
 ,("Host platform","x86_64-unknown-linux")
 ,("Target platform","x86_64-unknown-linux")
 ,("Have interpreter","YES")
 ,("Object splitting supported","YES")
 ,("Have native code generator","YES")
 ,("Support SMP","YES")
 ,("Unregisterised","NO")
 ,("Tables next to code","YES")
 ,("RTS ways","l debug  thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn
thr_debug_dyn")
 ,("Leading underscore","NO")
 ,("Debug on","False")
 ,("LibDir","/usr/local/lib/ghc-7.6.2")
 ,("Global Package DB","/usr/local/lib/ghc-7.6.2/package.conf.d")
 ,("Gcc Linker
flags","[\"-Wl,--hash-size=31\",\"-Wl,--reduce-memory-overheads\"]")
 ,("Ld Linker flags","[\"--hash-size=31\",\"--reduce-memory-overheads\"]")
 ]

I ran the benchmarks by running e.g.:

$ cd nofib/imaginary/sieve-wheel1
$ make clean && make boot WithNofibHc=ghc-${VERSION} && make
WithNofibHc=ghc-${VERSION}

Could you please try to run the "imaginary" benchmarks using exactly these
commands and report the difference you see between 7.0.4 and 7.6.2. Here's
what I see. 7.0.4 vs 7.6.2:

--------------------------------------------------------------------------------
        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
     bernouilli          +3.3%     +0.2%      0.12      0.13     +0.0%
         exp3_8          +1.1%    +53.7%      0.14      0.14   +300.0%
    gen_regexps         +18.7%     +3.9%      0.00      0.00     +0.0%
      integrate          -0.1%    +39.0%      0.21      0.23     +0.0%
          kahan          +1.7%    +98.6%     +9.9%     +7.3%     +0.0%
      paraffins          +1.3%     -1.2%      0.06      0.08     +0.0%
         primes          +1.4%    +64.7%      0.04      0.05    +50.0%
         queens          +0.8%     -0.5%      0.02      0.02     +0.0%
           rfib          +1.7%    +42.8%      0.02      0.02     +0.0%
            tak          +0.9%    +12.0%      0.01      0.01     +0.0%
   wheel-sieve1          +0.8%    +66.6%     -4.6%     -5.8%    -12.5%
   wheel-sieve2          +0.9%     +0.0%      0.12      0.13     +0.0%
           x2n1         +10.3%    +87.3%      0.00      0.01   +200.0%
--------------------------------------------------------------------------------
            Min          -0.1%     -1.2%     -4.6%     -5.8%    -12.5%
            Max         +18.7%    +98.6%     +9.9%     +7.3%   +300.0%
 Geometric Mean          +3.2%    +31.7%     +2.4%     +0.5%    +23.6%

-- Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130211/a7992607/attachment.htm>


More information about the ghc-devs mailing list