Quick and Practical Run-Time Evaluation of Multiple Program Optimizations

  • Authors:
  • Grigori Fursin;Albert Cohen;Michael O'Boyle;Olivier Temam

  • Affiliations:
  • Members of HiPEAC, ALCHEMY Group, INRIA Futurs and LRI, Paris-Sud University, France and Member of HiPEAC, Institute for Computing Systems Architecture, University of Edinburgh, UK;Members of HiPEAC, ALCHEMY Group, INRIA Futurs and LRI, Paris-Sud University, France;Member of HiPEAC, Institute for Computing Systems Architecture, University of Edinburgh, UK;Members of HiPEAC, ALCHEMY Group, INRIA Futurs and LRI, Paris-Sud University, France

  • Venue:
  • Transactions on High-Performance Embedded Architectures and Compilers I
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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 self-tuned 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.