goSLP: Globally Optimized Superword Level Parallelism Framework
Charith Mendis, Saman Amarasinghe

TL;DR
goSLP is a new auto-vectorization framework that uses integer linear programming to globally optimize superword level parallelism, significantly improving compiler performance on benchmark suites.
Contribution
It introduces a globally optimal approach to statement packing and permutation selection in SLP auto-vectorization using ILP and dynamic programming, surpassing heuristic methods.
Findings
Achieved a 7.58% speedup on SPEC2017fp benchmarks.
Achieved a 2.42% speedup on SPEC2006fp benchmarks.
Achieved a 4.07% speedup on NAS benchmarks.
Abstract
Modern microprocessors are equipped with single instruction multiple data (SIMD) or vector instruction sets which allow compilers to exploit superword level parallelism (SLP), a type of fine-grained parallelism. Current SLP auto-vectorization techniques use heuristics to discover vectorization opportunities in high-level language code. These heuristics are fragile, local and typically only present one vectorization strategy that is either accepted or rejected by a cost model. We present goSLP, a novel SLP auto-vectorization framework which solves the statement packing problem in a pairwise optimal manner. Using an integer linear programming (ILP) solver, goSLP searches the entire space of statement packing opportunities for a whole function at a time, while limiting total compilation time to a few minutes. Furthermore, goSLP optimally solves the vector permutation selection problem…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
