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

GHC ghc-devs at haskell.org
Wed Jun 27 12:16: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 tdammers):

 So, to summarize the results I have so far on my own machine (i5, debian):

 - The 64 columns version sees massive improvement throughout, on any
 compiler, and with any set of libraries; however, when the 256-columns
 version performs badly, the 64-columns version is slower by a factor of
 about 2 (~50 μs vs. ~25 μs).
 - Whether the improvement is seen or not does not seem to depend on the
 libraries - the same set of libraries, when forced with cabal, will
 sometimes show improvement, and sometimes not.
 - I have both 8.0.2 and 8.2.2 produce "good" and "bad" behavior; however,
 some of that may be due to accidentally running the wrong binary. The test
 runs in which I made absolutely sure I was running the correct binaries,
 and started with a clean slate, do show that 8.0.2 consistently produces
 "good" code, while 8.2.2 consistently produces "bad" code.

 So that leaves us with relatively obscure things.

 One thing to check would be which exact binaries stack pulls in. The GHC
 versions may match, but the build configuration might not.

 Kernel and system libs were all identical between my attempts, so I doubt
 those play a role.

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


More information about the ghc-tickets mailing list