tiling for dynamic scheduling - impact...

50
Tiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA, Indian Institue of Science January 20, 2014 Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 1 / 25

Upload: others

Post on 17-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Tiling for Dynamic Scheduling

Ravi Teja MullapudiUday Bondhugula

CSA, Indian Institue of Science

January 20, 2014

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 1 / 25

Page 2: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Table of Contents

1 TilingIntroductionValidity

2 LimitationsWhere do current approaches fail?

3 DirectionsLocalizing DependencesIterative TilingApproximate Cycle Check

4 Applications

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 2 / 25

Page 3: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Table of Contents

1 TilingIntroductionValidity

2 LimitationsWhere do current approaches fail?

3 DirectionsLocalizing DependencesIterative TilingApproximate Cycle Check

4 Applications

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 3 / 25

Page 4: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Tiling

Definition (Computation Graph)

A directed acyclic graph in which the nodes represent operations andedges denote dependences between operations

Definition (Tiling)

Partitioning a computation graph into atomic units of execution

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 4 / 25

Page 5: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Iteration spaces, Dependences and Hyperplanes

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

A[j] = A[j] + B[i]; s1if (i == j)

B[i+1] = A[j]; s2}

}

Iteration spaces

Ds ={

~is

~is ∈ Zn,A~is + b ≥ 0

}

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 5 / 25

Page 6: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Iteration spaces, Dependences and Hyperplanes

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

A[j] = A[j] + B[i]; s1if (i == j)

B[i+1] = A[j]; s2}

}

Dependences

Pe ={

〈~is , ~it〉∣

~is ∈ Ds , ~it ∈ Dt , ~is = he(~it), e : s → t}

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 5 / 25

Page 7: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Iteration spaces, Dependences and Hyperplanes

φ1

φ2

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

A[j] = A[j] + B[i]; s1if (i == j)

B[i+1] = A[j]; s2}

}

Hyperplanes

φs(~is) = ~h· ~is + h0

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 5 / 25

Page 8: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Iteration spaces, Dependences and Hyperplanes

φ1

φ2

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

A[j] = A[j] + B[i]; s1if (i == j)

B[i+1] = A[j]; s2}

}

Hyperplanes

φs(~is) = ~h· ~is + h0

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 5 / 25

Page 9: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Validity Conditions

φ1

φ2

i

j

φ1

φ2

i

j

Non-Negative Dependence Components

φt(~it)− φs(~is) ≥ 0 , 〈~is , ~it〉 ∈ Pe , e : s → t (HD ≥ 0)

Irigoin and Triolet, Lim and Lam, Griebl, Pluto

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 6 / 25

Page 10: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Validity Conditions

φ1

φ2

i

j

φ1

φ2

i

j

Lexicographically Non-Negative Tile Dependences

⌊HD⌋ < ~0

Xue

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 6 / 25

Page 11: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Table of Contents

1 TilingIntroductionValidity

2 LimitationsWhere do current approaches fail?

3 DirectionsLocalizing DependencesIterative TilingApproximate Cycle Check

4 Applications

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 7 / 25

Page 12: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Conservative Validity Conditions

φ1

φ2

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

A[j] = A[j] + B[i]; s1if (i == j)

B[i+1] = A[j]; s2}

}

Negative dependence components along φ2 but tiling is valid

Inter-tile dependences lexicographically negative

Tile sizes effect validity

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 8 / 25

Page 13: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Conservative Validity Conditions

φ1

φ2

i

j

(0, 0)

(0, 1)

(0, 2)

(1, 0)

(1, 1)

(1, 2)

(2, 0)

(2, 1)

(2, 2)

Negative dependence components along φ2 but tiling is valid

Inter-tile dependences lexicographically negative

Tile sizes effect validity

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 8 / 25

Page 14: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Conservative Validity Conditions

φ1

φ2

i

j

(0, 0)

(0, 1)

(0, 2)

(1, 0)

(1, 1)

(1, 2)

(2, 0)

(2, 1)

(2, 2)

Negative dependence components along φ2 but tiling is valid

Inter-tile dependences lexicographically negative

Tile sizes effect validity

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 8 / 25

Page 15: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Conservative Validity Conditions

φ1

φ2

i

j

φ1

φ2

i

j

Negative dependence components along φ2 but tiling is valid

Inter-tile dependences lexicographically negative

Tile sizes effect validity

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 8 / 25

Page 16: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Uniformly Tiling Iteration Spaces

φ1

φ2

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

if (j > i)

A[j] = A[j] + A[i]; s1if (j < i)

A[j] = A[j] + A[i]; s2}

}

Tile dependence graph has cycles

Splitting breaks cycles

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 9 / 25

Page 17: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Uniformly Tiling Iteration Spaces

