• Corpus ID: 15619135

CHiLL : A Framework for Composing High-Level Loop Transformations

@inproceedings{Chen2007CHiLLA,
  title={CHiLL : A Framework for Composing High-Level Loop Transformations},
  author={Chun Chen and Jacqueline Chame and Mary W. Hall},
  year={2007}
}
This paper describes a general and robust loop transformation framework that enables compilers to generate efficient code on complex loop nests. Despite two decades of prior research on loop optimization, performance of compiler-generated code often falls short of manually optimized versions, even for some well-studied BLAS kernels. There are two primary reasons for this. First, today’s compilers employ fixed transformation strategies, making it difficult to adapt to different optimization… 
PIT: A Framework for Effectively Composing High-Level Loop Transformations
TLDR
A novel loop transformation framework is presented, which integrates the advantages of polyhedral model and model-guided iterative compilation to create a powerful framework that is capable of fully automated non-parametric transformations andmodel-guided parametric transformations as well as automatic parameter search.
An empirical study of the effect of source-level loop transformations on compiler stability
TLDR
This paper analyzes the stability of the compilation process and the performance headroom of three widely used general purpose compilers: GCC, ICC, and Clang and concludes that the evaluated compilers need further improvements to claim they have stable behavior.
Loop Transformation Recipes for Code Generation and Auto-Tuning
TLDR
An abstract interface for transformation recipes is described, which is proposed to facilitate interoperability with other transformation frameworks and present performance results on its application to kernel and library tuning and tuning of key computations in high-end applications.
Tools for Performance Optimizations and Tuning of Affine Loop Nests
TLDR
This dissertation develops systematic solutions to parameterized multi-level tiling of arbitrary imperfectly nest d affine loops for both sequential and parallel execution and develops approaches to mapping in dependent tiles to different processing units using compile-time and run-time sched ules.
SPIRAL: Extreme Performance Portability
TLDR
This paper focuses on two fundamental problems that software developers are faced with: performance portability across the ever-changing landscape of parallel platforms and correctness guarantees for sophisticated floating-point code.
Automatic Generation of Multi-Objective Polyhedral Compiler Transformations
TLDR
This paper introduces an adaptive and automatic scheduler that permits to generate novel loop transformation sequences (or recipes) capable of delivering strong performance for a variety of different architectures without relying on auto-tuning, nor on pre-determined transformation strategies.
Revisiting loop fusion in the polyhedral framework
TLDR
In this paper, a fusion algorithm to choose good fusion partitions with two objective functions - achieving good data reuse and preserving parallelism inherent in the source code is proposed and significantly outperforms existing polyhedral compilers for large benchmark programs such as those in the SPEC benchmark suite.
Oil and Water Can Mix: An Integration of Polyhedral and AST-Based Transformations
TLDR
A novel optimization flow that combines polyhedral and syntactic/AST-based transformations is proposed, which generates high-performance code that contains regular loops which can be effectively vectorized, while still implementing sufficient parallelism and data reuse.
Managing code transformations for better performance portability
TLDR
The design of a system that is able to semi-automatically generate efficient platform-specific code that performs comparable to hand-optimized, vendor-provided code is described.
LoopOpt: Declarative Transformations Made Easy
TLDR
LoopOpt is proposed, an interactive tool that enables users to design optimizations in partnership with the compiler in a declarative way, opening the polyhedral black-box allowing users todesign complex optimizations sequences in aDeclaratives way.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 32 REFERENCES
Semi-Automatic Composition of Loop Transformations for Deep Parallelism and Memory Hierarchies
TLDR
This work leverages on algorithmic advances in polyhedral code generation and has been implemented in a modern research compiler, using a semi-automatic optimization approach to demonstrate that current compilers suffer from unnecessary constraints and intricacies that can be avoided in a semantically richer transformation framework.
Loop Optimization using Hierarchical Compilation and Kernel Decomposition
TLDR
This work proposes a new hierarchical compilation approach for the generation of high performance code relying on the use of state-of-the-art compilers that relies on the decomposition of the original loop nest into simpler kernels, typically 1D to 2D loops, much simpler to optimize.
Transforming Complex Loop Nests for Locality
TLDR
This work presents a novel loop transformation, dependence hoisting, for optimizing arbitrarily nested loops, and an efficient framework that applies the new technique to aggressively optimize benchmarks for better locality.
Think globally, search locally
TLDR
This paper advocates a methodology for generating high-performance code without increasing search time dramatically, and demonstrates this methodology by using it to eliminate the performance gap between code produced by a model-driven version of ATLAS described by us in prior work.
Is Search Really Necessary to Generate High-Performance BLAS?
TLDR
It is shown that model-driven optimization can be surprisingly effective and can generate code with performance comparable to that of code generated by ATLAS using global search.
Code generation in the polyhedral model is easier than you think
  • C. Bastoul
  • Computer Science
    Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004.
  • 2004
TLDR
A general transformation framework able to deal with nonunimodular, noninvertible, nonintegral or even nonuniform functions is discussed and several improvements to a state-of-the-art code generation algorithm are presented.
Optimizing Compilers for Modern Architectures: A Dependence-based Approach
TLDR
A broad introduction to data dependence, to the many transformation strategies it supports, and to its applications to important optimization problems such as parallelization, compiler memory hierarchy management, and instruction scheduling are provided.
Register tiling in nonrectangular iteration spaces
TLDR
A new general algorithm to perform multidimensional tiling for the register level in both rectangular and nonrectangular iteration spaces is presented and a simple heuristic to determine the tiling parameters is proposed.
Improving data locality with loop transformations
TLDR
This article presents compiler optimizations to improve data locality based on a simple yet accurate cost model and finds performance improvements were difficult to achieve, but improved several programs.
Iterative Optimization in the Polyhedral Model: Part I, One-Dimensional Time
TLDR
This work defines a systematic exploration method to enumerate the space of all legal, distinct transformations in the class of loop transformation which can be expressed as one-dimensional affine schedules and demonstrates orders of magnitude improvements in the size of the search space and in the convergence speed of a dedicated iterative optimization heuristic.
...
1
2
3
4
...