Polyhedral-Model Guided Loop-Nest Auto-Vectorization [abstract] (IEEE Xplore)
Konrad Trifunovic, Dorit Nuzman, Albert Cohen, Ayal Zaks, and Ira Rosen
Proceedings of the 18th International Conference on Parallel Architectures and Compilation Techniques (PACT), 2009.
Optimizing compilers apply numerous interdependent
optimizations, leading to the notoriously difficult
phase-ordering problem - that of deciding which transformations
to apply and in which order. Fortunately, new
infrastructures such as the polyhedral compilation framework
host a variety of transformations, facilitating the efficient exploration
and configuration of multiple transformation sequences.
Many powerful optimizations, however, remain external to the
polyhedral framework, including vectorization. The low-level,
target-specific aspects of vectorization for fine-grain SIMD has
so far excluded it from being part of the polyhedral framework.
In this paper we examine the interactions between loop
transformations of the polyhedral framework and subsequent
vectorization. We model the performance impact of the different
loop transformations and vectorization strategies, and
then show how this cost model can be integrated seamlessly
into the polyhedral representation. This predictive modelling
facilitates efficient exploration and educated decision making
to best apply various polyhedral loop transformations while
considering the subsequent effects of different vectorization
schemes. Our work demonstrates the feasibility and benefit of
tuning the polyhedral model in the context of vectorization.
Experimental results confirm that our model has accurate
predictions, providing speedups of over 2.0x on average over
traditional innermost-loop vectorization on PowerPC970 and
Cell-SPU SIMD platforms.