φ1

φ2

i

j

for (i = 0; i < N; i++){

for ( j = 0; j < N; j++) {

if (j > i)

A[j] = A[j] + A[i]; s1if (j < i)

A[j] = A[j] + A[i]; s2}

}

Tile dependence graph has cycles

Splitting breaks cycles

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 9 / 25

Page 18: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Uniformly Tiling Iteration Spaces

φ1

φ2

i

j

(0, 0)

(0, 1)

(0, 2)

(1, 0)

(1, 1)

(1, 2)

(2, 0)

(2, 1)

(2, 2)

(0, 0)

(1, 1)

(2, 2)

Tile dependence graph has cycles

Splitting breaks cycles

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 9 / 25

Page 19: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Dynamic Scheduling

(0, 0)

(0, 1)

(0, 2)

(1, 0)

(1, 1)

(1, 2)

(2, 0)

(2, 1)

(2, 2)

(0, 0)

(0, 1)

(0, 2)

(1, 0)

(1, 1)

(1, 2)

(2, 0)

(2, 1)

(2, 2)

(0, 0)

(1, 1)

(2, 2)

Not easy to come up with a static schedule for the tiles

Dynamic task scheduler

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 10 / 25

Page 20: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Table of Contents

1 TilingIntroductionValidity

2 LimitationsWhere do current approaches fail?

3 DirectionsLocalizing DependencesIterative TilingApproximate Cycle Check

4 Applications

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 11 / 25

Page 21: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

General Validity Condition

Definition (Valid Tiling)

A set of hyperplanes φ1, φ2, . . . , φk with tile size τi for φi , is a valid tiling

of an iteration space if the dependence graph of k-dimensional tiles formedby the hyperplanes with their respective tile sizes is cycle-free.

Transitive closure of dependence relations

Precise computation might be infeasibleExpensive operation even for an approximation

Conservative cycle detection

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 12 / 25

Page 22: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Theorem

{φ1, . . . , φk} with tile size τi for φi is a valid tiling of an iteration space, if

{φ1, . . . , φk−1} is a valid tiling and φk is a valid one-dimensional tiling of

each k − 1 dimensional tile formed by {φ1, . . . , φk−1}.

φ1

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 13 / 25

Page 23: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Theorem

{φ1, . . . , φk} with tile size τi for φi is a valid tiling of an iteration space, if

{φ1, . . . , φk−1} is a valid tiling and φk is a valid one-dimensional tiling of

each k − 1 dimensional tile formed by {φ1, . . . , φk−1}.

φ1

φ2

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 13 / 25

Page 24: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Theorem

{φ1, . . . , φk} with tile size τi for φi is a valid tiling of an iteration space, if

{φ1, . . . , φk−1} is a valid tiling and φk is a valid one-dimensional tiling of

each k − 1 dimensional tile formed by {φ1, . . . , φk−1}.

φ1

φ2

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 13 / 25

Page 25: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Theorem

{φ1, . . . , φk} with tile size τi for φi is a valid tiling of an iteration space, if

{φ1, . . . , φk−1} is a valid tiling and φk is a valid one-dimensional tiling of

each k − 1 dimensional tile formed by {φ1, . . . , φk−1}.

φ1

φ2

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 13 / 25

Page 26: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Theorem

{φ1, . . . , φk} with tile size τi for φi is a valid tiling of an iteration space, if

{φ1, . . . , φk−1} is a valid tiling and φk is a valid one-dimensional tiling of

each k − 1 dimensional tile formed by {φ1, . . . , φk−1}.

φ1

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 13 / 25

Page 27: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Dependences in the transformed space

{

〈〈T 1s , . . . ,T

ks , ~is〉, 〈T

1t , . . . ,T

kt , ~it〉〉 | 〈~is , ~it〉 ∈ Pe , e : s → t,

1 ≤ l ≤ k , τl ∗ Tls ≤ φl

s(~is) ≤ τl ∗ (Tls + 1)− 1,

τl ∗ Tlt ≤ φl

t(~it) ≤ τi ∗ (Tlt + 1)− 1

}

Inter-Tile Dependences

Pe denotes the inter-tile dependence polyhedron between k-dimensionaltiles formed by 〈φ1, . . . , φk〉 due to the depedence edge e.

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 14 / 25

Page 28: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Dependences in the transformed space

{

〈〈T 1s , . . . ,T

ks , ~is〉, 〈T

1t , . . . ,T

kt , ~it〉〉 | 〈~is , ~it〉 ∈ Pe , e : s → t,

1 ≤ l ≤ k , τl ∗ Tls ≤ φl

s(~is) ≤ τl ∗ (Tls + 1)− 1,

τl ∗ Tlt ≤ φl

t(~it) ≤ τi ∗ (Tlt + 1)− 1

}

