Table of Contents
Pythia is a hardware-realizable, light-weight data prefetcher that uses reinforcement learning to generate accurate, timely, and system-aware prefetch requests.
Pythia formulates hardware prefeteching as a reinforcement learning task. For every demand request, Pythia observes multiple different types of program context information to take a prefetch decision. For every prefetch decision, Pythia receives a numerical reward that evaluates prefetch quality under the current memory bandwidth utilization. Pythia uses this reward to reinforce the correlation between program context information and prefetch decision to generate highly accurate, timely, and system-aware prefetch requests in the future.
Pythia is implemented in ChampSim simulator. The code can be found here:
To setup Chisel3 in local machine, please follow the setup instructions
To run/test a module, use the following command:
sbt -v "test:runMain pythia.Launcher <Module name>"
sbt -v "test:runMain pythia.Launcher MasterModule"
The supported modules are:
Module Name | Description |
---|---|
IndexGen |
Generates a plane index from PC+Offset or Delta path feature. Implements Robert Jenkin's 32-bit hash function. |
Plane |
Implements a plane construct. |
Vault |
Implements a vault construct. Essentially a group of 3 planes. |
MaxN |
Given 3 sets of <id,value> pairs, this module returns the max value and the id with max value. |
QVCompare |
Sums up three partial Q-values (each read from individual planes) and returns the max of two overall Q-values. |
MasterModule |
The high-level module that implements Pythia in its entirity. |
If you use this framework, please cite the following paper:
@inproceedings{bera2021,
author = {Bera, Rahul and Kanellopoulos, Konstantinos and Nori, Anant V. and Shahroodi, Taha and Subramoney, Sreenivas and Mutlu, Onur},
title = {{Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning}},
booktitle = {Proceedings of the 54th Annual IEEE/ACM International Symposium on Microarchitecture},
year = {2021}
}
Distributed under the MIT License. See LICENSE
for more information.
Rahul Bera - write2bera@gmail.com
We acklowledge support from SAFARI Research Group's industrial partners.