Branch Prediction Competition
Click here for a 183MB tar file that contains the
infrastructure for the branch prediction competition.
Contest Rules
Here are some rules:
- Your code must work within the infrastructure without changing any
of the code or Makefile in the infrastructure. Your code must be C++.
- Your predictor should run in a "reasonable" amount of time and space. It should require no
more than 1GB of storage and no more than two minutes to process any given trace file. In previous
competitions we have required a strict realistic hardware budget with accounting for each bit, but for this
semester we are more interested in the ideas you present than the implementability.
- Your code may not perform any input or output.
- Do not assume the existence of any library code that is not part of the
C++ language.
- The code for your predictor, not including comments and white space,
may not exceed 50,000 characters.
- As always, your code must not be plagiarized. Do not turn in someone
else's work as your own.
- You are to try to reduce the indirect MPKI as much as possible. When the simulator
runs, it reports two figures: the conditional MPKI and the indirect MPKI. For this competition
we only care about the second figure, the indirect MPKI.
Your predictor will be evaluated on a set of traces that have not been
distributed. That is, you will design your predictor with the distributed
traces on this web site, but a different set will be used to rank the
traces and determine the winner. This is to avoid having your algorithm
be tuned too precisely to a given set of traces so that it will be a more
general branch predictor.
What to Turn In
Email a PDF file containing your project writeup and your C++ header file
my_predictor.h to the teaching assistant on or before the deadline
(to be announced). Your writeup will be graded according to the same
standards as all of the other projects: it must be a conference-quality
paper describing how your predictor works in your own words, with
references to the relevant literature (at least 3 citations). Your code
must be well-commented. It must compile cleanly under Linux with g++
versions 4.8.5 or 7.2.0 and run without errors. It is recommended that you
consult with the professor to make sure your code will work well before
the deadline. Late projects will not be accepted for any reason.
The Winner
The student with the most accurate predictor will receive a "valuable prize"
to be determined later. The winner will be announced in class.