Inter-Tile Dependences

Pe denotes the inter-tile dependence polyhedron between k-dimensionaltiles formed by 〈φ1, . . . , φk〉 due to the depedence edge e.

Computed by projecting out dimensions inner to the tiling dimensionφk (for both source and target statements)

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 14 / 25

Page 29: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Restricted Tile Dependence

Qke is a subset of Pk

e restricted to the same k − 1 dimensional tile definedby the k − 1 tiling hyperplanes outer to φk .

φ1

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 15 / 25

Page 30: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Restricted Tile Dependence

Qke is a subset of Pk

e restricted to the same k − 1 dimensional tile definedby the k − 1 tiling hyperplanes outer to φk .

φ1

φ2

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 15 / 25

Page 31: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Localizing Dependences

Restricted Tile Dependence

Qke is a subset of Pk

e restricted to the same k − 1 dimensional tile definedby the k − 1 tiling hyperplanes outer to φk .

Qke thus captures dependences between only those k-dimensional tiles

which are in the same k−1 dimensional tile formed by 〈φ1, . . . , φk−1〉

If e is from statement s to statement t, then:

Qke = Pk

e ∧

1≤l≤k−1

T ls = T l

t

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 15 / 25

Page 32: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Improved Iterative Tiling

φ1

φ2

i

j

1 while τk > 1 do

// 1. Check validity of tiling at level k.

for each e ∈ E do

Compute Qke for dependence e : s → t.

// C is the set of tiles that might be in acycle

C = CycleCheck(Qke for each edge e ∈ E )

if C = ∅ then

// Tiling is valid, move to next levelbreak

// 2. Attempt to correct tiling

τk = ⌊τk/2⌋

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 16 / 25

Page 33: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Improved Iterative Tiling

φ1

i

j

1 while τk > 1 do

// 1. Check validity of tiling at level k.

for each e ∈ E do

Compute Qke for dependence e : s → t.

// C is the set of tiles that might be in acycle

C = CycleCheck(Qke for each edge e ∈ E )

if C = ∅ then

// Tiling is valid, move to next levelbreak

// 2. Attempt to correct tiling

τk = ⌊τk/2⌋

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 16 / 25

Page 34: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Improved Iterative Tiling

φ1

i

j

1 while τk > 1 do

// 1. Check validity of tiling at level k.

for each e ∈ E do

Compute Qke for dependence e : s → t.

// C is the set of tiles that might be in acycle

C = CycleCheck(Qke for each edge e ∈ E )

if C = ∅ then

// Tiling is valid, move to next levelbreak

// 2. Attempt to correct tiling

τk = ⌊τk/2⌋

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 16 / 25

Page 35: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Improved Iterative Tiling

φ1

φ2

i

j

1 while τk > 1 do

// 1. Check validity of tiling at level k.

for each e ∈ E do

Compute Qke for dependence e : s → t.

// C is the set of tiles that might be in acycle

C = CycleCheck(Qke for each edge e ∈ E )

if C = ∅ then

// Tiling is valid, move to next levelbreak

// 2. Attempt to correct tiling

τk = ⌊τk/2⌋

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 16 / 25

Page 36: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Improved Iterative Tiling

φ1

φ2

i

j

1 while τk > 1 do

// 1. Check validity of tiling at level k.

for each e ∈ E do

Compute Qke for dependence e : s → t.

// C is the set of tiles that might be in acycle

C = CycleCheck(Qke for each edge e ∈ E )

if C = ∅ then

// Tiling is valid, move to next levelbreak

// 2. Attempt to correct tiling

τk = ⌊τk/2⌋

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 16 / 25

Page 37: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Approximate Cycle Check

Dependences On a Line

Each hyperplane φk gives a one-dimensional coordinate for a tile whichcan be used to map a tile to a point on a line.

φk

pForward face

Backward face

Forward Dependences

Backward Dependences

When are there no cycles?

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 17 / 25

Page 38: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Approximate Cycle Check

Dependences On a Line

Each hyperplane φk gives a one-dimensional coordinate for a tile whichcan be used to map a tile to a point on a line.

φk

pForward face

Backward face

Forward Dependences

Backward Dependences

When are there no cycles?

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 17 / 25

Page 39: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Approximate Cycle Check

Dependences On a Line

Each hyperplane φk gives a one-dimensional coordinate for a tile whichcan be used to map a tile to a point on a line.

φk

pForward face

Backward face

Forward Dependences

Backward Dependences

When are there no cycles?

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 17 / 25

Page 40: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Approximate Cycle Check

pForward face

Backward face

Backward Violation

Bke,e′ =

