Raced Profiles: Efficient Selection of Competing Compiler Optimizations

Research output: Contribution to journalArticlepeer-review

Abstract

Many problems in embedded compilation require one set of optimizations to be selected over another based on run time performance. Self-tuned libraries, iterative compilation and machine learning techniques all compare multiple compiled program versions. In each, program versions are timed to determine which has the best performance.

The program needs to be run multiple times for each version because there is noise inherent in most performance measurements. The number of runs must be enough to compare different versions, despite the noise, but executing more than this will waste time and energy. The compiler writer must either risk taking too few runs, potentially getting incorrect results, or taking too many runs increasing the time for their experiments or reducing the number of program versions evaluated. Prior works choose constant size sampling plans where each compiled version is executed a fixed number of times without regard to the level of noise.

In this paper we develop a sequential sampling plan which can automatically adapt to the experiment so that the compiler writer can have both confidence in the results and also be sure that no more runs were taken than were needed. We show that our system is able to correctly determine the best optimization settings with between 76% and 87% fewer runs than needed by a brute force, constant sampling size approach. We also compare our approach to JavaSTATS(10); we needed 77% to 89% fewer runs than it needed.

Original languageEnglish
Pages (from-to)50-59
Number of pages10
JournalACM Sigplan Notices
Volume44
Issue number7
Publication statusPublished - Jul 2009

Keywords

  • Measurement
  • Performance
  • Iterative Compilation
  • Statistics

Fingerprint

Dive into the research topics of 'Raced Profiles: Efficient Selection of Competing Compiler Optimizations'. Together they form a unique fingerprint.

Cite this