Basic Block Vector (BBV) Research
I've developed some tools for generating Basic Block Vectors as used
by the SimPoint
analysis tool.
My paper that appears
in HiPEAC 2008 describes the x86 portion of this work.
We have further results which we plan to publish soon.
We are currently working on getting cross-platform SimPoints working for a
variety of platforms. The table below is a summary of our progress.
Target Arch | Collected On | Tools Used | Benchmarks | Validated | Paper |
x86 | x86,x86_64 |
Pin, Qemu, Valgrind |
SPEC2k, SPEC2k6 | Y |
HiPEAC08 |
x86_64 | x86_64 |
Pin, Qemu, Valgrind | SPEC2k | Ongoing |
|
MIPS | x86_64 |
Qemu | SPEC2k | Ongoing |
|
PPC | PPC |
Qemu, Valgrind | SPEC2k | N |
|
SPARC | x86_64 |
Qemu | SPEC2k,SPEC2k6 | Ongoing |
Status |
ALPHA | x86_64 |
Qemu | SPEC2k | N |
|
ARM | x86_64 |
Qemu, Valgrind | SPEC2k | N |
|
Here are links to the various tools:
- PinPoints - this utility was not made by us, it
comes with
Pin
- Valgrind exp-bbv - generate BBVs using
valgrind
- qemu_bbv - generate BBVs using
qemu
- dynsim - I worked on a
dyninst method of
doing this. It was way too resource intensive, but the code
is available in case you are curious.
Here are slowdown numbers for the various
tools
Somewhat related, see some
CPI Phase behavior plots for SPEC CPU benchmarks.
Back to a list of my Computer Architecture
Software