Mechanical Certification of Loop Pipelining Transformations: A Preview

Slides:



Advertisements
Similar presentations
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Advertisements

School of EECS, Peking University “Advanced Compiler Techniques” (Fall 2011) Parallelism & Locality Optimization.
EECE **** Embedded System Design
1 CS 201 Compiler Construction Software Pipelining: Circular Scheduling.
Compiler techniques for exposing ILP
Foundational Certified Code in a Metalogical Framework Karl Crary and Susmit Sarkar Carnegie Mellon University.
Automated Refinement Checking of Concurrent Systems Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University.
A Rely-Guarantee-Based Simulation for Verifying Concurrent Program Transformations Hongjin Liang, Xinyu Feng & Ming Fu Univ. of Science and Technology.
Give qualifications of instructors: DAP
08/31/2001Copyright CECS & The Spark Project SPARK High Level Synthesis System Sumit GuptaTimothy KamMichael KishinevskyShai Rotem Nick SavoiuNikil DuttRajesh.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
The Concept of Computer Architecture
Trace-Based Automatic Parallelization in the Jikes RVM Borys Bradel University of Toronto.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Randal E. Bryant Carnegie Mellon University CS:APP2e CS:APP Chapter 4 Computer Architecture Overview CS:APP Chapter 4 Computer Architecture Overview
RTL Processor Synthesis for Architecture Exploration and Implementation Schliebusch, O. Chattopadhyay, A. Leupers, R. Ascheid, G. Meyr, H. Steinert, M.
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.
Wish Branches A Review of “Wish Branches: Enabling Adaptive and Aggressive Predicated Execution” Russell Dodd - October 24, 2006.
Center for Embedded Computer Systems Dynamic Conditional Branch Balancing during the High-Level Synthesis of Control-Intensive.
Validating High-Level Synthesis Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University of California, San.
Bridging the Gap Between Theory and Hardware Mario D. Marino, G. Robins, K. Skadron and L. Wang {mdm9uw,robins,skadron,lw2aw}.cs.virginia.edu Department.
ECE Lecture 1 1 ECE 3561 Advanced Digital Design Department of Electrical and Computer Engineering The Ohio State University.
Describing Syntax and Semantics
Center for Embedded Computer Systems University of California, Irvine and San Diego SPARK: A Parallelizing High-Level Synthesis.
Implementation of DSP Algorithm on SoC. Characterization presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompany engineer : Emilia Burlak.
Computer Architecture The Concept Ola Flygt V ä xj ö University
1 Testing Concurrent Programs Why Test?  Eliminate bugs?  Software Engineering vs Computer Science perspectives What properties are we testing for? 
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
BY Lecturer: Aisha Dawood.  an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CS 363 Comparative Programming Languages Semantics.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Basics of register-transfer design: –data paths and controllers; –ASM charts. Pipelining.
Colorama: Architectural Support for Data-Centric Synchronization Luis Ceze, Pablo Montesinos, Christoph von Praun, and Josep Torrellas, HPCA 2007 Shimin.
1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.
Chapter 3 Part II Describing Syntax and Semantics.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
3/2/2016© Hal Perkins & UW CSES-1 CSE P 501 – Compilers Optimizing Transformations Hal Perkins Autumn 2009.
Proving Optimizations Correct using Parameterized Program Equivalence University of California, San Diego Sudipta Kundu Zachary Tatlock Sorin Lerner.
Credible Compilation With Pointers Martin Rinard and Darko Marinov Laboratory for Computer Science Massachusetts Institute of Technology.
Code Optimization.
EEE2135 Digital Logic Design Chapter 1. Introduction
Topics Modeling with hardware description languages (HDLs).
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
ECE 551: Digital System Design & Synthesis
The DE Language Erik Reeber 6/30/04.
Compiler Lecture 1 CS510.
Henk Corporaal TUEindhoven 2009
Hongjin Liang, Xinyu Feng & Ming Fu
Topics Modeling with hardware description languages (HDLs).
Precision Timed Machine (PRET)
Optimizing Transformations Hal Perkins Autumn 2011
Benjamin Goldberg Compiler Verification and Optimization
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Hyesoon Kim Onur Mutlu Jared Stark* Yale N. Patt
HIGH LEVEL SYNTHESIS.
Instruction Level Parallelism (ILP)
Languages and Compilers (SProg og Oversættere)
Logic: tool-based modeling and reasoning
Dynamic Hardware Prediction
Lecture 19: Code Optimisation
How to improve (decrease) CPI
Presentation transcript:

Mechanical Certification of Loop Pipelining Transformations: A Preview Disha Puri*, Sandip Ray+, Kecheng Hao*, Fei Xie* In the context of 16 July 2014 *Computer Science Department, Portland State University +Strategic CAD Labs, Intel Corporation

Agenda Background Need for Certified Loop Pipelining Algorithm Framework for Certified Pipelining Algorithm Current Status & Future Work Related Work

