Guiding Polyhedral Scheduling for Vectorization through Constraints Generated from an SLP Algorithm
Résumé
Polyhedral schedulers present well established techniques to extract parallelism, improve data locality, and generate tiled code for statically analyzable loops. However, as the polyhedral model abstracts programs in a mathematical representation detached from language, architectural, and hardware specific constraints, encoding vectorization in an affine form can prove challenging. In this paper, we present an approach to integrate information on vectorization decisions made by an SLP algorithm (Autovesk) into a polyhedral compiler (Pluto) through the addition of constraints to the schedule. We execute the SLP vectorization algorithm preserving annotated statement instance information. From its output, we create a set of constraints aiming to enforce vectorization. Those optional constraints are injected during the scheduling process of the polyhedral compiler. We evaluate the performance and make use of hardware counters to check the relevancy of our method on the Polybench/C suite.
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |