CSCE 689-602 Fall 2020 Project

The project for our class will be a cache replacement contest. It will be an individual projects, i.e., no group project. The project is due on December 7, 2020. The project proposal is due September 24, 2020.

The Project

You will implement a microarchitectural prediction technique and demonstrate its effectiveness. You will choose a technique from the literature, preferably from the last 10 years, to implement in a microarchitectural simulator. You will test the technique on a set of benchmarks to show how well it works and why it works. For example, you might implement some optimization and show its geometric mean speedup over a baseline technique on a set of benchmarks. The technique, simulator, metrics, and benchmarks are up to you to propose. You will write a proposal outlining these aspects of your project and turn it in on September 24.

What Is Due for the Project

You will turn in a project proposal on September 24, and a final project writeup and your code on December 7.

The Proposal

The proposal should be a document giving the approach you will take to accomplish the project. The following questions should be answered:
  1. What algorithm(s) will be used for the technique?
  2. What experiments will you do to tune your technique?
  3. What papers have you read to inform your technique? List at least three papers.
  4. What simulation platform will you use to develop and test the technique?
  5. What benchmarks will you use to test the technique?
  6. What metrics will you use to quantify the value of the technique?
  7. Beyond speedup or other figure of merit, how will you evaluate why the technique performs well (or doesn't)?
Turn in the proposal through email to djimenez@tamu.edu.

The Final Project

The final project is due on December 7, 2020. You will turn in a project writeup giving an introduction, related work, main idea of the technique, methodology, results with bar charts or other pretty graphics, and conclusion. You will also turn in your source code you used for the project. Make a .tar.gz file that can be unpacked into a folder with instructions on how to build the project.

How To Choose A Technique

If you already have an idea of what you might like to do, that's great. Please email the professor to make sure you're on the right track, then start writing the proposal. If you don't have an idea, here are some: For these contests, you may implement a technique from the literature yourself and do not use other code from anyone else. Or, you could alternately try combining two (or more) predictors to outperform the original predictors. If you try this second idea, you may use the source code for the predictors you combine, but the way you combine them must be coded by you, and it must be non-trivial. You should also tune the parameters of the original algorithms to yield a good improvement while working as a combination. Your writeup must explain how the components of the two predictors are able to complement each other to give superior performance.

These contests typically specify a maximum hardware budget, say, 32KB. You may choose to respect this hardware budget, or go beyond it to see how much more improvement a larger budget yields. If you do the idea where you combine two predictors, make sure that your combined predictor uses the same hardware budget specified for the competition when you compare it to a base predictor; it's easy to achieve a speedup by providing a larger hardware budget, but we really want to compare predictors to each other on a equal footing.