CALTECH CS137 Spring2002 -- DeHon CS137: Electronic Design Automation Day 5: April 15, 2002 Systolic Algorithms Andre' DeHon.

Slides:



Advertisements
Similar presentations
Excel 2007 ® Business and Personal Finances How can Excel 2007 help you create data and content in a worksheet?
Advertisements

Systolic Arrays & Their Applications
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
EECC756 - Shaaban #1 lec # 1 Spring Systolic Architectures Replace single processor with an array of regular processing elements Orchestrate.
Dynamic Programming Nithya Tarek. Dynamic Programming Dynamic programming solves problems by combining the solutions to sub problems. Paradigms: Divide.
Binary Trees CSC 220. Your Observations (so far data structures) Array –Unordered Add, delete, search –Ordered Linked List –??
Chapter 7 Working with Distortions, Gradient Meshes, Envelopes, and Blends.
How the edges of a line, paragraph, object, or table are positioned horizontally and vertically between the margins or on a page.
© 2011 Delmar, Cengage Learning Chapter 7 Working with Distortions, Gradient Meshes, Envelopes, and Blends.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU Why Systolic Architecture ? VLSI Signal Processing 台灣大學電機系 吳安宇.
Examples of Two- Dimensional Systolic Arrays. Obvious Matrix Multiply Rows of a distributed to each PE in row. Columns of b distributed to each PE in.
Introduction to Bioinformatics Algorithms Dynamic Programming: Edit Distance.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day10: October 25, 2000 Computing Elements 2: Cascades, ALUs,
Introduction to Fast Fourier Transform (FFT) Algorithms R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2003.
(Page 554 – 564) Ping Perez CS 147 Summer 2001 Alternative Parallel Architectures  Dataflow  Systolic arrays  Neural networks.
By Makinen, Navarro and Ukkonen. Abstract Let A and B be two run-length encoded strings of encoded lengths m’ and n’, respectively. we will show an O(m’n+n’m)
Synthesizable, Space and Time Efficient Algorithms for String Editing Problem. Vamsi K. Kundeti.
UNIVERSITY OF SOUTH CAROLINA College of Engineering & Information Technology Bioinformatics Algorithms and Data Structures Chapter 11: Core String Edits.
Lecture 8: Dynamic Programming Shang-Hua Teng. First Example: n choose k Many combinatorial problems require the calculation of the binomial coefficient.
Class 2: Basic Sequence Alignment
1 Theory I Algorithm Design and Analysis (11 - Edit distance and approximate string matching) Prof. Dr. Th. Ottmann.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 February 8, 2005 Session 8.
CALTECH CS137 Winter DeHon 1 CS137: Electronic Design Automation Day 12: February 6, 2006 Sorting.
Chapter One Introduction to Pipelined Processors.
Spring 2010CS 2251 Trees Chapter 6. Spring 2010CS 2252 Chapter Objectives Learn to use a tree to represent a hierarchical organization of information.
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
CS 312: Algorithm Design & Analysis Lecture #23: Making Optimal Change with Dynamic Programming Slides by: Eric Ringger, with contributions from Mike Jones,
DATA STRUCTURE & ALGORITHMS (BCS 1223) NURUL HASLINDA NGAH SEMESTER /2014.
Lecture 16: Reconfigurable Computing Applications November 3, 2004 ECE 697F Reconfigurable Computing Lecture 16 Reconfigurable Computing Applications.
MA/CSSE 473 Day 28 Dynamic Programming Binomial Coefficients Warshall's algorithm Student questions?
Insert your own text Example text Go ahead and replace it with your own text. This is an example text. Insert your own picture in the box COMPUTER IMAGES.
Page :Algorithms in the Real World Computational Biology I – Introduction – LCS, Edit Distance.
1 Sequence Alignment Input: two sequences over the same alphabet Output: an alignment of the two sequences Example: u GCGCATGGATTGAGCGA u TGCGCCATTGATGACCA.
Melodic Similarity Presenter: Greg Eustace. Overview Defining melody Introduction to melodic similarity and its applications Choosing the level of representation.
Gene expression & Clustering. Determining gene function Sequence comparison tells us if a gene is similar to another gene, e.g., in a new species –Dynamic.
Data Structure II So Pak Yeung Outline Review  Array  Sorted Array  Linked List Binary Search Tree Heap Hash Table.
Computer Science Department Data Structures and Algorithms Queues Lecture 5.
A * Search A* (pronounced "A star") is a best first, graph search algorithm that finds the least-cost path from a given initial node to one goal node out.
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #12 – Systolic.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #13 – Other.
Fall 2008Simple Parallel Algorithms1. Fall 2008Simple Parallel Algorithms2 Scalar Product of Two Vectors Let a = (a 1, a 2, …, a n ); b = (b 1, b 2, …,
CALTECH CS137 Winter DeHon 1 CS137: Electronic Design Automation Day 10: February 1, 2006 Dynamic Programming.
CS38 Introduction to Algorithms Lecture 10 May 1, 2014.
CALTECH CS137 Spring DeHon CS137: Electronic Design Automation Day 13: May 20, 2002 Page Generation (Area and IO Constraints) [working problem with.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 21: April 4, 2012 Lossless Data Compression.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Review Lecture Tuesday, 12/11/01.
1 Design of an MIMD Multimicroprocessor for DSM A Board Which turns PC into a DSM Node Based on the RM Approach 1 The RM approach is essentially a write-through.
Data Structures David Kauchak cs302 Spring Data Structures What is a data structure? Way of storing data that facilitates particular operations.
Dynamic Programming (Edit Distance). Edit Distance Input: – Two input strings S1 (of size n) and S2 (of size m) E.g., S1 = ATTTCTAGTGGGTAAA S2 = ATCTAGTTTAGGGATA.
Fast VLSI Implementation of Sorting Algorithm for Standard Median Filters Hyeong-Seok Yu SungKyunKwan Univ. Dept. of ECE, Vada Lab.
Chapter 7 Continued Arrays & Strings. Arrays of Structures Arrays can contain structures as well as simple data types. Let’s look at an example of this,
TU/e Algorithms (2IL15) – Lecture 4 1 DYNAMIC PROGRAMMING II
VLSI SP Course 2001 台大電機吳安宇 1 Why Systolic Architecture ? H. T. Kung Carnegie-Mellon University.
CALTECH CS137 Winter DeHon 1 CS137: Electronic Design Automation Day 8: January 27, 2006 Cellular Placement.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
1 i206: Lecture 17: Exam 2 Prep ; Intro to Regular Expressions Marti Hearst Spring 2012.
All-pairs Shortest paths Transitive Closure
Pipelining and Retiming 1
Dynamic Programming Dynamic Programming is a general algorithm design technique for solving problems defined by recurrences with overlapping subproblems.
The Greedy Method and Text Compression
CS137: Electronic Design Automation
Dynamic Programming Computation of Edit Distance
The Longest Common Subsequence Problem
Webropol – Getting started 2
Data Structure and Algorithms
Comparing Images Using Hausdorff Distance
Bioinformatics Algorithms and Data Structures
CSE 589 Applied Algorithms Spring 1999
Presentation transcript:

CALTECH CS137 Spring DeHon CS137: Electronic Design Automation Day 5: April 15, 2002 Systolic Algorithms Andre' DeHon

CALTECH CS137 Spring DeHon Today Systolic Style Systolic Algorithms and Structures –Filters –Matching –Matrix Multiply and Transitive Closure –Dynamic Programming –Priority Queue Decomposition

CALTECH CS137 Spring DeHon Systolic Systole a rhythmically recurrent contraction; esp: the contraction of the heart by which the blood is forced onward and the circulation kept up --- Merriam Webster Systolic architectures are characterized by regular, rhythmic, data flow through numerous processing elements

CALTECH CS137 Spring DeHon Motivation Accelerate computationally bound problems For each data item read from memory –Use it multiple times –Perform many operations –Compute on intermediate results before discarding/writing back to memory

CALTECH CS137 Spring DeHon Philosophy Match VLSI Costs –Exploit concurrency –Wires take up space –Long wires take time –Minimize design effort Exploit regularity Scale with problem size and/or perf. requirements

CALTECH CS137 Spring DeHon Systolic Filter Finite-Impulse Response Filter –y[n]=w1*x[n]+w2*x[n-1]+w3*x[n-3]… –weighted sum of k previous samples

CALTECH CS137 Spring DeHon Simple String Matching Stream text past set of matches =c1? & =c2? & =c3? &

CALTECH CS137 Spring DeHon Matrix Multiply C = B * A C[I,j]=  k A[i,k]*B[k,j] NxN matrix Takes N 3 multiplications

CALTECH CS137 Spring DeHon Systolic Matrix Multiply Time N with N 2 cells

CALTECH CS137 Spring DeHon Matrix Multiply Cell CELL behavior If (reset) –Sum=0 Else –Sum+=Xin*Yin Xout=Xin Yout=Yin ;; plus output data Tag reset ahead of data row/column Tag end of data

CALTECH CS137 Spring DeHon Transitive Closure Same basic shape C[I,j]=a[I,j]+OR k (a[i,k]&a[k,j]) Replace –Sum with OR –Multiply with AND

CALTECH CS137 Spring DeHon Dynamic Programming Two Examples –SPLASH sequence matching/edit distances O(N 2 ) operation in O(N) time with O(N) hardware –CMU parenthesis matching O(N 3 ) operation in O(N) time with O(N 2 ) hardware

CALTECH CS137 Spring DeHon Sequence Matching Find edit distance between two strings –E.g. Insert cost 1 Delete cost 1 Replace cost 2 Match 0

CALTECH CS137 Spring DeHon Edit Example SHMOO –Add E (cost 1) SHMOOE –Remove M (cost 1 + 1=2) SHOOE –Replace O with R (cost 2+2=4) SHORE

CALTECH CS137 Spring DeHon Dynamic Programming Build a table representing string prefixes Fill in costs

CALTECH CS137 Spring DeHon Local Move Costs D(0,0) = 0 D(i,0)=D(i-1,0)+Delete(Si) D(0,j)=D(0,j-1)+Insert(Tj) D(i,j)=min –D(i-1,j)+Delete(Si) –D(i,j-1)+Insert(Tj) –D(i-1,j-1)+Replace(Si,Tj)

CALTECH CS137 Spring DeHon Edit Distance Table

CALTECH CS137 Spring DeHon Systolic Array Feed Strings from opposite ends Compute along diagonals

CALTECH CS137 Spring DeHon Systolic Array PEDist = min –PEDist + Cost(Substitute(TCin,SCin)) –TDin+Cost(Delete(SCin)) –SDin+Cost(Insert(TCin)) SDout=TDout=PEDist ….plus details for edge cases

CALTECH CS137 Spring DeHon In Operation

CALTECH CS137 Spring DeHon In Operation (Cont.)

CALTECH CS137 Spring DeHon In Operation (Cont.) [inconsistency here]

CALTECH CS137 Spring DeHon In Operation (Cont.)

CALTECH CS137 Spring DeHon Edit Distance Table

CALTECH CS137 Spring DeHon Parenthesis Matching Similar But compute from all breaks across a diagonal –Not just nearest neighbor Hence extra O(N)

CALTECH CS137 Spring DeHon Priority Queue Insert top Extract Largest W/ O(N) cells O(1) Extract

CALTECH CS137 Spring DeHon Priority Queue Cell If (Cin=insert) Alocal  largest Bout  smallest If (Cin=extract) Alocal  Ain Bout  Bin Cout  Cin

CALTECH CS137 Spring DeHon Decomposition