[GHC] #14980: Runtime performance regression with binary operations on vectors

GHC ghc-devs at haskell.org
Tue Jun 26 14:36:29 UTC 2018


#14980: Runtime performance regression with binary operations on vectors
-------------------------------------+-------------------------------------
        Reporter:  ttylec            |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.8.1
       Component:  Compiler          |              Version:  8.2.2
      Resolution:                    |             Keywords:  vector
                                     |  bitwise operations
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by ttylec):

 Moreover, I try to reproduce my previous results (I had plan to switch to
 hs-gauge from criterion to lighten dependencies) and now I cannot
 reproduce results on my machine (?!).
 I consistently get order-of-magnitude speedup with ghc-8.0.2, ghc-8.2.2
 (from lts-11.1 and lts-11.15) as well as ghc-8.4.3 (nightly snapshot).

 I try to figure out what changed... and the only difference I find is the
 fact that I installed newest ubuntu in mean time. And I have newer version
 of `stack` tool. This is totally confusing. GHC is installed by stack from
 binaries too... but I guess that packages tagged with version number don't
 change in time.

 BTW, times I get currently:

 {{{
 (zettafox) ➜  ghc-bug stack exec performance-bug-pair-2
 "Generated"
 benchmarking 64 columns/raw unbox vectors
 time                 377.3 μs   (372.6 μs .. 383.3 μs)
                      0.998 R²   (0.996 R² .. 0.999 R²)
 mean                 379.4 μs   (375.5 μs .. 387.9 μs)
 std dev              19.02 μs   (12.01 μs .. 30.94 μs)
 variance introduced by outliers: 46% (moderately inflated)

 benchmarking 64 columns/binary packed
 time                 21.32 μs   (21.20 μs .. 21.45 μs)
                      1.000 R²   (0.999 R² .. 1.000 R²)
 mean                 21.21 μs   (21.10 μs .. 21.35 μs)
 std dev              426.0 ns   (334.1 ns .. 567.0 ns)
 variance introduced by outliers: 18% (moderately inflated)

 benchmarking 256 columns/raw unbox vectors
 time                 373.3 μs   (366.7 μs .. 381.9 μs)
                      0.997 R²   (0.994 R² .. 0.999 R²)
 mean                 368.1 μs   (365.6 μs .. 374.9 μs)
 std dev              12.72 μs   (8.188 μs .. 22.90 μs)
 variance introduced by outliers: 29% (moderately inflated)

 benchmarking 256 columns/binary packed
 time                 27.32 μs   (27.14 μs .. 27.53 μs)
                      1.000 R²   (1.000 R² .. 1.000 R²)
 mean                 27.30 μs   (27.16 μs .. 27.49 μs)
 std dev              535.0 ns   (432.6 ns .. 704.7 ns)
 variance introduced by outliers: 17% (moderately inflated)

 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14980#comment:17>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list