Title
VW-SLP: auto-vectorization with adaptive vector width
Abstract
Auto-vectorization techniques allow the compiler to automatically generate SIMD vector code out of scalar code. SLP is a commonly-used algorithm for converting straight-line code into vector code, which complements the loop-based traditional vectorizers. It works by scanning the input code looking for groups of instructions that can be combined into vectors and replacing them with the corresponding vector instructions. The state-of-the-art SLP algorithm works by attempting to vectorize blocks of code with a fixed vector width and falling back to smaller widths for the whole block upon failure. In this work we remove this limitation and introduce Variable-Width SLP (VW-SLP), a novel algorithm that is capable of adjusting the vector width at an instruction granularity. This allows the algorithm to better adapt to the code's SIMD parallelism characteristics, thus exposing more vector parallelism than before. We implemented VW-SLP in LLVM and our evaluation on a real system shows that it considerably improves the performance of real benchmark code, with a small increase in compilation time.
Year
DOI
Venue
2018
10.1145/3243176.3243189
PACT
Keywords
Field
DocType
SIMD, SLP, Auto-Vectorization
Computer science,Scalar (physics),Parallel computing,Vectorization (mathematics),SIMD,Compiler,Image tracing,Granularity
Conference
ISBN
Citations 
PageRank 
978-1-4503-5986-3
0
0.34
References 
Authors
18
3