zdds for dynamic trace analysis graham price manish vachharajani

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

Upload: butch

Post on 25-Feb-2016

39 views

Category:

Documents


0 download

DESCRIPTION

ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani. Motivation. Tools can be useful. ParaMeter. Are they useable?. Fabrel Studio. Representation take days to create!. DIN. Instruction. Mem Addr. DIN. Ready Time. …. 13. 13. mov r3,r4. 13. 12. 12. st 0(r1),r5. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research Lab

ZDDs for Dynamic Trace Analysis

Graham Price Manish Vachharajani

Page 2: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

Motivation

• Tools can be useful

Representation take days to create!

• ParaMeter

Fabrel Studio

• Are they useable?

Page 3: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

DIN vs. Ready Time

li r1, &fibarr

mov r2, 8mov r4, 1mov r3, 1add r5,r3,r4st 0(r1),r5mov r3,r4mov r4,r5addi r2,r2,-1addi r1,r1,4bnz r2, loopadd r5,r3,r4st 0(r1),r5mov 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

Video

Details: Price, Giacomoni, and Vachharajani PACT 2008

Page 5: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

BDD Garbage Collection Time

Page 16: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

Trace ZDD Gains

~ 20% Reduction

Page 20: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

Trace ZDD Losses

3x Slower!

Page 21: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore 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: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

Trace ZDD Construction

DIN x RDY Tuples

Over 9 times faster!

Page 23: ZDDs  for Dynamic Trace Analysis Graham Price Manish  Vachharajani

University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab

Questions?