potential for controlling memory alignment?

On my laptop, a program showed a consistent slowdown with -fdicts-strict I didn't find any obvious causes in the Core differences, so I turned to Intel's Performance Counter Monitor for measurements. After trying a few counters, I eventuall saw that there are about an order of magnitude more misaligned memory loads with -fdicts-strict than without, so I think that may be a significant part of the slowdown. I'm not sure if these are code or data reads. Can anyone suggest how to validate this hypothesis about misaligned reads? A subsequent commit has changed the behavior I was seeing, so I'm not interested in alternatives means to determine if -fdicts-strict is somehow at fault — I'm just asking specifically about data/code memory alignment in GHC and how to diagnose/experiment with it. Thanks.

Reid Barton was just noticing some alignment perf issues and talking
about it on #ghc / #haskell-llvm
probably worth documenting it in a ticket!
On Thu, Sep 12, 2013 at 3:28 PM, Nicolas Frisby
On my laptop, a program showed a consistent slowdown with -fdicts-strict
I didn't find any obvious causes in the Core differences, so I turned to Intel's Performance Counter Monitor for measurements. After trying a few counters, I eventuall saw that there are about an order of magnitude more misaligned memory loads with -fdicts-strict than without, so I think that may be a significant part of the slowdown. I'm not sure if these are code or data reads.
Can anyone suggest how to validate this hypothesis about misaligned reads?
A subsequent commit has changed the behavior I was seeing, so I'm not interested in alternatives means to determine if -fdicts-strict is somehow at fault — I'm just asking specifically about data/code memory alignment in GHC and how to diagnose/experiment with it.
Thanks.
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

i created a ticket on trac http://ghc.haskell.org/trac/ghc/ticket/8279 On Thu, Sep 12, 2013 at 3:46 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
Reid Barton was just noticing some alignment perf issues and talking about it on #ghc / #haskell-llvm
probably worth documenting it in a ticket!
On Thu, Sep 12, 2013 at 3:28 PM, Nicolas Frisby
wrote: On my laptop, a program showed a consistent slowdown with -fdicts-strict
I didn't find any obvious causes in the Core differences, so I turned to Intel's Performance Counter Monitor for measurements. After trying a few counters, I eventuall saw that there are about an order of magnitude more misaligned memory loads with -fdicts-strict than without, so I think that may be a significant part of the slowdown. I'm not sure if these are code or data reads.
Can anyone suggest how to validate this hypothesis about misaligned reads?
A subsequent commit has changed the behavior I was seeing, so I'm not interested in alternatives means to determine if -fdicts-strict is somehow at fault — I'm just asking specifically about data/code memory alignment in GHC and how to diagnose/experiment with it.
Thanks.
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

On 12/09/13 20:28, Nicolas Frisby wrote:
On my laptop, a program showed a consistent slowdown with -fdicts-strict
I didn't find any obvious causes in the Core differences, so I turned to Intel's Performance Counter Monitor for measurements. After trying a few counters, I eventuall saw that there are about an order of magnitude more misaligned memory loads with -fdicts-strict than without, so I think that may be a significant part of the slowdown. I'm not sure if these are code or data reads.
Can anyone suggest how to validate this hypothesis about misaligned reads?
Is this 32 bit or 64 bit? On 32 bits we might get misaligned loads of doubles from the heap and stack, but we shouldn't have that problem on 64-bit. If you're on Linux you can use perf to track misaligned accesses and annotate the assembly to find the hotspots. Some info on the wiki here: http://ghc.haskell.org/trac/ghc/wiki/Debugging/LowLevelProfiling/Perf Cheers, Simon
A subsequent commit has changed the behavior I was seeing, so I'm not interested in alternatives means to determine if -fdicts-strict is somehow at fault — I'm just asking specifically about data/code memory alignment in GHC and how to diagnose/experiment with it.
Thanks.
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
participants (3)
-
Carter Schonwald
-
Nicolas Frisby
-
Simon Marlow