Branch Prediction Competition
Click here for an 8MB tar file that contains the
infrastructure for the branch prediction competition. Browse the contents
of the infrastructure here.
This software is in a state of change, so check frequently for updates.
Contest Rules
This section will contain information about the rules of the contest.
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 may use no more than 64KB (i.e. 65,536 8-bit bytes) of
state plus 256 extra bits. Only the storage that would actually be required
by an implementation of your algorithm must be counted. For example,
a 2-bit counter implemented with a 32-bit integer counts as only 2 bits.
However, try to avoid using STL, e.g. an associative array implemented with
std::map would require a description of the hardware mechanism
behind implementing the array, with all the storage required. Your writeup
must show how your predictor satisfies this constraint.
- 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.
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++
version 3.3.5. It must 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 on the last day of class.
This page was written by Daniel
A. Jiménez.