Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani."— Presentation transcript:

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

2 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Motivation Tools can be useful Representation take days to create! ParaMeter Fabrel Studio Are they useable?

3 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab DIN vs. Ready Time 0 1 2 312 4 6 8 9 5 7 1013 11

4 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Video Details: Price, Giacomoni, and Vachharajani PACT 2008

5 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace BDD Construction f d0 = (0,0) f d1 = (0,1) f d2 = (0,2)

6 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace BDD Construction (X * Y * Z * W) f trace = (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 TupleBoolean Function { {X * Y * Z * W}, {X * Y * Z * W}, {X * Y * Z * W} }

7 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab The BDD Data Structure False Arc Inverting False Arc True Arc F(X,Y,Z,W) = X*Y*Z*W 0 Y W Z W Z Z Z 000 00 0 0 0 Y W Z W Z Z Z 00 00 1 0 0 X 0

8 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab The BDD Data Structure False Arc Inverting False Arc True Arc F(X,Y,Z,W) = X*Y*Z*W Y W Z W Z Z Z Y W Z W Z Z Z 1 X Z 0

9 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab The BDD Data Structure False Arc Inverting False Arc True Arc F(X,Y,Z,W) = X*Y*Z*W Y W W Y W W Z 1 X Z 0 W

10 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab The BDD Data Structure False Arc Inverting False Arc True Arc F(X,Y,Z,W) = X*Y*Z*W Y Y W Z 1 X Z 0 W 0

11 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab The BDD Data Structure False Arc Inverting False Arc True Arc F(X,Y,Z,W) = X*Y*Z*W Y W Z 1 X 0 1 X Y W Z

12 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace BDD Construction f d1 = (X * Y * Z * W)f d0 = (X * Y * Z * W) = + f trace = (X * Y * Z * W) + (X * Y * Z * W) 1 X Y Z 1 X Y W Z 1 X Y W Z

13 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace BDD Construction Cont.. Unique Table f d1 = (X * Y * Z * W) 1 X Y W Z f d0 = (X * Y * Z * W) = + f trace = (X * Y * Z * W) + (X * Y * Z * W) 1 X Y W Z f trace = (X * Y * Z * W) 11 I trace = 0 1 X Y W Z 1 X Y Z Compute Cache Dead Nodes

14 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace BDD Construction Cont.. 1 X Y W Z = + f trace 1 X Y Z 1 X Y W Z f d3 = (X * Y * Z * W) Unique Table Compute Cache Dead Nodes

15 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab BDD Garbage Collection Time

16 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab ZDDs BDDs 1.Remove isomorpic graphs 2.Skip and remove nodes whose pointers point to the same child ZDDs 1.Remove isomorpic graphs 2.Remove nodes whose then arc points to the constant 0

17 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace ZDD Construction f d1 = (X * Y * Z * W) f d0 = (X * Y * Z * W) = + f trace = (X * Y * Z * W) + (X * Y * Z * W) 1 0 1 W 0 1 W 0 Compute Cache Dead Nodes Unique Table

18 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace ZDD Construction f d3 = (X * Y * Z * W) = + f trace 1 Z 0 1 W 0 f trace (new) 1 W 0 Z Unique Table Compute Cache Dead Nodes

19 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace ZDD Gains ~ 20% Reduction

20 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace ZDD Losses 3x Slower!

21 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace ZDD Construction f d3 = (X * Y * Z * W) = + f trace 1 Z 0 1 W 0 f trace (new) 1 W 0 Z Unique Table Compute Cache Death Row

22 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Trace ZDD Construction DIN x RDY Tuples Over 9 times faster!

23 University of Colorado at Boulder Core Research Lab University of Colorado at Boulder Core Research Lab Questions?


Download ppt "University of Colorado at Boulder Core Research Lab ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani."

Similar presentations


Ads by Google