zdds for dynamic trace analysis graham price manish vachharajani
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 PresentationTRANSCRIPT
![Page 1: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/1.jpg)
University of Colorado at BoulderCore Research Lab
ZDDs for Dynamic Trace Analysis
Graham Price Manish Vachharajani
![Page 2: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/2.jpg)
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?
![Page 3: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/3.jpg)
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
![Page 4: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/4.jpg)
University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab
Video
Details: Price, Giacomoni, and Vachharajani PACT 2008
![Page 5: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/5.jpg)
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)
![Page 6: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/6.jpg)
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}}
![Page 7: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/7.jpg)
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
![Page 8: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/8.jpg)
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
![Page 9: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/9.jpg)
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
![Page 10: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/10.jpg)
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
![Page 11: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/11.jpg)
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
![Page 12: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/12.jpg)
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
![Page 13: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/13.jpg)
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
![Page 14: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/14.jpg)
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
![Page 15: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/15.jpg)
University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab
BDD Garbage Collection Time
![Page 16: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/16.jpg)
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
![Page 17: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/17.jpg)
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
![Page 18: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/18.jpg)
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
![Page 19: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/19.jpg)
University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab
Trace ZDD Gains
~ 20% Reduction
![Page 20: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/20.jpg)
University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab
Trace ZDD Losses
3x Slower!
![Page 21: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/21.jpg)
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
![Page 22: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/22.jpg)
University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab
Trace ZDD Construction
DIN x RDY Tuples
Over 9 times faster!
![Page 23: ZDDs for Dynamic Trace Analysis Graham Price Manish Vachharajani](https://reader035.vdocument.in/reader035/viewer/2022070501/56816930550346895de07ab4/html5/thumbnails/23.jpg)
University of Colorado at BoulderCore Research LabUniversity of Colorado at BoulderCore Research Lab
Questions?