All you need is superword-level parallelism: systematic control-flow vectorization with SLP
Yishen Chen, Charith Mendis, Saman Amarasinghe
Abstract
Superword-level parallelism (SLP) vectorization is a proven technique for vectorizing straight-line code. It works by replacing independent, isomorphic instructions with equivalent vector instructions. Larsen and Amarasinghe originally proposed using SLP vectorization (together with loop unrolling) as a simpler, more flexible alternative to traditional loop vectorization. However, this vision of replacing traditional loop vectorization has not been realized because SLP vectorization cannot directly reason with control flow.
Topics & Concepts
Vectorization (mathematics)Computer scienceParallel computingLoop unrollingParallelism (grammar)Control flowProgramming languageCompilerParallel Computing and Optimization TechniquesEmbedded Systems Design TechniquesAlgorithms and Data Compression