Research Home

Projects

Research Areas

Publications

Tools

Illinois Impact

 

 

 

Autotuning

Participants: David Padua, Maria Garzaran, Alexandre Duchateau, Saeed Maleki, Albert Sidelnik, Bruno Virlet

Executive Summary

The goal of this project is to improve productivity by automatically generating codes that obtain near-optimal performance across different inputs.

Goals - Extended Description

Codelet-based optimization:

Strategy is to decompose an application into codelets, where codelet is a class of short code sequences that appear often in an application domain and that cover most of the execution domain of the application. Codelets will be optimized manually first to identify necessary compiler transformations and parameter values. One of the goals is to increase our understanding of the program features that the compiler needs to consider to make accurate predictions for transformation analyzed in this project.

Deliverables: By the end of the year, we will develop a notation to represent classes of codelets an, using this notation, a catalog of codelets specifying the transformations necessary for effective vectorization and locality enhancement. The collection of codelets can be used by compiler implementers as well as programmers.

Collaborators: This is a joint project with David Kuck and David Wong, from INTEL, William Jalby from University of Versailles, and Wen-Mei Hwu (Illinois).

Autotuning of kd-trees

We are studying a parallel implementation of a kd-tree building algorithm. The goal is to apply autotuning techniques to improve performance and portability across machine generations and machine classes.

Deliverables: By the end of the year, we will identify opportunities for autotuning and deliver an autotuning version of the kd-tree code.

Collaborators: This is a joint project with Sarita Adve, John Hart who are the original developers of the kd-tree parallel implementation on which this work is based.

Autotuning Gluon: Interface for
Trusted Programming
Interactive Porting Libraries Optimizations for Power
Refactoring Safe Parallel Prog. Languages Scheduling Verification & Validation