university of colorado at boulder core research lab zdds for dynamic trace analysis graham price...

Post on 14-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

University of Colorado at Boulder

Core Research Lab

ZDDs for Dynamic Trace Analysis

Graham Price Manish VachharajaniJohn GiacomoniJohn MichalakesSreyasi Vinjamuri

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Motivation

• Chip Multiprocessor (CMP) solutions are becoming more prevalent

• Dynamic program analysis can aid location of parallelism in sequential programs

• BDDs are useful

But they take days to create!

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

DIN vs. Ready Time

li r1, &fibarr

mov r2, 8

mov r4, 1

mov r3, 1

add r5,r3,r4

st 0(r1),r5

mov r3,r4

mov r4,r5

addi r2,r2,-1

addi r1,r1,4

bnz r2, loop

add r5,r3,r4

st 0(r1),r5

mov r3,r4

0xbee0

0xbee4

Instruction Mem Addr

1

2

3

4

5

6

7

8

9

10

11

12

13

14

DIN

1

2

3

4

5

6

7

8

9

10

11

12

13

14

DIN Ready Time

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1

2

3

4

13

5

7

9

10

6

8

11

14

12

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Video

Details: Price, Giacomoni, and Vachharajani PACT 2008

http://www.youtube.com/watch?v=KdeRtDrPEY4

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

The BDD Data StructureFalse ArcInvertingFalse ArcTrue Arc

F(X,Y,Z) = x’y + xy’ + z

1

X

Y

Z

Y

ZZ Z

1 10 01 11

X

Y

Z

Y

1

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction

It = (X’ * Y’ * Z’ * W’)

1

X

Y

W

Z

It = (X * Y * Z * W)

= +

1

X

Y

W

Z

1

X

Y

W

Z

Y

W

Itrace = (X * Y * Z * W) + (X’ * Y’ * Z’ * W’)

0

Itrace = 0

0

1

X

Y

W

Z

Itrace = (X * Y * Z * W)

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction

It = (X’ * Y’ * Z’ * W’)

1

X

Y

W

Z

It = (X * Y * Z * W)

= +

1

X

Y

W

Z

1

X

Y

W

Z

Y

W

Itrace = (X * Y * Z * W) + (X’ * Y’ * Z’ * W’)

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Trace BDD Construction Cont..• Garbage Problem

1

X

Y

W

Z

1

X

Y

W

Z

Y

W

1

X

Y

W

Z

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

ZDDsBDDs

1. Remove isomorpic graphs2. Skip and remove nodes whose pointers

point to the same child

ZDDs1. Remove isomorpic graphs2. Remove “1” nodes whose pointers

point to “0”

64641100 ... yxyxyx

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

ZDD vs. BDD SizeIt = (X’ * Y’ * Z’ * W’) It = (X * Y * Z * W) + (X’ * Y * Z * W)

~ 20% Reduction

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

DD Creation Time

DIN x RDY Tuples

Over 9 times faster!

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

ZDD Construction

It = (X’ * Y’ * Z’ * W’)

1

X

Y

W

Z

It = (X * Y * Z * W)

= +

1

Itrace = (X * Y * Z * W) + (X’ * Y’ * Z’ * W’)

0

Itrace = 0

0

1

X

Y

W

Z

Itrace = (X * Y * Z * W)

1

Z

X

Y

W

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Where BDDs Compress

1

X

Y

W

Z

1

X

Y

W

Z

Y

W

1

X

Y

W

Z

No Compression No CompressionCompression

= +

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Where ZDDs Compress

1

X

Y

W

Z

Compression CompressionLittle/No Compression

= +

1

Z

X

Y

W

1

Details: Price and Vachharajani, to appear CGO 2010

University of Colorado at Boulder

Core Research LabUniversity of Colorado at Boulder

Core Research Lab

Questions?

top related