{

〈T 1s , . . . ,T

ks 〉 | ∃T

lt , ∃T

ls′ , ∃T

lt′ , (T

ks ≥ T k

t + 1) ∧

(T ks′ ≤ T k

t′ − 1) ∧1≤l≤k (Tlt′ = T l

s ) ∧

〈〈T 1s , . . . ,T

ks 〉, 〈T

1t , . . . ,T

kt 〉〉 ∈ Qk

e , e : s → t

〈〈T 1s′ , . . . ,T

ks′〉, 〈T

1t′ , . . . ,T

kt′〉〉 ∈ Qk

e′ , e′ : s ′ → t ′

}

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 18 / 25

Page 41: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Approximate Cycle Check

pForward face

Backward face

Forward Violation

F ke,e′ =

{

〈T 1s , . . . ,T

ks 〉 | ∃T

lt , ∃T

ls′ , ∃T

lt′ , (T

ks ≤ T k

t − 1) ∧

(T ks′ ≥ T k

t′ + 1) ∧1≤l≤k (Tlt′ = T l

s ) ∧

〈〈T 1s , . . . ,T

ks 〉, 〈T

1t , . . . ,T

kt 〉〉 ∈ Qk

e , e : s → t

〈〈T 1s′ , . . . ,T

ks′〉, 〈T

1t′ , . . . ,T

kt′〉〉 ∈ Qk

e′ , e′ : s ′ → t ′

}

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 18 / 25

Page 42: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Approximate Cycle Check

Input : Tile dependence polyhedra at level k Qke for all e ∈ E the set of edges in

the GDG.Output: Set of tiles that might be part of a cycle// Bk set of tiles that satisfy B at level k .

// F k set of tiles that satisfy F at level k .

Bk = ∅,F k = ∅

for each pair 〈Qke ,Q

ke′〉 e, e

′ ∈ E // e can be equal to e′

do

Compute Bke,e′ , F

ke,e′ using Qk

e and Qke′

Bk = Bke,e′ ∪ Bk

F k = F ke,e′ ∪ F k

return Bk ∪ F k

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 19 / 25

Page 43: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Table of Contents

1 TilingIntroductionValidity

2 LimitationsWhere do current approaches fail?

3 DirectionsLocalizing DependencesIterative TilingApproximate Cycle Check

4 Applications

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 20 / 25

Page 44: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Floyd-Warshall All Pairs Shortest Paths

φ1

φ2

k

i

Using additional arrays R and C to remove false dependences in theAll-Pairs Shortest-Paths kernel

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 21 / 25

Page 45: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Floyd-Warshall All Pairs Shortest Paths

φ1

φ2

k

i

All-Pairs Shortest-Paths kernel after removing spurious writes

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 21 / 25

Page 46: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Zuker’s RNA Secondary Structure Prediction

for (i = N-1; i >= 0; i--) {

for (j = i+1; j < N; j++) {

for (k = 0; k < j-i; k++) {

S[i][j] = MAX(S[i][k+i] + S[k+i+1][j], S[i][j]);

}

S[i][j] = MAX(S[i][j], S[i+1][j-1] +

can_pair(RNA[i],RNA[j]));

}

}

Complex dynamic programming recurrence

3-d tiling the O(n3) loop nest

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 22 / 25

Page 47: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Zuker’s RNA Secondary Structure Prediction

for (i = 0; i < N; i++){

for ( j = 0; j < i+1; j++) {

A[i] = A[i] + A[i-j]; s1}

}

φ1

φ2

i

j

Merging tiles

Use commutative properties

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 22 / 25

Page 48: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Experimental Evalutation

0

10

20

30

40

50

60

70

1 2 4 8 16 32

Spe

edup

ove

r se

q

Number of threads

CnC 2d tiledCnC 3d tiled

(a) floyd – seq time is 231s

0

2

4

6

8

10

12

14

16

18

1 2 4 8 16 32

Spe

edup

ove

r si

ngle

thre

ad

Number of threads

GTfoldCnC 3d tiled

(b) zuker – single thread time is 253s

Experimental setup is a four socket machine with an AMD Opteron6136 (2.4 GHz, 128 KB L1, 512 KB L2, 6 MB L3 cache) in eachsocket.

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 23 / 25

Page 49: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Conclusions and Future Work

Using improved validity constraints for hyperplane search

Integrating splitting techniques

More accurate cycle detection

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 24 / 25

Page 50: Tiling for Dynamic Scheduling - IMPACT Workshopimpact.gforge.inria.fr/.../impact2014-mullapudi-slides.pdfTiling for Dynamic Scheduling Ravi Teja Mullapudi Uday Bondhugula CSA,IndianInstitueofScience

Questions?

Thank You!

Ravi Teja M (IISc) Tiling for Dynamic Scheduling January 20, 2014 25 / 25