Skip to content

An implementation of the Cacheus cache replacement policy in ZSim

Notifications You must be signed in to change notification settings

colbyendres/Cacheus_ZSim

Repository files navigation

Overview

This is an implementation of the Cacheus replacement policy in ZSim, which can be found in this paper. Our group consists of Colby Endres and Giacomo Coraluppi. The repository is structured identical to zsim, with several additions.The actual implementation can be found in cacheus_repl.h and judge.h. Users who wish to implement different judge policies can do so by extending the virtual Judge class and adding it to the JudgeScheme enum found in cacheus_repl.h.

Build Instructions

git clone git@github.com:CSCE-614-AMUZAHID-S25/Cacheus_Group3.git
cd Cacheus_Group3
python -m venv ./venv
source ./venv/bin/activate
pip install scons
source setup_env
cd zsim
scons -j4

Run Instructions

First, unzip the benchmark folder:

zip -F benchmarks.zip --out single-benchmark.zip && unzip single-benchmark.zip && mkdir benchmarks/parsec-2.1/inputs/streamcluster

With the repository cloned and the simulator compiled, you can run a single benchmark with ./run_cacheus <suite> <benchmark> <judge1> <judge2> or run all of them with ./driver. However, you will likely need to modify src/init.cpp to change the JudgeScheme variables corresponding to Cacheus' judges.

Visualizing Results

Each benchmark and judge combination produces a zsim.out. As a helper, we provide get_stats.ipynb, which walks the output directory and generates the plots for IPC, total cycles, and MPKI. If you want to see the results in excel format rather than plots, we provide 'zsim/get_stats.py' which generates an excel sheet with all the parsed information from the zsim.out files. These benchmarks take a significant amount of time to run, so we provide all of the *.out files and the resulting plots.

About

An implementation of the Cacheus cache replacement policy in ZSim

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •