LLVM Enables New SLP Vectorize Option By Default
LLVM developers have decided to enable a new vectorizer option by default that has the potential to boost performance, but the performance benefits aren't immediately clear.
Earlier this week Charlie Turner proposed turn -slp-vectorize-hor on by default. He commented, "I've done compile-time experiments for AArch64 over SPEC{2000,2006} and of course the test-suite. I measure no significant compile-time impact of enabling this feature by default...I also timed running the regression tests with -slp-vectorize-hor enabled and disabled, no significant difference here either. There are no significant performance regressions (or much improvements) on AArch64 in night-test suite. I do see wins in third party benchmarks when using this flag, which is why I'm asking if there would be any objection from the community to making -slp-vectorize-hor default on."
Enabling -slp-vectorize-hor by default did get added to LLVM SVN/Git.
This option attempts to vectorize horizontal reductions. For those unfamiliar with LLVM's SLP Vectorizer, I explained and tested it back in 2013 when this Superword-Level Parallelism Vectorizer was initially added.
With my daily LLVM/Clang compiler development benchmarks done daily via LinuxBenchmarking.com, I haven't noticed any real performance impact of this default enabling of slp-vectorize-hor on my Linux x86_64 systems. This change will be found in LLVM 3.8.
Earlier this week Charlie Turner proposed turn -slp-vectorize-hor on by default. He commented, "I've done compile-time experiments for AArch64 over SPEC{2000,2006} and of course the test-suite. I measure no significant compile-time impact of enabling this feature by default...I also timed running the regression tests with -slp-vectorize-hor enabled and disabled, no significant difference here either. There are no significant performance regressions (or much improvements) on AArch64 in night-test suite. I do see wins in third party benchmarks when using this flag, which is why I'm asking if there would be any objection from the community to making -slp-vectorize-hor default on."
Enabling -slp-vectorize-hor by default did get added to LLVM SVN/Git.
This option attempts to vectorize horizontal reductions. For those unfamiliar with LLVM's SLP Vectorizer, I explained and tested it back in 2013 when this Superword-Level Parallelism Vectorizer was initially added.
With my daily LLVM/Clang compiler development benchmarks done daily via LinuxBenchmarking.com, I haven't noticed any real performance impact of this default enabling of slp-vectorize-hor on my Linux x86_64 systems. This change will be found in LLVM 3.8.
1 Comment