Download presentation

Presentation is loading. Please wait.

Published byNelson Purks Modified over 2 years ago

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?

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google