Litz-Lab / scarab

MIT License
7 stars 6 forks source link

Scarab Quick Start Guide

Install:

  1. Install exact PIN version (PIN 3.15)
  2. Export the following paths
    • export PIN_ROOT=/path/to/pin-3.15
    • export SCARAB_ENABLE_PT_MEMTRACE=1
  3. cd src && make

Run:

  1. Copy: src/PARAMS.sunny_cove into your run directory and rename to PARAMS.in
  2. Run: src/scarab --frontend memtrace --cbp_trace_r0=<MEMTRACE_FILE> --memtrace_modules_log=<MODULES_LOG_AND_BINARIES_DIR>

Scarab

Scarab is a cycle accurate simulator for state-of-the-art, high performance, multicore chips. Scarab's goal is to be highly accurate, while also being fast and easy to work with.

Simulator Features:
v.2.0 Release Features:
What Code Can Scarab Run?
Scarab uArchitecture:
v.2.0 uArchitecture Extensions:
Code Limitations
uArch Limitations
Credits

Scarab was created in collaboration with HPS and SAFARI. This project was sponsored by Intel Labs. Scarab v.2.0 was created and is currently maintained by UCSC.

The Scarab v.2.0 artifact is the result of our UDP ISCA 2024 paper. If you are using Scarab v.2.0 in your research please cite:

@inproceedings{oh2024udp,
  author = {Oh, Surim and Xu, Mingsheng and Khan, Tanvir Ahmed and Kasikci, Baris and Litz, Heiner},
  title = {UDP: Utility-Driven Fetch Directed Instruction Prefetching},
  booktitle = {Proceedings of the 51st International Symposium on Computer Architecture (ISCA)},
  series = {ISCA 2024},
  year = {2024},
  month = jun,
}

License & Copyright

Please see the LICENSE for more information.

Getting Started

  1. System requirements and software prerequisites.
  2. Compiling Scarab.
  3. Setting up and running auto-verification on Scarab.
  4. Running a single program on Scarab.
  5. Running multiple jobs locally or on a batch system. (coming soon!)
  6. Viewing batch job status and results. (coming soon!)
  7. Simulating dynamorio memtraces
  8. Solutions to common Scarab problems.

Contributing to Scarab

Found a bug? File a bug report.

Request a new feature? File a feature request.

Have code you would like to commit? Create a pull request.

Other Resources

1) Auto-generated software documentation can be found here.