Machine Learning in Compiler Optimization By Namita Dave.

Slides:



Advertisements
Similar presentations
Efficient Program Compilation through Machine Learning Techniques Gennady Pekhimenko IBM Canada Angela Demke Brown University of Toronto.
Advertisements

Generative Models Thus far we have essentially considered techniques that perform classification indirectly by modeling the training data, optimizing.
Chapter 11 – Virtual Memory Management
Compiler Support for Superscalar Processors. Loop Unrolling Assumption: Standard five stage pipeline Empty cycles between instructions before the result.
EECC551 - Shaaban #1 Fall 2005 lec# Static Compiler Optimization Techniques We examined the following static ISA/compiler techniques aimed.
*time Optimization Heiko, Diego, Thomas, Kevin, Andreas, Jens.
Supervised Learning Recap
UNIT-III By Mr. M. V. Nikum (B.E.I.T). Programming Language Lexical and Syntactic features of a programming Language are specified by its grammar Language:-
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Mitigating the Compiler Optimization Phase- Ordering Problem using Machine Learning.
Machine Learning and Data Mining Clustering
1 Copyright © 2012, Elsevier Inc. All rights reserved. Chapter 3 (and Appendix C) Instruction-Level Parallelism and Its Exploitation Computer Architecture.
Karl Schnaitter and Neoklis Polyzotis (UC Santa Cruz) Serge Abiteboul (INRIA and University of Paris 11) Tova Milo (University of Tel Aviv) Automatic Index.
GridFlow: Workflow Management for Grid Computing Kavita Shinde.
Introduction to software project management. What is a project? One definition ‘a specific design or plan’ ‘a specific design or plan’ Key elements non-routine.
Chapter 11 – Virtual Memory Management Outline 11.1 Introduction 11.2Locality 11.3Demand Paging 11.4Anticipatory Paging 11.5Page Replacement 11.6Page Replacement.
An Efficient Compiler Technique for Code Size Reduction using Reduced Bit-width ISAs S. Ashok Halambi, Aviral Shrivastava, Partha Biswas, Nikil Dutt, Alex.
From Cooper & Torczon1 Implications Must recognize legal (and illegal) programs Must generate correct code Must manage storage of all variables (and code)
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science John Cavazos Architecture and Language Implementation Lab Thesis Seminar University.
Introduction & Overview CS4533 from Cooper & Torczon.
ECE669 L23: Parallel Compilation April 29, 2004 ECE 669 Parallel Computer Architecture Lecture 23 Parallel Compilation.
COP4020 Programming Languages
CISC673 – Optimizing Compilers1/34 Presented by: Sameer Kulkarni Dept of Computer & Information Sciences University of Delaware Phase Ordering.
Evaluating Performance for Data Mining Techniques
Machine Learning Queens College Lecture 1: Introduction.
Development in hardware – Why? Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
CPS Today’s topics Machine Architecture More Low-level Programming Upcoming Language Translation ( G.I. Chapter 9) Reading Great Ideas, Chapters.
Video Tracking Using Learned Hierarchical Features
1 Advance Computer Architecture CSE 8383 Ranya Alawadhi.
Slide 1 Mixed Model Production lines  2000 C.S.Kanagaraj Mixed Model Production Lines C.S.Kanagaraj ( Kana + Garage ) IEM 5303.
3DCS Advanced Analyzer/Optimizer Module © Dimensional Control Systems Inc DCS Advanced Analyzer/Optimizer Equation Based Tolerance Analysis Quick.
CS 782 – Machine Learning Lecture 4 Linear Models for Classification  Probabilistic generative models  Probabilistic discriminative models.
1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
Adaptive Multi-Threading for Dynamic Workloads in Embedded Multiprocessors 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan,
CISC Machine Learning for Solving Systems Problems John Cavazos Dept of Computer & Information Sciences University of Delaware
Course Overview  What is AI?  What are the Major Challenges?  What are the Main Techniques?  Where are we failing, and why?  Step back and look at.
Full and Para Virtualization
Copyright Paula Matuszek Kinds of Machine Learning.
Machine learning optimization Usman Roshan. Machine learning Two components: – Modeling – Optimization Modeling – Generative: we assume a probabilistic.
CISC Machine Learning for Solving Systems Problems Presented by: Eunjung Park Dept of Computer & Information Sciences University of Delaware Solutions.
Learning Kernel Classifiers 1. Introduction Summarized by In-Hee Lee.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science John Cavazos J Eliot B Moss Architecture and Language Implementation Lab University.
Optimal Relay Placement for Indoor Sensor Networks Cuiyao Xue †, Yanmin Zhu †, Lei Ni †, Minglu Li †, Bo Li ‡ † Shanghai Jiao Tong University ‡ HK University.
Learning A Better Compiler Predicting Unroll Factors using Supervised Classification And Integrating CPU and L2 Cache Voltage Scaling using Machine Learning.
SUPPORT VECTOR MACHINES Presented by: Naman Fatehpuria Sumana Venkatesh.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 0: Historical Overview.
Automatic Feature Generation for Machine Learning Based Optimizing Compilation Hugh Leather, Edwin Bonilla, Michael O'Boyle Institute for Computing Systems.
Introduction to Machine Learning, its potential usage in network area,
Information Organization: Overview
Mooly Sagiv html://
Machine Learning overview Chapter 18, 21
Machine Learning overview Chapter 18, 21
Done Done Course Overview What is AI? What are the Major Challenges?
Agenda Motivation & Goals „Out-of-the-Loop“-Phenomenon MINIMA Concept
Charlie N. Barron and Lucy F. Smedstad Naval Research Laboratory
STUDY AND IMPLEMENTATION
Register Pressure Guided Unroll-and-Jam
Optimizing Transformations Hal Perkins Winter 2008
Supervised vs. unsupervised Learning
Introduction to Scheduling Chapter 1
The Challenge of Cross - Language Interoperability
Predicting Unroll Factors Using Supervised Classification
Information Organization: Overview
Kostas Kolomvatsos, Christos Anagnostopoulos
Machine Learning overview Chapter 18, 21
Rohan Yadav and Charles Yuan (rohany) (chenhuiy)
Machine Learning and Data Mining Clustering
Presentation transcript:

