A Machine Learning Approach to Automatic Production of Compiler Heuristics
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?
- 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. CrossRef
- 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. CrossRef
- 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.
- A Machine Learning Approach to Automatic Production of Compiler Heuristics
- Book Title
- Artificial Intelligence: Methodology, Systems, and Applications
- Book Subtitle
- 10th International Conference, AIMSA 2002 Varna, Bulgaria, September 4–6, 2002 Proceedings
- pp 41-50
- Print ISBN
- Online ISBN
- Series Title
- Lecture Notes in Computer Science
- Series Volume
- Series ISSN
- Springer Berlin Heidelberg
- Copyright Holder
- Springer-Verlag Berlin Heidelberg
- Additional Links
- decision tree
- compiler heuristics
- loop unrolling
- Industry Sectors
- eBook Packages
To view the rest of this content please follow the download PDF link above.