[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