1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.

Slides:



Advertisements
Similar presentations
Performance Analysis and Optimization through Run-time Simulation and Statistics Philip J. Mucci University Of Tennessee
Advertisements

Optimizing Compilers for Modern Architectures Syllabus Allen and Kennedy, Preface Optimizing Compilers for Modern Architectures.
Compiler Support for Superscalar Processors. Loop Unrolling Assumption: Standard five stage pipeline Empty cycles between instructions before the result.
Computer Science and Engineering Laboratory, Transport-triggered processors Jani Boutellier Computer Science and Engineering Laboratory This.
School of EECS, Peking University “Advanced Compiler Techniques” (Fall 2011) Parallelism & Locality Optimization.
A Process Splitting Transformation for Kahn Process Networks Sjoerd Meijer.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Compiler-Based Register Name Adjustment for Low-Power Embedded Processors Discussion by Garo Bournoutian.
POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio:
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
*time Optimization Heiko, Diego, Thomas, Kevin, Andreas, Jens.
Program Representations. Representing programs Goals.
Parallel Inclusion-based Points-to Analysis Mario Méndez-Lojo Augustine Mathew Keshav Pingali The University of Texas at Austin (USA) 1.
CPSC Compiler Tutorial 9 Review of Compiler.
March 18, 2008SSE Meeting 1 Mary Hall Dept. of Computer Science and Information Sciences Institute Multicore Chips and Parallel Programming.
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
11 1 Hierarchical Coarse-grained Stream Compilation for Software Defined Radio Yuan Lin, Manjunath Kudlur, Scott Mahlke, Trevor Mudge Advanced Computer.
TM Pro64™: Performance Compilers For IA-64™ Jim Dehnert Principal Engineer 5 June 2000.
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Instruction Level Parallelism (ILP) Colin Stevens.
Cpeg421-08S/final-review1 Course Review Tom St. John.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Center for Embedded Computer Systems University of California, Irvine SPARK: A High-Level Synthesis Framework for Applying.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Introduction & Overview CS4533 from Cooper & Torczon.
ECE669 L23: Parallel Compilation April 29, 2004 ECE 669 Parallel Computer Architecture Lecture 23 Parallel Compilation.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Types of software. Sonam Dema..
Compiler Research at the Indian Institute of Science Bangalore, India Y.N. Srikant Professor and Chairman Department of Computer Science and Automation.
Generic Software Pipelining at the Assembly Level Markus Pister
Development in hardware – Why? Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design.
Chapter 2 The process Process, Methods, and Tools
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
1 Advance Computer Architecture CSE 8383 Ranya Alawadhi.
Is Out-Of-Order Out Of Date ? IA-64’s parallel architecture will improve processor performance William S. Worley Jr., HP Labs Jerry Huck, IA-64 Architecture.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
1 EECS 6083 Compiler Theory Based on slides from text web site: Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved.
Construction Planning and Prerequisite
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
Collections Data structures in Java. OBJECTIVE “ WHEN TO USE WHICH DATA STRUCTURE ” D e b u g.
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
Hy-C A Compiler Retargetable for Single-Chip Heterogeneous Multiprocessors Philip Sweany 8/27/2010.
Machine Learning in Compiler Optimization By Namita Dave.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Memory-Aware Compilation Philip Sweany 10/20/2011.
Michael J. Voss and Rudolf Eigenmann PPoPP, ‘01 (Presented by Kanad Sinha)
Presented by : A best website designer company. Chapter 1 Introduction Prof Chung. 1.
ECE 587 Hardware/Software Co- Design Lecture 23 LLVM and xPilot Professor Jia Wang Department of Electrical and Computer Engineering Illinois Institute.
CHAPTER 1 INTRODUCTION TO COMPILER SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.
Advanced Computer Systems
Code Optimization.
Chapter 1 Introduction.
Ph.D. in Computer Science
Conception of parallel algorithms
Announcements MP 3 CS296 (Chase Geigle
Chapter 1 Introduction.
课程名 编译原理 Compiling Techniques
Compiler Lecture 1 CS510.
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
Many-core Software Development Platforms
CSCI1600: Embedded and Real Time Software
Compiler Back End Panel
Compiler Back End Panel
CISC 7120X Programming Languages and Compilers
6- General Purpose GPU Programming
CSCI1600: Embedded and Real Time Software
Research: Past, Present and Future
Presentation transcript:

1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD

2 Agenda  What is optimizing compiler?  Problem description  Problem solution  Impact  Customers  Market examples  Q & A

3 What is optimizing compiler? Optimizer assembler binaries … C, C++ F77, F90 … Multi core Superscalar EPIC

4 Problem description  All existing optimizers are organized as monolithic systems which can not be quickly retargeted with high efficiency (including gcc)  Development of new optimizer is very expensive task and requires much time & recourses for maintenance  Need of optimizing compiler tools and building blocks for creating compilers is obvious

5 Problem solution

6 Solution requirements  Provide tools and building blocks which allow easy and quick construction of optimizer with arbitrary level of complexity  Compatible with any existing optimizing technology chain  Each building block must have its own independent value

7 Base ideas of the solution  Parameterization of optimizer environment information through database (allow to port the whole solution in any optimizing technology chain including existing ones)  Creating of optimizing compiler functionality hierarchy based on latest achievements of computer science (allow to use each functionality element separately as a building block)

8 Target architecture information Input language information Environment of optimizing building blocks IPO, Data Dependence analysis, multi threading, … Tools, Control and Data Flow framework, Data Flow optimizer, Control Flow optimizer, … High level optimizer (loop macro transformations), Vectorizer, … Register allocation, Global Code Scheduling, Software Pipelining (Modulo Scheduling), Predication & Speculation, …

9 Compiler building blocks internal structure Memory manager Tools (hash, bit vector, list, array, ps-form) Graph DOM/PDOM Tree Loop Tree IDF DepGraph DUG CFG; profile support Data Flow optimizations Control Flow optimizations Analysis & Optimizations Value Numbering

10 Building blocks optimizer Tools (graph, BDD, …) Control & Data Flow framework Analysis (IPA, DF, DD,…) Optimizations & Scheduling Building blocks hierarchyEnvironment database Machine model Program’s semantics: operations, operands, control transfer, … High level information: symbol table, dimensions, …

11 Combining building blocks  Common infrastructure for various types of building blocks gives new to the global industry advantages for compiler designers: High level of interoperability between blocks allows to use un-precedently many optimization algorithms and transformations at a single optimizing phase No or minimal impact on performance of compiler and on complier code size in case of massive reuse of optimizations during different phases Allows faster building and tuning optimizing heuristics

12 Adding more efficiency  Static expert-based rules for combining optimizing transformation allows to create very good prototypes with good performance in general  Adaptive learning with non-linear feedback creates a human-like behavior with behavior pattern reuse, which results in highly efficient executable code

13 Impact  Automation of more than 70% of work, required for creating highest quality optimizer through technology reusing  Each building block can be separately used in any optimizing technology  Strong base to develop any compiler for any platform  Good scalable product for market

14 Customers  Hardware companies  Software companies  Universities interested in creating environment for scientific experiments in high performance computing area  …

15 Market examples  Example for EDG - they have: 1 year license cost from $40K to 250K$ 137 active licenses More than 40 well known companies in user list including HP, ARM, Fujitsu-Siemens About 3 developers support the product  Example for Intel – they have: More than $10.000K compiler sales per year This is only 1-2% share of the whole compiler market

16 Thanks for you time and Q & A !