[GHC] #14701: Investigate the performance impact of code alignment

GHC ghc-devs at haskell.org
Mon Jan 22 18:16:53 UTC 2018


#14701: Investigate the performance impact of code alignment
-------------------------------------+-------------------------------------
           Reporter:  nh2            |             Owner:  (none)
               Type:  task           |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.2.2
  (CodeGen)                          |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Maybe ghc's performance also varies due to reasons like that:

 https://dendibakh.github.io/blog/2018/01/18/Code_alignment_issues

 The gist of the article is that tight loops can have significantly
 different performance depending on whether the location of the assembly
 instructions themselves cross a cache line.

 I would not have expected this to make double-digit percentage
 differences.

 From `#ghc`:

 {{{
 bgamari:       nh2[m], there are nofib tests where this is very likely the
 cause of a good portion of the variant
 angerman:      nh2[m]: that linked LLVM talk from 2016 makes me not want
 to have to deal with that...
 AndreasK:      nh2[m]: It's a real issue. But atm I think ghc at least in
 the native codegen make no real attempt to optimize for this
 thoughtpolice: GHC does not carry knowledge of alignment or anything, no.
 I’m not sure how difficult this is to suss out, but at least making sure
 every branch target does not cross a cache line is probably a good start
 thoughtpolice: Well, far jump, e.g. a call to a function. not sure how
 TNTC fits into this story, tbqh
 }}}

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


More information about the ghc-tickets mailing list