Download presentation
Presentation is loading. Please wait.
Published byNelson Purks Modified over 10 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
© 2025 SlidePlayer.com. Inc.
All rights reserved.