Raced Profiles: Efficient Selection of Competing Compiler Optimizations

被引:0
|
作者
Leather, Hugh [1 ]
O'Boyle, Michael [1 ]
Worton, Bruce [2 ]
机构
[1] Univ Edinburgh, Sch Informat, Edinburgh EH8 9YL, Midlothian, Scotland
[2] Univ Edinburgh, Sch Math, Edinburgh EH8 9YL, Midlothian, Scotland
关键词
Measurement; Performance; Iterative Compilation; Statistics;
D O I
10.1145/1543136.1542460
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:50 / 59
页数:10
相关论文
共 50 条
  • [31] Influence of compiler optimizations on system power
    Kandemir, M
    Vijaykrishnan, N
    Irwin, MJ
    Ye, W
    IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, 2001, 9 (06) : 801 - 804
  • [32] Generating Compiler Optimizations from Proofs
    Tate, Ross
    Stepp, Michael
    Lerner, Sorin
    POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2010, : 389 - 402
  • [33] A compiler framework for speculative analysis and optimizations
    Lin, J
    Chen, T
    Hsu, WC
    Ju, RDC
    Ngai, TF
    Yew, PC
    Chan, S
    ACM SIGPLAN NOTICES, 2003, 38 (05) : 289 - 299
  • [34] Tuning Compiler Optimizations for Simultaneous Multithreading
    Jack L. Lo
    Susan J. Eggers
    Henry M. Levy
    Sujay S. Parekh
    Dean M. Tullsen
    International Journal of Parallel Programming, 1999, 27 : 477 - 503
  • [35] GLOBAL OPTIMIZATIONS IN A PROLOG COMPILER FOR THE TOAM
    ZHOU, NF
    JOURNAL OF LOGIC PROGRAMMING, 1993, 15 (04): : 275 - 294
  • [36] Tuning compiler optimizations for simultaneous multithreading
    Lo, JL
    Eggers, SJ
    Levy, HM
    Parekh, SS
    Tulsen, DM
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 1999, 27 (06) : 477 - 503
  • [37] A Study of Conflicting Pairs of Compiler Optimizations
    Ben Asher, Yosi
    Haber, Gadi
    Stein, Esti
    2017 IEEE 11TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANY-CORE SYSTEMS-ON-CHIP (MCSOC 2017), 2017, : 52 - 58
  • [38] Evaluating the Effects of Compiler Optimizations on Mutation Testing at the Compiler IR Level
    Harir, Farah
    Shi, August
    Converse, Hayes
    Khurshid, Sarfraz
    Marinov, Darko
    2016 IEEE 27TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2016, : 105 - 115
  • [39] Simplification of array access patterns for compiler optimizations
    Paek, Y
    Hoeflinger, J
    Padua, D
    ACM SIGPLAN NOTICES, 1998, 33 (05) : 60 - 71
  • [40] Locality-Based Optimizations in the Chapel Compiler
    Kayraklioglu, Engin
    Ronaghan, Elliot
    Ferguson, Michael P.
    Chamberlain, Bradford L.
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING (LCPC 2021), 2022, 13181 : 3 - 17