🍁 MAPLE: Memory Access ProfiLEr
MAPLE is a Pin-based profiler to provide dumping memory access traces of applications at page-level. Currently, it records the accessed virtual page number, timestamp and r/w.
The supported output format is only csv at the moment; binary and vscsi will be added soon.
MAPLE has a built-in LRU cache helping to eliminate redundant items which may get answered by front layer caches.
$ tar zxf pin-3.2-81205-gcc-linux.tar.gz $ cd pin-3.2-81205-gcc-linux
 Clone the MAPLE!
$ git clone https://github.com/0xreza/maple-profiler.git
 Make the module:
$ cd maple-profiler $ make obj-intel64/maple.so TARGET=intel64
 Run the experiment:
$ pin -t obj-intel64/maple.so -- [target_program]
 Feed your trace into Mimircache!. Get insightful heat-maps and hit-ratio curves!
PARSEC, ocean_ncp benchmark.plotted using traces gathered from
PARSEC, streamcluster benchmark.plotted using traces gathered from
Work in Progress
- Supporting compact output formats
- Supporting spatio/temporal sampling
Maple is released on public domain under GPLv3, created by Reza Karimi, PhD student at SimBioSysLab, Emory University, interning at INESC-ID, Lisbon (Summer 2018)! with invaluable help of (and base code from) David Gureya (PhD student at Instituto Superior Técnico); and coaching by Joao Barreto, my internship advisor.
Contributions and suggestions are welcome!