VMW Group Research Projects
Performance Counter Related
Performance API (PAPI) Related
Linux perf_events subsystem
Security / Fuzzing
RAPL and Power Measurement
Computer Architecture
Raspberry Pi Related
Code Density
Silly Projects
VMW Software Projects
Older Projects, Infrequently Updated
Many of these projects date back to when I was a grad student or a post-doc.
I still take an interest in these projects and may occasionally update them,
but for the most part there is no current work happening on them.
Performance Counter Related
PAPI Related
Old Class Projects
Basic Block Vectors (BBV) / SimPoint
- BBV Research -
Various methods for generating Basic Block
Vectors as needed by the SimPoint analysis tool.
- alpha-simpoints -
At one point I had actual Alpha hardware so I could
easily generate modern SPEC2000/2006 binaries as well as
simpoints for use with simplescalar.
-
html2simpoint-0.1.tar.gz (2kB)
Code that converts the Alpha/atom BBV results on the
SimPoint website back into discrete bbv files.
- Phase Plots -- SPEC CPU Phase Behavior
Plots
- SimSnap (page at Cornell now defunct) -
This project used checkpoint/restart in conjunction with Simpoint
to allow full-speed fastforwarding to the interval of interest.
My work was writing a custom File I/O checkpoint/restore
implementation with enough features to work for the SPEC2000
benchmarks.
Cache Conscious Data Placement
- Cache Tool - This tool gathers
statistics on cache behavior.
The eventual goal was cache-conscious data placement
but as you will eventually discover this is a thankless task.
Simulator Related
I wasted many years of my life working on "cycle-accurate" counters.
- m5 -- For a while I maintained a set of patches
needed to get SPEC CPU running on x86 gem5
- nursim - new version of ursim that runs Irix MIPS binaries.
Lots of hacking trying to get simsnap binaries to run.
- Qemu -
Investigated using qemu to generate memory traces
(project info here).
- SimpleScalar Alpha -
various projects
- SimpleScalar x86 - trying to get simsnap binaries to run.
- TAXI -
I created a valgrind plugin
(rather than the original
BOCHS frontend)
for TAXI and used it to simulate x86 binaries.
Instrumentation Tools
- Atom - (for the Alpha) used for various projects
- FIT -
used for a cache performance tool. Contributed code to the FIT
developers which has been merged into the main codebase.
- Valgrind
- cachetool - made a plugin for
Valgrind that generates memory traces for use
with my cache tool.
- exp-bbv -
made a Valgrind plugin that generates
SimPoint info, enabling
Basic Block Vectors (BBVs).
- valtaxi -
made a Valgrind plugin that produces
TAXI-compatible
input streams
(TAXI decodes pre-decoded x86 instruction streams into PISA uops
and runs through a modified version of the PISA SimpleScalar).
- Valgrind - Ruby -
an attempt to generate multi-core memory simulations
by using Valgrind and the Ruby multi-core cache
simulator from GEMS/m5.
- Qemu
- qemusim - a patch to Qemu
to generate SimPoint Basic Block Vectors (BBVs).
- qemu-trace - a patch to
Qemu that generates memory traces for cache simulators.
Example Code
- convolve
Simple image convolution example. Gives your cache a workout.
Back to the main website