University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price...

23
University of Colorado at Boulde Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani

Transcript of University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price...

Page 1: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research Lab

ZDDs for Dynamic Trace Analysis

Graham Price Manish Vachharajani

Page 2: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Motivation

• Tools can be useful

Representation take days to create!

• ParaMeter

Fabrel Studio

• Are they useable?

Page 3: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

DIN vs. Ready Time

li r1, &fibarr

mov r2, 8

mov r4, 1

mov r3, 1

add r5,r3,r4

st 0(r1),r5

mov r3,r4

mov r4,r5

addi r2,r2,-1

addi r1,r1,4

bnz r2, loop

add r5,r3,r4

st 0(r1),r5

mov r3,r4

0xbee0

0xbee4

Instruction Mem Addr

0

1

2

3

4

5

6

7

8

9

10

11

12

13

DIN

0

1

2

3

4

5

6

7

8

9

10

11

12

13

DIN Ready Time

0 1 2 3 4 5 6 7 8 9 10 11 12 13

0

1

2

3

12

4

6

8

9

5

7

10

13

11

Page 4: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Video

Details: Price, Giacomoni, and Vachharajani PACT 2008

Page 5: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction

fd0 = (0,0)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

DIN Ready Time

0 1 2 3 4 5 6 7 8 9 10 11 12 13

fd1 = (0,1)

fd2 = (0,2)

Page 6: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction

(X’ * Y’ * Z’ * W)

(X’ * Y’ * Z’ * W’)

ftrace = (X’ * Y’ * Z’ * W’) + (X’ * Y’ * Z’ * W) + (X’ * Y’ * Z * W’)

(0,0) (00,00)

(0,1) (00,01)

(X’ * Y’ * Z * W’)(0,2) (00,10)

Data Tuple Binary Tuple Boolean Function

{{X’ * Y’ * Z’ * W’}, {X’ * Y’ * Z’ * W}, {X’ * Y’ * Z’ * W}}

Page 7: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

The BDD Data StructureFalse ArcInvertingFalse ArcTrue Arc

F(X,Y,Z,W) = X*Y*Z*W

0

Y

W

Z

W

ZZ Z

0 00 00 00 0

Y

W

Z

W

ZZ Z

0 0 00 100

X

0

Page 8: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

The BDD Data StructureFalse ArcInvertingFalse ArcTrue Arc

F(X,Y,Z,W) = X*Y*Z*W

Y

W

Z

W

ZZ Z

Y

W

Z

W

ZZ Z

1

X

Z

0

Page 9: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

The BDD Data StructureFalse ArcInvertingFalse ArcTrue Arc

F(X,Y,Z,W) = X*Y*Z*W

Y

WW

Y

WW

Z

1

X

Z

0

W

Page 10: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

The BDD Data StructureFalse ArcInvertingFalse ArcTrue Arc

F(X,Y,Z,W) = X*Y*Z*W

Y Y

W

Z

1

X

Z

0

W

0

Page 11: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

The BDD Data StructureFalse ArcInvertingFalse ArcTrue Arc

F(X,Y,Z,W) = X*Y*Z*W

Y

W

Z

1

X

0 1

X

Y

W

Z

Page 12: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction

fd1 = (X’ * Y’ * Z’ * W)fd0 = (X’ * Y’ * Z’ * W’)

= +

ftrace = (X * Y * Z * W) + (X’ * Y’ * Z’ * W’)

1

X

Y

Z

1

X

Y

W

Z

1

X

Y

W

Z

Page 13: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction Cont..

Unique Table

fd1 = (X’ * Y’ * Z’ * W)

1

X

Y

W

Z

fd0 = (X’ * Y’ * Z’ * W’)

= +

ftrace = (X’ * Y’ * Z’ * W’) + (X’ * Y’ * Z’ * W)

1

X

Y

W

Z

ftrace = (X’ * Y’ * Z’ * W’)

11

Itrace = 0

1

X

Y

W

Z

1

X

Y

Z

Compute Cache

Dead Nodes

Page 14: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction Cont..

1

X

Y

W

Z= +

ftrace

1

X

Y

Z

1

X

Y

W

Z

fd3 = (X’ * Y’ * Z * W’)

Unique Table

Compute Cache

Dead Nodes

Page 15: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

BDD Garbage Collection Time

Page 16: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

ZDDsBDDs

1. Remove isomorpic graphs2. Skip and remove nodes whose pointers

point to the same child

ZDDs1. Remove isomorpic graphs2. Remove nodes whose “then” arc

points to the constant 0

64641100 ... yxyxyx

Page 17: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace ZDD Construction

fd1 = (X’ * Y’ * Z’ * W)fd0 = (X’ * Y’ * Z’ * W’)

=+

ftrace = (X’ * Y’ * Z’ * W’) + (X’ * Y’ * Z’ * W)

1 0 1

W

01

W

0

Compute Cache

Dead Nodes

Unique Table

Page 18: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace ZDD Construction

fd3 = (X’ * Y’ * Z * W’)

=+

ftrace

1

Z

01

W

0

ftrace (new)

1

W

0

Z

Unique Table

Compute Cache

Dead Nodes

Page 19: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace ZDD Gains

~ 20% Reduction

Page 20: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace ZDD Losses

3x Slower!

Page 21: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace ZDD Construction

fd3 = (X’ * Y’ * Z * W’)

=+

ftrace

1

Z

01

W

0

ftrace (new)

1

W

0

Z

Unique Table

Compute Cache

Death Row

Page 22: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace ZDD Construction

DIN x RDY Tuples

Over 9 times faster!

Page 23: University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani.

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Questions?