P11 P12 P13 P14

16

Transcript of P11 P12 P13 P14

Page 1: P11 P12 P13 P14
Page 2: P11 P12 P13 P14

Pulse 1 Pulse 2 Pulse 3 Pulse 4

Pulse 5

Pulse 6

Pulse 7

a11a12a13a14

a21a22a23a24

a31a32a33a34

a41a42a43a44

c11c12c13c14

c21c22c23c24

c31c32c33c34

c41c42c43c44

b44

b43

b42

b41

b34

b33

b32

b31

b24

b23

b22

b21

b14

b13

b12

b11

d44

d43

d42

d41

d34

d33

d32

d31

d24

d23

d22

d21

d14

d13

d12

d11

P11 P12 P13 P14

P21 P22 P23 P24

P31 P32 P33 P34

P41 P42 P43 P44

Page 3: P11 P12 P13 P14
Page 4: P11 P12 P13 P14
Page 5: P11 P12 P13 P14
Page 6: P11 P12 P13 P14
Page 7: P11 P12 P13 P14

ORDINARY GEUNIT

n x n+1n x n+1RANDOMIZATION

UNIT

BACKSUBSTITUTION

UNIT

n x n+1 n

Page 8: P11 P12 P13 P14

11

1-1

11

1-1

1

1

11

i

-1-i

1

+

+

+

+

+

+

+

+

*

*

*

*

x1

x2

x3

x4

X1

X2

X3

X4

d1

d3

d2

d4

a11 a12 a13 a14

a21 a22 a23 a24

a31 a32 a33 a34

a41 a42 a43 a44

b1

b2

b3

b4

u11 u12 u13 u14 y1

l21 u22 u23 u24 y2

l31 l32 u33 u34 y3

l41 l42 l43 y4u44

1

+

+

+

+

+

+

+

+

*

*

*

*

d1

d2

d3

d4

a11 a12 a13 a14 b1

a41 a42 a43 a44 b4

a21 a22 a23 a24 b2

b3 a34

a33 a32

a31

x1

x2

x3

x4

Page 9: P11 P12 P13 P14

Matrix Algorithm

3D-matrix Format

Applying array computational rules

Mapping symbolic statements to 3D-dependency graph

Removing bidirectional flows from FPG

Grouping MMG by a rectangular prism along the three axes

Multimeshdata-dependency

graph(MMG)

Systolic computational graphs

1

2

3

4

Symbolically executing the algorithm

Symbolic statements

5

Manually done

Fully automated

Orthogonaldata-dependency

graph(ODG)

Page 10: P11 P12 P13 P14
Page 11: P11 P12 P13 P14
Page 12: P11 P12 P13 P14

for k := 1 to 3 do begin for j := k to 4 do U[k,j,k] := A[k,j,k-1]; for i := k+1 to 3 do L[i,k,k] := A[i,k,k-1]/U[k,k,k]; for i := k+1 to 3 do for j := k+1 to 4 do A[i,j,k] := A[i,j,k-1] - L[i,k,k]*U[k,j,k]; end

2.

3.

a) Ordinary GE code after instantiating n to 3

b) Symbolic statements generated after 1st, 2nd and 3rd iterations

k = 3

U[3,3,3] := A[3,3,2]1.(19)

k = 2

U[2,3,2] := A[2,3,1]U[2,2,2] := A[2,2,1]

1.

L[3,2,2] := A[3,2,1] / U[2,2,2]2.

A[3,3,2] := A[3,3,1] - L[3,2,2]*U[2,3,2]3.

(10)(11)(12)

(13)

k = 1

L[2,1,1] := A[2,1,0] / U[1,1,1]L[3,1,1] := A[3,1,0] / U[1,1,1]

A[2,2,1] := A[2,2,0] - L[2,1,1]*U[1,2,1]A[2,3,1] := A[2,3,0] - L[2,1,1]*U[1,3,1]

A[3,2,1] := A[3,2,0] - L[3,1,1]*U[1,2,1]A[3,3,1] := A[3,3,0] - L[3,1,1]*U[1,3,1]

1.

2.

3.

(1)(2)(3)(4)

(5)(6)

(7)(8)(9)

c) Orthogonal data-dependency graph

x

y

z1 2 3

6

8

11

13 14

16 17

19

A11

A21

A31

A12

A22

A32

A13

A23

A33

5 7

10

broadcast pathscrossing nodes

1.

A[3,4,1] := A[3,4,0] - L[3,1,1]*U[1,4,1]

A[2,4,1] := A[2,1,0] - L[2,1,1]*U[1,4,1]

U[1,1,1] := A[1,1,0]U[1,2,1] := A[1,2,0]U[1,3,1] := A[1,3,0]U[1,4,1] := A[1,3,0]

U[2,4,2] := A[2,4,1]U[3,3,3] := A[3,4,2]

A[3,4,2] := A[3,4,1] - L[3,2,2]*U[2,4,2]

(14)(15)

(16)

(17)

(20)

(18)

18

A14

A24

A34

4

9

12

15

20

Page 13: P11 P12 P13 P14

for k := 1 to 3 do begin j := n-k+1 T[j,4,k] := T[j,4,k-1]/T[j,j,0] for i := j-1 downto 1 do begin T[i,4,k] := T[i,4,k-1] - T[i,j,0]*T[j,4,k] end end

(a) Back substitution after instantiating n to 3

x

y

z

1

2

3

T11 T12

T22

T13

T23

T33

T14

T24

T34

4

crossing node

5

6

T[3,4,1] := T[3,4,0]/T[3,3,0]T[2,4,1] := T[2,4,0] - T[2,3,0]*T[3,4,1]T[1,4,1] := T[1,4,0] - T[1,3,0]*T[3,4,1]

(1)(2)(3)

T[2,4,2] := T[2,4,1]/T[2,2,0]T[1,4,2] := T[1,4,1] - T[1,2,0]*T[2,4,2]

(4)(5)

T[1,4,3] := T[1,4,2]/T[1,1,0](6)

k=1 k=2 k=3

(b) Symbolic statements generated after 1st, 2nd, and 3rd iterations

(c) Orthogonal Data-Dependency Graph

Page 14: P11 P12 P13 P14

M1

M2

M3

M4

M5

M6

M7

M8

M9

M10

M11

M12

M1

M2 M3

M4 M5 M6

Page 15: P11 P12 P13 P14

M1 M2 M3 M4

M5 M6 M7

M8 M9

Page 16: P11 P12 P13 P14