Agenda Background Need for Certified Loop Pipelining Algorithm Framework for Certified Pipelining Algorithm Current Status & Future Work Related Work

Behavioral Synthesis High level specification of hardware design (in C, C++, System C) Compiler Transformations (e.g., dead code elimination) Behavioral synthesis tool (e.g., Vivado, CtoSilicon, Cynthesizer) Scheduling Transformations (e.g., Loop pipelining) Resource Allocation and Control Synthesis Implementation in hardware description language (in VHDL, Verilog)

Loop in Behavioral Synthesis Entry Exit c := i + 3 i′ := a′ + c X Y Z { a := ϕ [0,Entry] [a′,Z] i := ϕ [0,Entry] [i′,Z] } if [not (a < N)] goto Exit a′ := a + 2 a = 0; i = 0; while(a < N) { a = a + 2; c = i + 3; i = a + c; } Loop in C Loop before pipelining

Loop Pipelining Sequential Execution Pipelined Execution Entry Entry X Z Exit Pipeline Prologue X Y X Pipeline Full Z Y X Pipeline Epilogue Z Exit Sequential Execution Pipelined Execution

Motivation behind Loop Pipelining X Y Z Execution order before pipelining X Y Z Execution order after pipelining “ Pipeline interval is 1”

Agenda Background Need for Certified Loop Pipelining Algorithm Framework for Certified Pipelining Algorithm Current Status & Future Work Related Work

Certification of Loop Pipelining Entry X Y Z Exit X Y Z Entry Exit ? Mechanical reasoning of synthesis tool’s implementation Implementation is not disclosed by vendors, so we cannot certify the transformation by theorem proving

Certification of Loop Pipelining Entry X Y Z Exit X Y Z Entry Exit Sequential Equivalence Checking Sequential equivalence checking does not work due to huge abstraction gap between the two designs

Certifying Loop Pipelining Transformation X Y Z Entry Exit Entry X Y Z Exit Loop Pipelining Transformation Pipeline parameters Certified Pipelining Algorithm SEC Pipeline Reference Model 1. Create a correct pipeline reference model 2. Compare using sequential equivalence checking (SEC) Hao, et al. 2012. “Equivalence checking for behaviorally synthesized pipelines”. DAC 2012

Goal: A Certified Loop Pipelining Algo Entry X Y Z Exit X Y Z Entry Exit ? Certified Pipelining Algo Pipeline Reference Model Sequential Execution

Agenda Background Need for Certified Loop Pipelining Algorithm Framework for Certified Pipelining Algorithm Current Status & Future Work Related Work

Challenges in Loop Pipelining Correspondence?? Entry Entry X Y Z Exit Pipeline Prologue X Y X Pipeline Full Z Y X Pipeline Epilogue Z Exit Sequential Execution Pipelined Execution

Our Approach Framework of certified pipelining primitives to build pipelining algorithms Shadow register primitive Interchange primitive Phi-elimination primitive Branch-handling primitive Develop a simple loop pipelining algorithm from ground up using our framework Certify the algorithm

Loop Pipelining Invariant X Pipeline Prologue X Y Y X Z Pipeline Full X Z Y X Pipeline Epilogue Y Z X Executing pipeline prologue + k iterations of pipeline full = Executing k iterations of sequential loop + m blocks of sequential loop+ (m-I) blocks of sequential loop + …

Loop Invariant: Base case (k=1) X' Pipeline Prologue X' Y Y X Z Pipeline Full Z Y X X Y X Executing pipeline prologue + “1” iterations of pipeline full = Executing “1” iterations of sequential loop + 2 blocks of first iteration + 1 blocks of second iteration

Loop Invariant: Inductive Step X' X' Pipeline Prologue X' Y Y X Y Z Z X X Pipeline Full Y Y Z Y X X Z Z X Y Y X X

Invariant Implies Completeness X' X' Pipeline Prologue X' Y Y Y X Z Z Pipeline Full X X Z Y X Y Y Pipeline Epilogue Z X Z Z X

Agenda Background Need for Certified Loop Pipelining Algorithm Framework for Certified Pipelining Algorithm Current Status & Future Work Related Work

Current Status Completed Work Developed framework of primitives Certified primitives: Phi-removal primitive Shadow register primitive Formalized algorithm using framework Certified the correspondence invariant

Next Steps Ongoing Work Certify remaining invariants Certify the algorithm end-to-end Future Work Function pipelining algorithm There are other pipelining algortihms such as not details…

Agenda Background Need for Certified Loop Pipelining Algorithm Framework for Certified Pipelining Algorithm Current Status & Future Work Related Work

Related Work Pipelines in processors [Manolios et al., 2000] [Sawada and Hunt, 2002] [Beyer et al., 2006] Similar in notions of correctness Work on one instance of a pipeline, not an entire algorithm Software pipelines [Tristan and Leroy, 2010] Works on instances of designs Symbolic simulation

Thanks !! Email: disha@pdx.edu