This is the repository for a highly effective delta prefetcher. We provide the prefetcher Hyperion, the simulator ChampSim and all the benchmarks used for this research.
- Linux OS
- Python 3.6.9
- Bash 4.4.20
- GCC 7.5.0
We use four benchmark suites to evaluate Hyperion and we provide the links to download the traces.
Ligra (We use the traces provided by Pythia)
Use the scripts in ./scripts/single_core to evaluate single L1D prefetcher in a single core system:
./scripts/single_core/E1_single_core_single_prefetcher.sh
Use the scripts in ./scripts/single_core/ to evaluate L1D prefetcher with L2C prefetcher in a single core system:
./scripts/single_core/E1_single_core_multi_pref.sh
Use the scripts in ./scripts/multi_cores/ to evaluate single L1D prefetcher in a 4 cores system:
./scripts/single_core/E1_4core_single_prefetcher.sh
Use the scripts in ./scripts/multi_cores/ to evaluate L1D prefetcher with L2C prefetcher in a 4 cores system:
./scripts/single_core/E1_4core_multi_pref.sh
All the evaluation results will be output into a directory named outputsum. Then you can use the Python scripts in analysis_py to statistic the results for a csv file. Next, you could also use the scripts in the same directory to generate figures.
Scripts for parameter exploring are included in ./scripts/parameter_explorations/. You can run Hyperion with different parameter for further research.
Please cite our paper if you find the repo helpful for you:
@article{10.1145/3675398,
author = {Cui, Yujie and Chen, Wei and Cheng, Xu and Yi, Jiangfang},
title = {Hyperion: A Highly Effective Page and PC Based Delta Prefetcher},
year = {2024},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
issn = {1544-3566},
url = {https://doi.org/10.1145/3675398},
doi = {10.1145/3675398},
note = {Just Accepted},
journal = {ACM Trans. Archit. Code Optim.},
month = {jul},
keywords = {Hardware prefetch, L1D prefetcher, high accuracy, high coverage}
}