Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2212908.2212947acmconferencesArticle/Chapter ViewAbstractPublication PagescfConference Proceedingsconference-collections
poster

Selective search of inlining vectors for program optimization

Published: 15 May 2012 Publication History

Abstract

We propose a novel technique to select the inlining options of a compiler - referred to as an inlining vector, for program optimization. The proposed technique trains a machine learning algorithm to model the relation between inlining vectors and performance (completion time). The training set is composed of sample runs of the programs to optimize - that are compiled with a limited number of inlining vectors. Subject to a given compiler, the model evaluates the benefit of inlining combined with other compiler heuristics. The model is subsequently used to select the inlining vector which minimizes the predicted completion time of a program with respect to a given level of optimization.
We present a case study based on the compiler GNU GCC. We used our technique to improve performance of 403.gcc from SPEC CPU2006 - a program which is notoriously hard to optimize - with respect to the optimization level -O3 as the baseline. On the state-of-the-art Intel Xeon Westmere architecture, 403.gcc, compiled using the inlining vectors selected by our technique, outperforms the baseline by up to 9%.

References

[1]
J. E. Ball. Predicting the effects of optimization on a procedure body. In Proceedings of the 1979 SIGPLAN symposium on Compiler construction, pages 214--220, 1979.
[2]
R. Allen and S. Johnson. Compiling c for vectorization, parallelization, and inline expansion. In Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation, pages 241--249, 1988.
[3]
R. W. Scheifler. An analysis of inline substitution for a structured programming language. Commun. ACM, 20, September 1977.
[4]
J. Dean and C. Chambers. Training compilers for better inlining decisions. Technical Report 93-05-05, University of Washington, May 1993.
[5]
K. Hazelwood and D. Grove. Adaptive online context-sensitive inlining. In Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, pages 253--264, 2003.
[6]
J. Cavazos and M. F. P. O'Boyle. Automatic tuning of inlining heuristics. In Proceedings of the 2005 ACM/IEEE conference on Supercomputing, 2005.
[7]
K. D. Cooper, T. J. Harvey, and T. Waterman. An adaptive strategy for inline substitution. In Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction, pages 69--84, 2008.
[8]
J. L. Henning. Spec cpu2006 benchmark descriptions. SIGARCH Computer Architecture News, 34(4):1--17, 2006.
[9]
A. Monsifrot, F. Bodin, and R. Quiniou. A machine learning approach to automatic production of compiler heuristics. In Proceedings of the 10th International Conference Artificial Intelligence: Methodology, Systems, and Applications, pages 41--50, 2002.
[10]
M. Stephenson and S. P. Amarasinghe. Predicting unroll factors using supervised classification. In 3nd IEEE / ACM International Symposium on Code Generation and Optimization, pages 123--134, 2005.
[11]
J. Cavazos, G. Fursin, F. Agakov, E. Bonilla, M. F. P. O'Boyle, and O. Temam. Rapidly selecting good compiler optimizations using performance counters. In Proceedings of the International Symposium on Code Generation and Optimization, pages 185--197, 2007.
[12]
C. Dubach, T. M. Jones, E. V. Bonilla, G. Fursin, and M. F. P. O'Boyle. Portable compiler optimisation across embedded programs and microarchitectures using machine learning. In Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture, pages 78--88, 2009.
[13]
W. S. Gosset. The probable error of a mean. Biometrika, 6(1):1--25, March 1908.
[14]
J. R. Quinlan. Learning with continuous classes. In Australian Joint Conference on Artificial Intelligence, 1992.

Cited By

View all
  • (2013)On the determination of inlining vectors for program optimizationProceedings of the 22nd international conference on Compiler Construction10.1007/978-3-642-37051-9_9(164-183)Online publication date: 16-Mar-2013

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
CF '12: Proceedings of the 9th conference on Computing Frontiers
May 2012
320 pages
ISBN:9781450312158
DOI:10.1145/2212908

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 May 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. hardware counters
  2. performance modeling

Qualifiers

  • Poster

Conference

CF'12
Sponsor:
CF'12: Computing Frontiers Conference
May 15 - 17, 2012
Cagliari, Italy

Acceptance Rates

Overall Acceptance Rate 273 of 785 submissions, 35%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)3
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2013)On the determination of inlining vectors for program optimizationProceedings of the 22nd international conference on Compiler Construction10.1007/978-3-642-37051-9_9(164-183)Online publication date: 16-Mar-2013

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media