Autovesk: Automatic vectorized code generation from unstructured static kernels using graph transformations - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Pré-Publication, Document De Travail (Preprint/Prepublication) Année : 2023

Autovesk: Automatic vectorized code generation from unstructured static kernels using graph transformations

Résumé

Leveraging the SIMD capability of modern CPU architectures is mandatory to take full advantage of their increased performance. To exploit this capability, binary executables must be vectorized, either manually by developers or automatically by a tool. For this reason, the compilation research community has created several strategies to transform a scalar code into a vectorized implementation. However, most existing automatic vectorization techniques in modern compilers are designed for regular codes, leaving irregular applications with non-contiguous data access patterns at a disadvantage. We present in this paper a new tool, Autovesk, that automatically generates vectorized code from scalar code, specifically targeting irregular data access patterns. We describe how our method transforms a graph of scalar instructions into a vectorized one using different heuristics to reduce the number or cost of the instructions. Finally, we demonstrate the effectiveness of our approach on various computational kernels using Intel AVX-512 and ARM SVE. We compare the speedups of Autovesk vectorized code over GCC, Clang LLVM and Intel automatic vectorization optimizations. We achieve competitive results in linear kernels and up to 11x speedups in irregular ones.
Fichier principal
Vignette du fichier
Autovesk__Automatic_vectorized_code_generation_from_unstructured_static_kernels_using_graph_transformations.pdf (909.71 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03914178 , version 1 (28-12-2022)
hal-03914178 , version 2 (08-07-2023)
hal-03914178 , version 3 (04-12-2023)

Licence

Paternité

Identifiants

  • HAL Id : hal-03914178 , version 2

Citer

Hayfa Tayeb, Ludovic Paillat, Bérenger Bramas. Autovesk: Automatic vectorized code generation from unstructured static kernels using graph transformations. 2023. ⟨hal-03914178v2⟩

Collections

INSERM
210 Consultations
57 Téléchargements

Partager

Gmail Facebook X LinkedIn More