Automatic Correction of Loop Transformations

  • Authors:
  • Nicolas Vasilache;Albert Cohen;Louis-Noel Pouchet

  • Affiliations:
  • INRIA, Paris-Sud 11 University, France;INRIA, Paris-Sud 11 University, France;INRIA, Paris-Sud 11 University, France

  • Venue:
  • PACT '07 Proceedings of the 16th International Conference on Parallel Architecture and Compilation Techniques
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Loop nest optimization is a combinatorial problem. Due to the growing complexity of modern architectures, it involves two increasingly difficult tasks: (1) analyzing the profitability of sequences of transformations to enhance parallelism, locality, and resource usage, which amounts to a hard problem on a non-linear objective function; (2) the construction and exploration of search space of legal transformation sequences. Practical optimizing and parallelizing compilers decouple these tasks, resorting to a predefined set of enabling transformations to eliminate all sorts of optimization-limiting semantical constraints. State-of-the-art optimization heuristics face a hard decision problem on the selection of enabling transformations only remotely related to performance. We propose a new design where optimization heuristics first address the main performance anomalies, then correct potentially illegal loop transformations a posteriori, attempting to minimize the performance impact of the necessary adjustments. We propose a general method to correct any sequence of loop transformations through a combination of loop shifting, code motion and index-set splitting. Sequences of transformations are modeled by compositions of geometric transformations on multidimensional affine schedules. We provide experimental evidence of the scalability of the algorithms on real loop optimizations.