Machine Learning in Compiler Optimization By Namita Dave

Overview What are compiler optimizations? Challenges with optimizations Current Solutions Machine learning techniques Structure of Adaptive compilers

Introduction Optimization refers to process of modifying to achieve maximum efficiency in terms of storage, cost or time. Machine learning techniques can be effectively used for optimizing based on specifics of program and target platform

Challenges Inherently hard Problems Interactions between optimizations

Inherently hard problems Due to the interaction of compiler optimization with the hardware Example – Register allocation

Interaction between optimizations There can be positive or negative interactions It depends in the order in which optimizations are applied Positive Interaction Example GCSE and Loop unrolling Negative interaction example Instruction scheduling and Register allocation

Instruction Scheduling vs Register Allocation z = x[i] tmp = x[i+1+n] Pre pass Post Pass

Current Solutions Employ Heuristics To decide whether to apply an optimization or not Example – In lining decisions Phase ordering To decide the sequence of optimizations so as to minimize negative interactions

Typical Optimizing compiler

Problem? Compiler Heuristics and Phase ordering is manual and predetermined The solution needs to be dependent on specifics of program and the target platform

Solution Using machine learning techniques, a near optimal solution can be developed.

Heuristic selection Machine learning techniques like supervised classification, function approximation and function selection can be employed for heuristic selection Example Supervised classification can be used to predict best unroll loop factor Genetic programming can be used for learning priority functions

Automatic Phase Ordering Unsupervised learning techniques can automate phase ordering Based on the notion of similarity of programs Offline training data can be used to identify a set of best phase orderings for similar programs Based on feature vectors, similar programs can be found for a given new program

Structure of Adaptive compiler

Thank You