28
CALTECH CS137 Spring2002 -- DeH on CS137: Electronic Design Automation Day 5: April 15, 2002 Systolic Algorithms

CS137: Electronic Design Automation

  • Upload
    alda

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

CS137: Electronic Design Automation. Day 5: April 15, 2002 Systolic Algorithms. Today. Systolic Style Systolic Algorithms and Structures Filters Matching Matrix Multiply and Transitive Closure Dynamic Programming Priority Queue Decomposition. Systolic. - PowerPoint PPT Presentation

Citation preview

Page 1: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

CS137:Electronic Design Automation

Day 5: April 15, 2002

Systolic Algorithms

Page 2: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Today

• Systolic Style• Systolic Algorithms and Structures

– Filters– Matching– Matrix Multiply and Transitive Closure– Dynamic Programming– Priority Queue

• Decomposition

Page 3: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 4: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 5: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 6: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 7: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Simple String Matching

• Stream text past set of matches

=c1?

&

=c2?

&

=c3?

&

Page 8: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Matrix Multiply

• C = B * A

• C[I,j]=k A[i,k]*B[k,j]

• NxN matrix

• Takes N3 multiplications

Page 9: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Systolic Matrix Multiply

• Time N with N2 cells

Page 10: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 11: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Transitive Closure

• Same basic shape

• C[I,j]=a[I,j]+ORk (a[i,k]&a[k,j])

• Replace – Sum with OR– Multiply with AND

Page 12: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Dynamic Programming

• Two Examples– SPLASH sequence matching/edit

distances• O(N2) operation in O(N) time with O(N)

hardware

– CMU parenthesis matching• O(N3) operation in O(N) time with O(N2)

hardware

Page 13: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Sequence Matching

• Find edit distance between two strings– E.g.

• Insert cost 1• Delete cost 1• Replace cost 2• Match 0

Page 14: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 15: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Dynamic Programming

• Build a table representing string prefixes

• Fill in costs

Page 16: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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)

Page 17: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Edit Distance Table

Page 18: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Systolic Array

• Feed Strings from opposite ends

• Compute along diagonals

Page 19: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- 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

Page 20: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

In Operation

Page 21: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

In Operation (Cont.)

Page 22: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

In Operation (Cont.)

[inconsistency here]

Page 23: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

In Operation (Cont.)

Page 24: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Edit Distance Table

Page 25: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Parenthesis Matching

• Similar• But compute from all

breaks across a diagonal– Not just nearest

neighbor

• Hence extra O(N)

Page 26: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Priority Queue

• Insert top

• Extract Largest

• W/ O(N) cells

• O(1) Extract

Page 27: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Priority Queue Cell

• If (Cin=insert)

Alocallargest

Boutsmallest• If (Cin=extract)

AlocalAin

BoutBin• CoutCin

Page 28: CS137: Electronic Design Automation

CALTECH CS137 Spring2002 -- DeHon

Decomposition