Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar...

27
Outline Introduction Representations and Definitions Algorithm Non Affine Fragments References Lazy Array Data-Flow Dependence Analysis Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay November 10, 2005 Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy Array Data-Flow Dependence Analysis

Transcript of Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar...

Page 1: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Lazy Array Data-Flow Dependence Analysis

Anil KumarBhaskar reddyNarasimham.MRanjith kumar

Computer Science and EngineeringIIT Bombay

November 10, 2005

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 2: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Outline

Introduction

Representation and Definitions

Algorithm for finding Value based dependencies

Non Affine fragment

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 3: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Introduction

Dependencies

There is a flow dependence from an array access A(I) to anarray access B(I’) iff

A is executed with iteration vector I,B is executed with iteration vector I’,A(I) writes to the same location as is read by B(I’),A(I) is executed before B(I’)there is no write to the location read by B(I’) between theexecution of A(I) and B(I’).

Memory based Vs Value based Dependencis

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 4: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

QUAST/LWT

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 5: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

QUAST Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 6: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Dependence Relation Representation

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 7: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Dependence Relation Representation

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 8: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Vectors And Statement Instances

statement instance : The smallest unit of computation.

Representation : W[w,s].

W: statement of the program

w : vector of loop variable values

s : symbolic constant

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 9: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Sequencing Predicate

W[w,s]� R[r,s] if and only ifw [1..n] � r [1..n] ∨ w [1..n] = r [1..n] ∧W � Rwhere n is the no.of common loops surrounding W,R

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 10: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Value based dependence definition And represention

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 11: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Algorithm for Value Based Dependence

Basic idea: To start searching for candidate writes inlexicographically close proximity of a read statement for whichdependence is being computed.

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 12: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Algorithm Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 13: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Algorithm Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 14: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Algorithm Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 15: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example for affine fragment

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 16: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example Contd...

The algorithm breaks a set of write statament instances into a sumof disjoint subsets ω2(r), ..., ωns(r) such that for any r such thatR[r] is executed.

ωns(r) � ... � ω2(r) � R(r)

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 17: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example Contd...

S1[rsr , pr , qr , ir ] | 1 ≤ rsr ≤ nrs ∧ 1 ≤ qr ≤ pr ≤ np ∧ 1 ≤ ir ≤ mb

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 18: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 19: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 20: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example Contd...

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 21: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Non Affine Fragments

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 22: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Non Affine Fragments

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 23: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Fixed and Unfixed Zones

Unfixed zone: Around statement S of depth d (denoted byUnfixed(S,d)) is a loop nest which consists of statementsbelonging to d innermost loops surrounding S.

Fixed zone: Statements not belonging to UnFixed(S,d)affect.

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 24: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 25: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Example

To expand the search space only if non covered read instancesremain.

Compute the Upper bound on iteration space

Computing the Lower and Upper bound on dependence

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 26: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

Conclusion

Computes exact value based(data-flow) dependences for affineprogram fragments

And good approximations of value based dependences for nonaffine program fragments

Independent of program size

Depends on how many writes reach the read and on howcomplicated the dependence relation is.

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis

Page 27: Lazy Array Data-Flow Dependence Analysiscs616/seminars/Lazy-Array-Dataflow... · Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay Lazy

OutlineIntroduction

Representations and DefinitionsAlgorithm

Non Affine FragmentsReferences

References

Vadim Maslov,Lazy Array Data-Flow DependenceAnalysis, Proceedings of the 21st ACM SIGPLAN-SIGACTsymposium on Principles of programming languages,p.311-325

Anil Kumar Bhaskar reddy Narasimham.M Ranjith kumar Computer Science and Engineering IIT Bombay

Lazy Array Data-Flow Dependence Analysis