Compiler-Driven Performance Optimization and Tuning for Multicore Architectures
Abstract
The widespread emergence of multicore processors as the computing engine in all commodity platforms presents our field with an enormous software development crisis. For over two decades, sequential software applications have enjoyed the free-ride of performance improvement with each new processor generation. The reality today is that existing and new applications must be changed to make them multi-threaded if they are to experience any performance benefits from newer generations of processors. An attractive approach to addressing some aspects of this monumental software development challenge is to develop highly optimized version of compute-intensive portions of an application. This project aims to develop a powerful system for auto-tuning of library routines and compute-intensive kernels, driven by the Pluto system for multicores that we are developing. The work here is motivated by recent advances in two major areas of performance optimization: (i) auto-tuning approaches that employ a combination of static and dynamic exploration of the optimization space, and (ii) polyhedral-based approaches for powerful transformations of affine computations. Our work builds on some very recent developments using polyhedral models showing great promise for developing effective automatic parallelization frameworks for multicore architectures. With the polyhedral model, it is possible to reason about the correctness of complex loop transformations in a completely mathematical setting using powerful machinery from linear algebra and linear programming. This enables effective integrated transformation, and therefore can be the basis for developing a very powerful automatic parallelization framework that can target different multicore platforms.
Document Details
- Document Type
- Technical Report
- Publication Date
- Apr 10, 2015
- Accession Number
- ADA626880
Entities
People
- Jagannathan Ramanujam
Organizations
- Louisiana State University