A Practical Method for Quickly Evaluating Program Optimizations

Grigori Fursin, Albert Cohen, Michael F. P. O'Boyle, Olivier Temam

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

This article aims at making iterative optimization practical and usable by speeding up the evaluation of a large range of optimizations. Instead of using a full run to evaluate a single program optimization, we take advantage of periods of stable performance, called phases. For that purpose, we propose a low-overhead phase detection scheme geared toward fast optimization space pruning, using code instrumentation and versioning implemented in a production compiler. Our approach is driven by simplicity and practicality. We show that a simple phase detection scheme can be sufficient for optimization space pruning. We also show it is possible to search for complex optimizations at run-time without resorting to sophisticated dynamic compilation frameworks. Beyond iterative optimization, our approach also enables one to quickly design selftuned applications. Considering 5 representative SpecFP2000 benchmarks, our approach speeds up iterative search for the best program optimizations by a factor of 32 to 962. Phase prediction is 99.4% accurate on average, with an overhead of only 2.6%. The resulting self-tuned implementations bring an average speed-up of 1.4.
Original languageEnglish
Title of host publicationHigh Performance Embedded Architectures and Compilers
Subtitle of host publicationFirst International Conference, HiPEAC 2005, Barcelona, Spain, November 17-18, 2005. Proceedings
PublisherSpringer Berlin Heidelberg
Pages29-46
Number of pages18
ISBN (Electronic)978-3-540-32272-6
ISBN (Print)978-3-540-30317-6
DOIs
Publication statusPublished - 2005

Publication series

NameLecture Notes in Computer Science
PublisherSpringer Berlin Heidelberg
Volume3793
ISSN (Print)0302-9743

Cite this