Practical dependence test
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Practical Dependence Test PowerPoint PPT Presentation


  • 48 Views
  • Uploaded on
  • Presentation posted in: General

Practical Dependence Test. Gina Goff, Ken Kennedy, Chau-Wen Tseng PLDI ’91 presented by Chong Liang Ooi. Contribution. Efficient and precise dependence test is essential General tests (Banerjee and GCD) are unnecessary Most array refs in scientific Fortran program are simple

Download Presentation

Practical Dependence Test

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Practical dependence test

Practical Dependence Test

Gina Goff, Ken Kennedy, Chau-Wen Tseng

PLDI ’91

presented by

Chong Liang Ooi


Contribution

Contribution

Efficient and precise dependence test is essential

General tests (Banerjee and GCD) are unnecessary

Most array refs in scientific Fortran program are simple

Based on these simple cases, this paper proposed

Partition-Based Algorithm


Classification of subscripts

Classification of Subscripts

  • Complexity

    No of unique array indices a subscript has

    • ZIV– Zero Index Variable

    • SIV – Single Index Variable

    • MIV – Multiple Index Variable

      DO 10 i

      DO 10 j

      DO 10 k

      10A(5, i+1, j) = A(N, i, k) + c


Classification of subscripts1

Classification of Subscripts

2. Separability

Separable if indices do not occur in other subscript

Otherwise, coupled

A(i, j, j) = A(i, j, k) + c


Partition based algorithm

Partition-Based Algorithm

Partition subscripts separable & minimal coupled group

Label each subscript as ZIV, SIV or MIV

Apply Single Subscript Test based on complexity

Apply Multiple Subscript Test to coupled group

If any test yields independence, no dependence exist

Otherwise, merge all direction vectors into single set


Single subscript test ziv

Single Subscript Test – ZIV

ZIV takes 2 loop invariant expressions

Proves 2 expressions cannot be equal

Can be extended for symbolic expressions

If differences is non-zero constant  independence


Ss test strong siv

SS Test – Strong SIV

Ref pair of form: <ai+c1, ai’+c2> for a Є [1,10]

Dependence Distance, d = i’-i = (c1-c2)/a

Dependence exist, if |d| <= U - L

Dependence Direction =

< if d > 0

= if d = 0

> if d < 0

Exact & efficient

Extendable to Symbolic Expr

by eval d symbolically


Ss test weak zero siv

SS Test – Weak-Zero SIV

Ref pair of form: <a1i+c1, a2i’+c2> for a1 != a2

a1i+c1=a2i’+c2 is a line in 2D space of i vs i’

Check whether line intersect with any integer points

Weak-zero SIV

For a1=0 or a2=0

Let a2=0  i=(c2-c1 )/a1

Check iЄI and |i| < U - L


Ss test weak zero siv1

SS Test – Weak-Zero SIV

Usually, i=0 or last iteration

Loop peeling transformation can help

DO 10 i=1, N

10 Y(i, N)=Y(1,N)+Y(N,N)

Y(1,N)=Y(1,N)+Y(N,N)

DO 10 i=2, N-1

  • Y(i, N)=Y(1,N)+Y(N,N)

    Y(N,N)=Y(1,N)+Y(N,N)


Ss test weak crossing siv

SS Test – Weak-Crossing SIV

Weak-Crossing SIV

For a2 = -a1

Let i=i’  i=(c2-c1 )/2a1

Check |i| < U – L and iЄI or 1/2

Typically in Choleskey decomposition


Ss test weak crossing siv1

SS Test – Weak-Crossing SIV

Loop splitting transformation can help

DO 10 i=1, N

10 A(i)=A(N-i+1)+C

DO 10 i=1, (N+1)/2

10 A(i)=A(N-i+1)+C

DO 20 i=(N+1)/2+1, N

20 A(i)=A(N-i+1)+C


Ss test restricted double index var

SS Test – Restricted Double Index Var

Ref pair of form: <a1i+c1, a2j+c2>

SIV Tests can be used with 2 loop bounds for i & j


Coupled subscripts delta test

Coupled Subscripts – Delta Test

Subscript-by-subscript test may yield false dep.

Delta Test Algorithm


Delta test constraints

Delta Test Constraints

Assertions on indices derived from subscripts

<a1i+c1, a2i’+c2>  a1i - a2i’= c2 - c1

Constraint vector, C=(del1, del2, …)

one constraint for each index in the coupled group

Del can be

dependence line: <ax+by=c>

dependence distance: <d>

dependence point: <x,y>


Intersecting delta test constraints

Intersecting Delta Test Constraints

If the intersect of all constraints is empty set

 no dependence


The end

The End

Questions?


  • Login