The Journal of Instruction-Level Parallelism

Championship Branch Prediction

The 2nd JILP Championship Branch Prediction Competition (CBP-2)

in conjunction with MICRO-39

Steering Committee

Dan Connors, Univ. of Colorado
Tom Conte, NCSU
Phil Emma, IBM
Konrad Lai, Intel
Yale Patt, Univ. of Texas
Jared Stark, Intel
Mateo Valero, UPC
Chris Wilkerson, Intel


Daniel A. Jiménez, Rutgers

Program Committee

Veerle Desmet, Ghent University
Phil Emma, IBM
Ayose Falcón, HP Labs
Alan Fern, Oregon State
Daniel Jiménez, Rutgers
David Kaeli, Northeastern
Gabriel Loh, Georgia Tech
Soner Onder, Michigan Tech
Alex Ramirez, UPC and BSC
Oliverio Santana, ULPGC
André Seznec, IRISA
Jared Stark, Intel
Chris Wilkerson, Intel
Huiyang Zhou, University of Central Florida

Source files for the finalists' branch predictor simulators.

Materials from the workshop:

Other materials coming soon.

Advance Program and Papers

The Championship Branch Prediction workshop brings together researchers in a competition to find the best ideas in branch prediction. Competitors will submit papers accompanied with simulation code giving detailed descriptions of branch predictors. The best predictors will be chosen to be presented at the workshop.

Realistic and Idealistic Predictors

The competition will have two tracks:
  • Realistic Track. Predictors submitted to the realistic track will have a small, 32 kilobyte + 256 bit hardware budget and should be reasonably implementable as part of a modern microprocessor. The goal here is to find the state of the art in branch prediction and give direction to industry for future microprocessor designs. Predictors will be selected by the program committee based on simulated accuracy on a distributed set of traces as well as a more subjective judgment of efficiency and implementability.

  • Idealistic Track. Predictors submitted to the idealistic track will have fewer restrictions. The simulation code will have a generous upper limit on the amount of time and space it may take. The goal here is to determine an idealistic bound on the accuracy of branch prediction to give the community a goal to strive for, or perhaps a reason to give up. Predictors will be selected based solely on accuracy on the distributed set of traces (modulo adherence to the rules described later e.g. readability of the writeup).


Selected finalists will present their predictors at the CBP-2 workshop at MICRO-39 and will be invited to submit an extended writeup to a special edition of JILP. One winner will be selected from each track to receive a special prize. The winner for the idealistic track will be chosen as the most accurate predictor on a second set of traces kept undistributed. The winner for the realistic track will be chosen by the program committee based on the accuracy on the undistributed set of traces as well as the perceived implementability of the design.

Submission Requirements

Submissions are subject to a set of rules available on the CBP2 website. Simulator code for submitted predictors will be evaluated in a C++ simulation infrastructure. This infrastructure contains the distributed traces as well as C++ code to drive a branch predictor simulator on these traces. A detailed set of rules will be posted soon. Information on how to submit the entries will be provided in the weeks preceding the submission deadline. The simulation infrastructure can be downloaded as an 8MB tar file from the CBP website. Update: The simulation infrastructure has been updated to remove extraneous traces and provide additional software.
  • Abstract: An abstract must be submitted before September 29, 2006, 11:59pm EDT.
  • Paper: This will be a conference-quality writeup of the predictor with references to relevant related work. This writeup must be no longer than 2500 words and describe how the predictor works and how it conforms to the contest rules.
  • Predictor code: A single C++ header file that can be included in the provided infrastructure must be submitted along with the paper as a separate file. This code must be well-commented so that it can be understood and evaluated; inscrutable code will be grounds for rejection.
  • Predictor output: An ASCII file containing the result of running the run command from the infrastructure should be provided so that we can tell whether your code behaves the same on our system as it does on your system.
No person may take part in more than 3 submissions regardless of track. Co-authors may not be added after the initial submission. Program committee members who do not have access to the undistributed traces may participate in the competition. The final submission, including the paper and the C++ code, must be submitted before October 6, 2006, 11:59pm EDT. There will be no extensions.

Mailing list

Messages related to the CBP-2 competition can be posted to the "cbp2" group on Google groups (