Multi-dimensional Vectorization in LLVM

Autor: Matthias Kurtenacker, Shrey Sharma, Simon Moll, Sebastian Hack
Rok vydání: 2019
Předmět:
Zdroj: Proceedings of the 5th Workshop on Programming Models for SIMD/Vector Processing.
Popis: Loop vectorization is a classic technique to exploit SIMD instructions in a productive way. In multi-dimensional vectorization, multiple loops of a loop nest are vectorized at once. This exposes opportunities for data reuse, register tiling and more efficient memory accesses.In this work, we present TensorRV, a multi-dimensional vectorization framework for LLVM IR. TensorRV is a generalization of the Region Vectorizer, a general purpose outer-loop and whole-function vectorizer, to the multi-dimensional setting.We evaluate TensorRV on a set of stencil codes and matrix transpose. We find that stencil codes benefit from the reduction of load instructions with a speedup of x 1.45 on NEC SX-Aurora TSUBASA. Multi-loop vectorized matrix transpose leverages efficient SIMD shuffle instructions on AVX512, for which we report a speedup of x 3.27.
Databáze: OpenAIRE