1 / 16

Practical Dependence Test

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

stian
Télécharger la présentation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Practical Dependence Test Gina Goff, Ken Kennedy, Chau-Wen Tseng PLDI ’91 presented by Chong Liang Ooi

  2. 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

  3. 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 10 A(5, i+1, j) = A(N, i, k) + c

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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)

  10. 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

  11. 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

  12. 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

  13. Coupled Subscripts – Delta Test Subscript-by-subscript test may yield false dep. Delta Test Algorithm

  14. 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>

  15. Intersecting Delta Test Constraints If the intersect of all constraints is empty set  no dependence

  16. The End Questions?

More Related