[GHC] #14072: Code generated by GHC 8.2.1 faster than 8.0.1 but still somewhat slower than 7.10.3

#14072: Code generated by GHC 8.2.1 faster than 8.0.1 but still somewhat slower than 7.10.3 -------------------------------------+------------------------------------- Reporter: harendra | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Keywords: | 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: -------------------------------------+------------------------------------- Unicode normalization library (https://github.com/harendra-kumar/unicode- transforms) shows around 10% improvement with GHC 8.2.1 when compared to GHC 8.0.1, across most benchmarks. However, it is still somewhat slower when compared to GHC 7.10.3. On the other hand, when compared to GHC 7.8.4, GHC 8.2.1 is marginally better. This library has been optimized with an objective to match or better (in some cases it is better) the performance of the equivalent ICU C++ library (compare only decompose normalization). Some of the last hurdles to match the best case of C++ were in the code generated by GHC. I filed a couple of ghc trac tickets earlier on that. You can reproduce these results easily as follows: {{{ $ git clone https://github.com/harendra-kumar/unicode-transforms.git $ git checkout -b v0.3.3 v0.3.3 $ echo ghc-8.0 $ stack bench $ stack bench --stack-yaml stack-7.10.yaml $ stack bench --stack-yaml stack-8.2.yaml }}} Here are some excerpts from the benchmarks: GHC 7.10.3: {{{ benchmarking unicode-transforms-text/NFD/English time 4.823 ms (4.765 ms .. 4.902 ms) benchmarking unicode-transforms-text/NFD/Deutsch time 5.607 ms (5.522 ms .. 5.673 ms) }}} GHC 8.0.1 {{{ benchmarking unicode-transforms-text/NFD/English time 6.330 ms (6.232 ms .. 6.439 ms) benchmarking unicode-transforms-text/NFD/Deutsch time 7.109 ms (7.034 ms .. 7.183 ms) }}} GHC 8.2.1 {{{ benchmarking unicode-transforms-text/NFD/English time 5.659 ms (5.594 ms .. 5.740 ms) benchmarking unicode-transforms-text/NFD/Deutsch time 6.406 ms (6.329 ms .. 6.478 ms) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14072 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14072: Code generated by GHC 8.2.1 faster than 8.0.1 but still somewhat slower than 7.10.3 -------------------------------------+------------------------------------- Reporter: harendra | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: 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 simonpj):
I filed a couple of ghc trac tickets earlier on that.
Can you be specific? Which tickets? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14072#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14072: Code generated by GHC 8.2.1 faster than 8.0.1 but still somewhat slower than 7.10.3 -------------------------------------+------------------------------------- Reporter: harendra | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: 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 harendra): In a quest to extract every last drop of perf in this library so that I can beat the gcc version, I investigated the GHC generated code and filed these tickets #12231 and #12232. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14072#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC