Skip to main content

6th Championship Branch Prediction (CBP2025)

in conjunction with:
ISCA-52  http://iscaconf.org/isca2025/index.html
Sponsored by ARM


The organizers of the 6th Championship Branch Prediction (CBP2025) invite you to participate in a competition for the best branch predictor.

Workshop Program

The Workshop Program is now available! We hope you will attend. Here is the registration site for the ISCA workshops/tutorials and the main conference: register.

Organizing CommitteeProgram Committee
Rami Sheikh (ARM), ChairAlaa Alameldeen (Simon Fraser University)
Saransh Jain (ARM)Muawya Al-Otoom (Apple)
Saransh Jain (ARM)
Gabriel Loh (AMD)
Pierre Michaud (Inria)
Eric Rotenberg (NCSU), Chair
Rami Sheikh (ARM)
Dam Sunwoo (ARM)
Chris Wilkerson (Intel)

Objective

The goal of this competition is to compare different branch predictors within a common framework. Branch predictors will be evaluated for conditional branches only. Contestants’ branch predictors must be implemented within a fixed storage budget as specified in the competition rules. The simple and transparent evaluation process enables dissemination of results and techniques to the larger computer architecture community and allows independent verification of results.

Google Group

Please register with the cbp2025 google group for communication among organizers and contestants.

Contact Information

To contact the CBP2025 organizers directly, email cbp2025submissions@gmail.com.

Submission Requirements

Anyone in the world may make a submission. (Note: Authors will have to separately check visa eligibility/requirements for visiting Tokyo, Japan, the venue for ISCA 2025.) There is no constraint on the number of authors of a given submission (one author, two authors, …, N authors, are all fine). There is no notion or process of “registering for the competition”; there is just the submission deadline. (Note: As is customary, attendance at the Workshop held at ISCA 2025 will require registering — paying a registration fee — for the Workshop and Conference.)

Each submission includes the following:

  • The contestant’s commented branch predictor source code, that compiles and runs with the provided CBP2025 Simulator Framework. Comments must be included that (1) explain operation and (2) document cost. The modeled branch predictor must fit within the storage budget specified in the competition rules.
  • A 4-page paper. The paper should motivate the branch predictor, explain its operation, carefully assess its cost and complexity, and provide results and analysis. The page limit does not include references nor a dedicated appendix for cost analysis.

Acceptance Criteria

In the interest of assembling a quality program for workshop attendees and future readers, there will be an overall selection process, of which performance ranking is the primary component. To be considered, submissions must conform to the Submission Requirements described above. Submissions will be selected to appear in the workshop on the basis of the performance ranking, novelty, practicality of the predictor, and overall quality of the paper and commented code. Novelty is not a strict requirement, for example, a contestant may submit their previously published design or make incremental enhancements to a previously proposed design.

Competition Rules

  • Contestants will implement and evaluate their branch predictors in the provided CBP2025 Simulator Framework.
  • Contestants may use the supplied training traces in the process of designing their branch predictors. Branch predictors are not allowed to adjust their algorithms for a particular trace or group of traces (note: the use of secret traces in final evaluations thwarts this tactic). Branch predictors are not allowed to violate causality (use future information to predict the current branch outcome). Contestants are not allowed to spawn another thread from the branch predictor code.
    • We received queries about the intent and allowed usage of the “resolve_dir” and “next_pc” arguments (i.e., the actual branch outcome) supplied via the spec_update() interface. The intent is to reduce the burden on contestants, as follows. In a real processor, branch/path history, that is used for indexing prediction tables to generate the next prediction, must be immediately speculatively updated with the prediction to keep the prediction process going. When a branch misprediction is detected, the speculatively-updated branch/path history must be rolled back to that branch and corrected. We can mimic this process, without violating causality, by allowing contestants to immediately update their branch/path history with the actual branch outcome instead of the branch prediction — so that they don’t need to literally implement rollbacks. On the other hand, contestants are not allowed to update prediction tables using the actual branch outcome (“resolve_dir”, “next_pc”) supplied by spec_update(). If in doubt about whether you can or cannot update some structure in spec_update(), please email the CBP2025 Organizing Committee directly (contact information).
  • Contestants must implement their branch predictors within a budget of 192KB.
    • Note that the CBP2025 simulator comes with the winning 64KB branch predictor from CBP2016. Contestants may retain this component and add up to 128KB of additional components, or discard it and use the entire 192KB for their own components.
    • Each contestant must carefully document their branch predictor’s cost, in both the source code comments and paper, as explained in the Submission Requirements. The CBP2025 Organizing Committee will inspect the source code to confirm each contestant’s cost accounting and compliance with the storage budget, to the best of their ability within time constraints.
    • In a processor, it is typical to have a structure that records prediction-time information so it can be later used at update-time. An example of such information is the history register(s). For example, in the supplied base predictor (64KB TAGE-SC-L), there is a structure pred_time_histories that serves this purpose: it is used to save the histories prior to making a prediction. Later, at update-time, the same histories are retrieved and used to update the branch predictor. This structure does NOT count towards the branch predictor budget. If contestants have any doubts about whether or not certain information is permitted to be stored in this structure, and therefore not counted towards the budget, please email the CBP2025 Organizing Committee directly (contact information). Although this structure does not count toward the branch predictor budget, please separately document its cost in the source code comments and paper.
  • Quantitatively assessing the complexity of branch predictors is difficult (issues related to physical design, cycle time, pipelining of the predictor, number of ports to various components, etc.). To simplify the evaluation process, maximize transparency, and minimize the role of subjectivity in selecting a champion, branch predictor complexity will not factor into the process of ranking contestants. However, as explained in the Acceptance Criteria, practicality is one factor considered in the review process that admits contestants’ entries.
  • Branch predictors will be scored using secret traces that will be released after the workshop. The championship will have two tracks, one for reducing the number of cycles on the wrong path per-one-thousand-instructions (CycWpPKI) and another for reducing conditional branch mispredictions-per-one-thousand-instructions (BrMisPKI). All contestants are automatically considered for both tracks. The contestant’s branch predictor that yields the lowest arithmetic mean CycWpPKI will receive first prize in that track. The contestant’s branch predictor that yields the lowest arithmetic mean BrMispPKI will receive first prize in that track. It is possible for the same contestant to win first prize in both tracks.
  • All source code, papers, and performance results, will be made publicly available through this CBP2025 website.

CBP2025 Simulator Framework

Follow the link, above, to access the simulator and traces.

Submission Instructions

Follow the link, above, to access the submission instructions.

Important Dates

Competition announced:February 7, 2025
Simulator framework available:February 7, 2025
Submissions due:April 18 May 2, 2025, at 11:59 PM EDT
Acceptance notification:May 2 May 16, 2025
Camera-ready version due:May 23 June 6, 2025
Results announced:At ISCA workshop (Saturday, June 21, 2025,
9am — 1pm, half-day workshop)