21.01.2013 Views

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

L1 D-Cache<br />

Miss Rate (%)<br />

CPI<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

2<br />

1<br />

Us<strong>in</strong>g Dynamic B<strong>in</strong>ary Instrumentation 307<br />

0<br />

0 1000 2000<br />

Instruction Interval (100M)<br />

300.twolf default<br />

3000<br />

Fig. 1. L1 Data Cache and CPI behavior for twolf: behavior is uniform throughout,<br />

with one phase represent<strong>in</strong>g the entire program<br />

L1 D-Cache<br />

Miss Rate (%)<br />

CPI<br />

30<br />

20<br />

10<br />

0<br />

8<br />

6<br />

4<br />

2<br />

0<br />

0 200 400<br />

Instruction Interval (100M)<br />

181.mcf default<br />

600<br />

Fig. 2. L1 Data Cache and CPI behavior for mcf: several recurr<strong>in</strong>g phases are evident<br />

To generate the simulation po<strong>in</strong>ts for a program, the SimPo<strong>in</strong>t tool needs a<br />

Basic Block Vector (BBV) describ<strong>in</strong>g the code’s execution. Dynamic execution<br />

is split <strong>in</strong>to <strong>in</strong>tervals (often fixed size, although that is not strictly necessary).<br />

Interval size is measured by number of committed <strong>in</strong>structions, usually 1M-<br />

300M <strong>in</strong>structions. Smaller sizes enable f<strong>in</strong>er gra<strong>in</strong>ed phase detection; larger sizes<br />

mitigate warmup error when fast-forward<strong>in</strong>g (without explicit state warmup) <strong>in</strong><br />

a simulator. We use 100M <strong>in</strong>struction <strong>in</strong>tervals, which is a common compromise.<br />

Dur<strong>in</strong>g execution, a list is kept of all basic blocks executed, along with a count<br />

of how many times each block is executed. The block count is weighted by the<br />

number of <strong>in</strong>structions <strong>in</strong> each block to ensure that <strong>in</strong>structions <strong>in</strong> smaller basic<br />

blocks are not given disproportionate significance. When total <strong>in</strong>struction count<br />

reaches the <strong>in</strong>terval size, the basic block list and frequency count are appended<br />

to the BBV file. The SimPo<strong>in</strong>t methodology uses the BBV file to f<strong>in</strong>d simulation<br />

po<strong>in</strong>ts of <strong>in</strong>terest by K-means cluster<strong>in</strong>g. The algorithm selects one representative<br />

<strong>in</strong>terval from each phase identified by cluster<strong>in</strong>g. Number of phases can be<br />

specified directly, or the tool can search with<strong>in</strong> a given range for an appropriate<br />

number of phases. The f<strong>in</strong>al step <strong>in</strong> us<strong>in</strong>g SimPo<strong>in</strong>t is to gather statistics for<br />

all chosen simulation po<strong>in</strong>ts. For multiple simulation po<strong>in</strong>ts, the SimPo<strong>in</strong>t tools

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!