Axilog: Language Support for Approximate Hardware Design DATE 2015 Georgia Institute of Technology Alternative Computing Technologies (ACT) Lab Georgia.

Slides:



Advertisements
Similar presentations
ENEL111 Digital Electronics
Advertisements

//HDL Example 4-10 // //Gate-level description of circuit of Fig. 4-2 module analysis (A,B,C,F1,F2); input.
The Verilog Hardware Description Language
Verilog Intro: Part 1.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Combinational Logic with Verilog Materials taken from: Digital Design and Computer Architecture by David and Sarah Harris & The Essentials of Computer.
CSE 341 Verilog HDL An Introduction. Hardware Specification Languages Verilog  Similar syntax to C  Commonly used in  Industry (USA & Japan) VHDL 
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
1 Verilog Digital Computer Logic Kashif Bashir WWW: http//:
 HDLs – Verilog and Very High Speed Integrated Circuit (VHSIC) HDL  „ Widely used in logic design  „ Describe hardware  „ Document logic functions.
Copyright 2001, Agrawal & BushnellDay-1 PM Lecture 4a1 Design for Testability Theory and Practice Lecture 4a: Simulation n What is simulation? n Design.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
The Multicycle Processor II CPSC 321 Andreas Klappenecker.
The Design Process CPSC 321 Computer Architecture Andreas Klappenecker.
ENEE 408C Lab Capstone Project: Digital System Design Spring 2006 Class Web Site:
VHDL Intro What does VHDL stand for? VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit Developed in 1982 by Govt. to standardize.
On-Line Adjustable Buffering for Runtime Power Reduction Andrew B. Kahng Ψ Sherief Reda † Puneet Sharma Ψ Ψ University of California, San Diego † Brown.
CSE241 RTL Performance.1Kahng & Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 2.5: Performance Coding.
Computer Organization Lecture Set – 03 Introduction to Verilog Huei-Yung Lin.
Verilog Basics Nattha Jindapetch November Agenda Logic design review Verilog HDL basics LABs.
Accuracy-Configurable Adder for Approximate Arithmetic Designs
Verilog Digital System Design Z. Navabi, McGraw-Hill, 2005
1 Verilog Digital System Design Z. Navabi, 2006 Digital Design Flow  Digital Design Flow begins with specification of the design at various levels of.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
ECE 2372 Modern Digital System Design
F LEX J AVA : Language Support for Safe and Modular Approximate Programming Jongse Park, Hadi Esmaeilzadeh, Xin Zhang, Mayur Naik, William Harris Alternative.
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
Automated Design of Custom Architecture Tulika Mitra
Hardware Design Environment Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
1 H ardware D escription L anguages Modeling Digital Systems.
1 Moore’s Law in Microprocessors Pentium® proc P Year Transistors.
Lecture 9. MIPS Processor Design – Instruction Fetch Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System Education &
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
CPEN Digital System Design
Module 1.2 Introduction to Verilog
L12 – VHDL Overview. VHDL Overview  HDL history and background  HDL CAD systems  HDL view of design  Low level HDL examples  Ref: text Unit 10, 17,
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Use of HDLs in Teaching of Computer Hardware Courses Zvonko Vranesic and Stephen Brown University of Toronto.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
1 Synthesizing Datapath Circuits for FPGAs With Emphasis on Area Minimization Andy Ye, David Lewis, Jonathan Rose Department of Electrical and Computer.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
Introduction to ASIC flow and Verilog HDL
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Adding the Superset Adder to the DesignWare IP Library
VHDL and Hardware Tools CS 184, Spring 4/6/5. Hardware Design for Architecture What goes into the hardware level of architecture design? Evaluate design.
Approximate Computing on FPGA using Neural Acceleration Presented By: Mikkel Nielsen, Nirvedh Meshram, Shashank Gupta, Kenneth Siu.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
ECE 111 (Spring 2017) Professor Bill Lin
Digital Electronics Multiplexer
EEE2135 Digital Logic Design Chapter 1. Introduction
CSE241A VLSI Digital Circuits Winter 2003 Recitation 2
Topics Modeling with hardware description languages (HDLs).
Supervised Learning Based Model for Predicting Variability-Induced Timing Errors Xun Jiao, Abbas Rahimi, Balakrishnan Narayanaswamy, Hamed Fatemi, Jose.
Hardware Description Languages: Verilog
Digital Electronics Multiplexer
Topics Modeling with hardware description languages (HDLs).
Topics HDL coding for synthesis. Verilog. VHDL..
Introduction to Verilog
ECE 551: Digital System Design & Synthesis
Levels in computer design
CS 153 Logic Design Lab Professor Ian G. Harris
The Verilog Hardware Description Language
THE ECE 554 XILINX DESIGN PROCESS
© Copyright Joanne DeGroat, ECE, OSU
Introduction to Digital IC Design
Introduction to Verilog – Part-2 Procedural Statements
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

Axilog: Language Support for Approximate Hardware Design DATE 2015 Georgia Institute of Technology Alternative Computing Technologies (ACT) Lab Georgia Institute of Technology University of Minnesota UC San Diego Amir YazdanbakhshDivya MahajanBradley Thwaites Jongse ParkAnandhavel NagendrakumarSindhuja Sethuraman Kartik RamkrishnanNishanthi RavindranRudra Jariwala Abbas Rahimi Hadi EsmaeilzadehKia Bazargan

