Download presentation

Presentation is loading. Please wait.

Published byNelson Purks Modified over 3 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

OK

Data Representation. Units & Prefixes Review kilo, mega, and giga are different in binary! bit (b) – binary digit Byte (B) – 8 binary digits KiloByte.

Data Representation. Units & Prefixes Review kilo, mega, and giga are different in binary! bit (b) – binary digit Byte (B) – 8 binary digits KiloByte.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on online library management system Ppt on different types of dance forms Ppt on nuclear family and joint family vs nuclear Ppt on applied operational research notes Free ppt on mobile number portability in india Ppt on machine translation tools Ppt on product life cycle with examples Ppt on conservation of forest resources Ppt on types of research methods and designs Ppt online viewership