Abstract
Achieving high performance on modern processors heavily relies on the compiler optimizations to exploit the microprocessor architecture. The efficiency of optimization directly depends on the compiler heuristics. These heuristics must be target-specific and each new processor generation requires heuristics reengineering.
In this paper, we address the automatic generation of optimization heuristics for a target processor by machine learning. We evaluate the potential of this method on an always legal and simple transformation: loop unrolling. Though simple to implement, this transformation may have strong effects on program execution (good or bad). However deciding to perform the transformation or not is difficult since many interacting parameters must be taken into account. So we propose a machine learning approach.
We try to answer the following questions: is it possible to devise a learning process that captures the relevant parameters involved in loop unrolling performance? Does the Machine Learning Based Heuristics achieve better performance than existing ones?
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
David Bailey. Nas kernel benchmark program, June 1988. http://www.netlib.org/benchmark/nas.
F. Bodin, Y. Mével, and R. Quiniou. A User Level Program Transformation Tool. In Proceedings of the International Conference on Supercomputing, pages 180–187, July 1998, Melbourne, Australia.
Jack W. Davidson and Sanjay Jinturkar. Aggressive Loop Unrolling in a Retargetable, Optimizing Compiler. In Compiler Construction, volume 1060 of Lecture Notes in Computer Science, pages 59–73. Springer, April 1996.
J. J. Dongarra and A. R. Hinds. Unrolling loops in FORTRAN. Software Practice and Experience, 9(3):219–226, March 1979.
A. Koseki, H. Komastu, and Y. Fukazawa. A Method for Estimating Optimal Unrolling Times for Nested Loops. In Proceedings of the International Symposium on Parallel Architectures, Algorithms and Networks, 1997.
A. Monsifrot and F. Bodin. Computer Aided Hand Tuning (CAHT): “Applying Case-Based Reasoning to Performance Tuning”. In Proceedings of the 15th ACM International Conference on Supercomputing (ICS-01), pages 196–203. ACM Press, June 17–21 2001, Sorrento, Italy.
Sreerama K. Murthy, Simon Kasif, and Steven Salzberg. A System for Induction of Oblique Decision Trees. Journal of Artificial Intelligence Research, 2:1–32, 1994.
Vivek Sarkar. Optimized Unrolling of Nested Loops. In Proceedings of the 14th ACM International Conference on Supercomputing (ICS-00), pages 153–166. ACM Press, May 2000.
C. Yu and D.B. Skillicorn. Parallelizing Boosting and Bagging. Technical report, Queen’s University, Kingston, Ontario, Canada K7L 3N6, February 2001.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Monsifrot, A., Bodin, F., Quiniou, R. (2002). A Machine Learning Approach to Automatic Production of Compiler Heuristics. In: Scott, D. (eds) Artificial Intelligence: Methodology, Systems, and Applications. AIMSA 2002. Lecture Notes in Computer Science(), vol 2443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46148-5_5
Download citation
DOI: https://doi.org/10.1007/3-540-46148-5_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44127-4
Online ISBN: 978-3-540-46148-7
eBook Packages: Springer Book Archive