Approximate computing Embracing error Relax the abstraction of near-perfect accuracy in general-purpose computing/communication/storage Allow errors to happen during computation/communication/storage – Improve resource utilization efficiency Energy, bandwidth, capacity, … – Improve performance Build acceptable systems from intentionally-made unreliable software and hardware components Avoid overkill and worst-case design 2

Avoiding Worst-Case Design Approximate Computing 3 Generality Precision Reliability Determinism Efficiency Performance Cost Physical Device Circuit Architecutre Compiler Programming Language Application Microarchitecture

Goals Design the first HDL for 1)Approximate Hw Design 2)Approximate Hw Reuse 3)Approximate Synthesis Criteria Approximate HDL shall be 1)High-level 2)Automated 3)Backward compatible 4

Safety in Hardware 5 Controller Datapath Clock Precise Approximate Precise

Axilog Annotations 6 Design Annotations relax (relax_local) restrict (restrict_global) Reuse Annotations approximate bridgecritical

Design Annotations 7

Relaxing Accuracy Requirements 8 module ripple_carry_adder(a, b, c_in, c_out, s) … full_adder f0(a[0], b[0], c_in, w0, s[0]) full_adder f1(a[1], b[1], w0, c_out, s[1]) relax (s); …

Relaxing Accuracy Requirements 9 module ripple_carry_adder(a, b, c_in, c_out, s) … full_adder f0(a[0], b[0], c_in, w0, s[0]) full_adder f1(a[1], b[1], w0, c_out, s[1]) relax (s); …

Scoping Approximation (relax_local) 10 module full_adder (a, b, c_in, c_out, s) … relax_local (s); … full_adder f0 (…) full_adder f1(…) relax (s[0]); …

Scoping Approximation (relax_local) 11 module full_adder (a, b, c_in, c_out, s) … relax_local (s); … full_adder f0 (…) full_adder f1(…) relax (s[0]); …

Restricting Approximation 12

Restricting Approximation 13

Restricting Approximation 14

Restricting Approximation Globally 15 module full_adder(a, b, c_in, c_out, s); … approximate output s; relax (s); … endmodule … restrict_global(s[31:0]);

Restricting Approximation Globally 16 module full_adder(a, b, c_in, c_out, s); … approximate output s; relax (s); … endmodule … restrict_global(s[31:0]);

Reuse Annotations 17

Outputs Carrying Approximate Semantics 18

Critical Inputs 19 … critical input reset; critical input clock; … Next State Logic State Register reset clock Output Logic

Bridging Approximate Wires to Critical Inputs 20 … and a1(s, a0, a1); relax (s); bridge (s); multiplexer m0(s, a0, a1, out); …

Bridging Approximate Wires to Critical Inputs 21 … and a1(s, a0, a1); relax (s); bridge (s); multiplexer m0(s, a0, a1, out); …

Baseline Synthesis Flow Highest frequency with minimum power and area 22

Relaxability Inference Analysis Identify the wires which are driving unannotated wires or annotated with restrict within the module under analysis 23 Marks any wire that affects a globally restricted wire as precise Identify the relaxed outputs of the instantiated submodules Safe to approximate gates Circuit under analysis with Axilog annotations

Approximate Synthesis Flow 24 Axilog Code Axilog Compiler Safe to Approximate Gates

Measurements Tools for Synthesis and Energy Analysis Synopsys Design Compiler Synopsys Primetime Timing Simulation with SDF back annotations Cadence NC-Verilog Standard Cell Library TSMC 45-nm multi-Vt Slowest PVT corner (SS, 0.81V, 0C) for baseline results 25

FIR # lines: 113 Signal Processing # Annotations Design: 6 Reuse: 5 InverseK # lines: 22,407 Robotics # Annotations Design: 8 Reuse: 4 ForwardK # lines: 18,282 Robotics # Annotations Design: 5 Reuse: 4 K-means # lines: 10,985 Machine Learning # Annotations Design: 7 Reuse: 3 Brent-Kung # lines: 352 Arithmetic Computation # Annotations Design: 1 Reuse: 1 26 Benchmarks Arithmetic Computation, Signal Processing, Robotics, Machine Learning, Image Processing Kogge-Stone # lines: 353 Arithmetic Computation # Annotations Design: 1 Reuse: 1 Wallace Tree # lines: 13,928 Arithmetic Computation # Annotations Design: 5 Reuse: 3 Neural Network # lines: 21,053 Machine Learning # Annotations Design: 4 Reuse: 3 Sobel # lines: 143 Image Processing # Annotations Design: 6 Reuse: 3

Energy Reduction Error ≤ 10% Error ≤ 5% 27

Area Reduction Error ≤ 10% Error ≤ 5% 28

10% Quality loss is nearly indiscernible to the eye Yet provides 57% energy savings 0% Quality Loss 5% Quality Loss 10% Quality Loss Output Quality Degradation in Sobel 29

Energy Reduction for Different PVT Corners 30 (SS, 0.81V, 125°C) (SS, 0.81V, 0°C)

Axilog 54% Energy Savings 1.9× Area Reduction 2-12 Code Annotations 31 First HDL for Approximation Design Reuse Automation High-level Backward-compatibility