|
Abstract: Today’s multi-core era places significant demands on an optimizing compiler, which must parallelize programs, exploit memory hierarchy, and leverage the ever-increasing SIMD (Single Instruction Multiple Data) capabilities of modern processors. Such a compiler must be able to apply complex sequences of loop transformations to target the available hardware resources. The polyhedral model is an algebraic representation of programs that allows to construct and search for complex sequences of optimizations. This model is now mature and reaches production compilers such as IBM XL, GCC (GRAPHITE framework) or more recently LLVM (Polly framework). In this talk, I will introduce the polyhedral model, from theory to practice, as well as every component of a polyhedral compilation framework, from initial program analysis to final code generation. I will discuss various optimization techniques in this framework (model-based and iterative-based) and present its main restrictions and open problems. This talk is intended for a general computer science audience with an interest on compilation and/or program optimization; very basic knowledge of linear algebra (matrix-vector multiply) being a plus. |