Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/776261.776284acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
Article

Compiler optimization-space exploration

Published: 23 March 2003 Publication History

Abstract

To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger number of increasingly complex transformation algorithms. Since code transformations may often degrade performance or interfere with subsequent transformations, compilers employ predictive heuristics to guide optimizations by predicting their effects a priori. Unfortunately, the unpredictability of optimization interaction and the irregularity of today's wide-issue machines severely limit the accuracy of these heuristics. As a result, compiler writers may temper high variance optimization with overly conservative heuristics or may exclude these optimizations entirely. While this process results in a compiler capable of generating good average code quality across the target benchmark set, it is at the cost of missed optimization opportunities in individual code segments.To replace predictive heuristics, researchers have proposed compilers which explore many optimization options, selecting the best one a posteriori. Unfortunately, these existing iterative compilation techniques are not practical for reasons of compile time and applicability. In this paper, we present the Optimization-Space Exploration (OSE) compiler organization, the first practical iterative compilation strategy applicable to optimizations in general-purpose compilers. Instead of replacing predictive heuristics, OSE uses the compiler writer's knowledge encoded in the heuristics to select a small number of promising optimization alternatives for a given code segment. Compile time is limited by evaluating only these alternatives for hot code segments using a general compiletime performance estimator. An OSE-enhanced version of lntel's highly-tuned, aggressively optimizing production compiler for IA-64 yields a significant performance improvement, more than 20% in some cases, on Itanium for SPEC codes.

References

[1]
lntel Corporation, 1A-64 Application Developer's Architecture Guide, May 1999.
[2]
Phillips Corporation, "Phillips Trimedia Processor Homepage," 2002. http://www.semiconductors.philips.com/trimedia/.
[3]
Equator Corporation, "Equator MAP Architecture," 2002. http://www.equator.com/products/MAPCAProductBrief.html.
[4]
D. F. Bacon, S. L. Graham, and O. J. Sharp, "Compiler transformations for high-performance computing," ACM Computing Surveys, vol. 26, no. 4, pp. 345--420, 1994.
[5]
E. Granston and A. Holler, "Automatic recommendation of compiler options," in Proceedings 4th Feedback Directed Optimization Workshop, December 2001.
[6]
T. Kisuki, P. M. W. Knijnenburg, M. E P. O'Boyle, E Bodin, and H. A. G. Wijshoff, "A feasibility study in iterative compilation," in International Symposium on High Performance Computing, pp. 121--132, 1999.
[7]
F. Bodin, T. Kisuki, P. M. W. Knijnenburg, M. F. P. O'Boyle, and E. Rohou, "Iterative compilation in a non-linear optimisation space," in Proceedings of the Workshop on Profile and Feedback-Directed Compilation, in Conjunction with the International Conference on Parallel Architectures and Compilation Techniques, October 1998.
[8]
K. D. Cooper, D. Subramanian, and L. Torczon, "Adaptive optimizing compilers for the 21st century," in Proceedings of the 2001 Symposium of the Los Alamos Computer Science Institute, October 2001.
[9]
D. L. Whitfield and M. L. Soffa, "An approach for exploring code improving transformations," ACM Transactions on Programming Languages and Systems, vol. 19, pp. 1053--1084, November 1997.
[10]
J. Llosa, M. Valero, E. Ayguade, and A. Gonzalez, "Modulo scheduling with reduced register pressure," IEEE Transactions on Computers, vol. 47, no. 6, pp. 625--638, 1998.
[11]
R. Govindarajan, E. R. Altman, and G. R. Gao, "Minimizing register requirements under resource-constrained rate-optimal software pipelining," in Proceedings of the 27th Annual International Symposium on Microarchitecture, December 1994.
[12]
R. Leupers, "Instruction scheduling for clustered VLIW DSPs," in Proceedings of the International Conference on Parallel Architecture and Compilation Techniques, October 2000.
[13]
J.R. Goodman and W. C. Hsu, "Code scheduling and register allocation in large basic blocks," in Proceedings of the 1988 International Conference on Supercomputing, pp. 442--452, July 1988.
[14]
D. G. Bradlee, S. J. Eggers, and R. R. Henry, "Integrating register allocation and instruction scheduling for RISCs," in Proceedings of the 1991 International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 122--131, 1991.
[15]
W.G. Morris, "CCG: A prototype coagulating code generator," in Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, (Toronto), pp. 45--58, June 1991.
[16]
S.A. Mahlke, D. C. Lin, W. Y. Chen, R. E. Hank, R. A. Bringmann, and W. W. Hwu, "Effective compiler support for predicated execution using the hyperblock," in Proceedings of the 25th International Symposium on Microarchitecture, pp. 45--54, December 1992.
[17]
D. 1. August, W. W. Hwu, and S. A. Mahlke, "A framework for balancing control flow and predication," in International Symposium on Microarchitecture, pp. 92--103, 1997.
[18]
B. Aarts, M. Barreteau, F. Bodin, P. Brinkhaus, Z. Chamski, H.-P. Charles, C. Eisenbeis, J. Gurd, J. Hoogerbrugge, P. Hu, W. Jalby, P. Knijnenburg, M. O'Boyle, E. Rohou, R. Sakellariou, H. Schepers, A. Seznec, E. A. Sthr, M. Verhoeven, and H. Wijshoff, "OCEANS: Optimizing compilers for embedded HPC applications," Lecture Notes in Computer Science, August 1997.
[19]
F. Bodin, D. Windheiser, W. Jalby, D. Atapattu, M. Lee, and D. Gannon, "Performance evaluation and prediction for parallel algorithms on the BBN GP1000," in Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 401--413, April 1990.
[20]
M. Wolf, D. Maydan, and D. Chen, "Combining loop transformations considering caches and scheduling," in Proceedings of the 29th Annual International Symposium on Microarchitecture, pp. 274--286, December 1996.
[21]
D. 1. August, D. A. Connors, S. A. Mahlke, J. W. Sias, K. M. Crozier, B. Cheng, P. R. Eaton, Q. B. Olaniran, and W. W. Hwu, "Integrated predication and speculative execution in the IMPACT EPIC architecture," in Proceedings of the 25th International Symposium on Computer Architecture, pp. 227--237, June 1998.
[22]
Intel Corporation, Electron C Compiler User's Guide for Linux, 2001.
[23]
Y.-T. S. Li, S. Malik, and A. Wolfe, "Performance Estimation of Embedded Software with Instruction Cache Modeling," Design Automation of Electronic Systems, vol. 4, no. 3, pp. 257--279, 1999.
[24]
S. Eranian, "pfmon Performance Monitoring Tool." ftp://ftp.hpl.hp.com/pub/linux-ia64.

