zdds for dynamic trace analysis graham price manish vachharajani

Post on 25-Feb-2016

39 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

University of Colorado at BoulderCore Research Lab

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?

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

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

Video

Details: Price, Giacomoni, and Vachharajani PACT 2008

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)

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

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

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

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

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

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

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

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

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

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

BDD Garbage Collection Time

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

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

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

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

Trace ZDD Gains

~ 20% Reduction

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

Trace ZDD Losses

3x Slower!

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

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

Trace ZDD Construction

DIN x RDY Tuples

Over 9 times faster!

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

Questions?

top related