2018 · 20 citations · 35 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCompilersProgramming LanguagesCode GenerationCompiler ConstructionControl-flow AnalysisData-flow AnalysisInstruction SelectionVector DesignCode OptimizationScalar InstructionsSimd ExecutionVector InstructionsVector ProcessingVector ScanningVectorization
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.
35
NVIDIA Tesla: A Unified Graphics and Computing Architecture
Erik Lindholm, John Nickolls, Stuart F. Oberman et al. · IEEE Micro · 2008 · 1.3K citations
Richard M. Russell · Communications of the ACM · 1978 · 697 citations · Full text
Dependence graphs and compiler optimizations
David J. Kuck, Robert H. Kuhn, David Padua et al. · 1981 · 652 citations · Full text