Cited By

View all
  • (2022)Boosting Compiler Testing via Compiler Optimization ExplorationACM Transactions on Software Engineering and Methodology10.1145/350836231:4(1-33)Online publication date: 22-Aug-2022
  • (2021)Predicting Objectives on a Reduced Search Space of Multiobjective Function InliningProceedings of the 24th International Workshop on Software and Compilers for Embedded Systems10.1145/3493229.3493303(23-28)Online publication date: 1-Nov-2021
  • (2021)CTFS: A Configurable Tuning Framework on SHENWEI SystemProceedings of the 5th International Conference on High Performance Compilation, Computing and Communications10.1145/3471274.3471282(44-49)Online publication date: 18-Jun-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CGO '03: Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
March 2003
349 pages
ISBN:076951913X

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 23 March 2003

Check for updates

Qualifiers

  • Article

Conference

CGO03
Sponsor:

Acceptance Rates

Overall Acceptance Rate 312 of 1,061 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Boosting Compiler Testing via Compiler Optimization ExplorationACM Transactions on Software Engineering and Methodology10.1145/350836231:4(1-33)Online publication date: 22-Aug-2022
  • (2021)Predicting Objectives on a Reduced Search Space of Multiobjective Function InliningProceedings of the 24th International Workshop on Software and Compilers for Embedded Systems10.1145/3493229.3493303(23-28)Online publication date: 1-Nov-2021
  • (2021)CTFS: A Configurable Tuning Framework on SHENWEI SystemProceedings of the 5th International Conference on High Performance Compilation, Computing and Communications10.1145/3471274.3471282(44-49)Online publication date: 18-Jun-2021
  • (2021)The interplay of compile-time and run-time options for performance predictionProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471149(100-111)Online publication date: 6-Sep-2021
  • (2020)DDOTProceedings of the 57th ACM/EDAC/IEEE Design Automation Conference10.5555/3437539.3437636(1-6)Online publication date: 20-Jul-2020
  • (2020)Automatic compiler optimization on embedded software through k-means clusteringProceedings of the 2020 ACM/IEEE Workshop on Machine Learning for CAD10.1145/3380446.3430631(157-162)Online publication date: 16-Nov-2020
  • (2018)An empirical study of the effect of source-level loop transformations on compiler stabilityProceedings of the ACM on Programming Languages10.1145/32764962:OOPSLA(1-29)Online publication date: 24-Oct-2018
  • (2018)Assessing the effect of data transformations on test suite compilationProceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3239235.3240499(1-10)Online publication date: 11-Oct-2018
  • (2018)A Survey on Compiler Autotuning using Machine LearningACM Computing Surveys10.1145/319797851:5(1-42)Online publication date: 18-Sep-2018
  • (2017)Autotuning of OpenCL Kernels with Global OptimizationsProceedings of the 1st Workshop on AutotuniNg and aDaptivity AppRoaches for Energy efficient HPC Systems10.1145/3152821.3152877(1-6)Online publication date: 9-Sep-2017
  • Show More Cited By

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