How to Use the Championship Branch Prediction Evaluation Framework

Setting Up the Simulation Infrastructure:

1. Subscribe to the cbp3 mailing list by sending an empty email to cbp3-subscribe AT You do not need to have a Yahoo email account - you only need to subscribe to the mailing list. When prompted, type in your name and institution in a message to the moderator.

This mailing list will be used for any announcments regarding the competition, any simulation infrastructure updates, and participants may post questions or report problems.

2. Download the framework file from here and save it in your home directory.

3. unpack the kit:

 	tar -xzvf cbp3_framework.tar.gz

cd framework

4. Download traces from the following two files: here and here, and expand both files in your home directory under framework/traces:

	tar -xzvf cbp3_traces1.tar.gz

tar -xzvf cbp3_traces2.tar.gz

Please note that the traces files are large (more than 2.1 GB total for both files), so you should reserve enough disk space for your download.

To check that the file has been downloaded correctly, you should check the MD5SUM of traces against those in the MD5SUMS file:

	cd traces

md5sum -c MD5SUMS

5. Configure your Makefile: Make sure you are in the framework/ directory and that your gcc compiler path is set up correctly. Edit the sixth line of Makefile to match your system configuration. To get your system configuration, type "uname -a" in Linux.

If your system is a 32-bit system (IA-32, i686), modify the sixth line in Makefile to:

	FORMAT = 32

If your system is a 64-bit system (x86_64), modify the sixth line in Makefile to:

	FORMAT = 64

6. To compile the simulator, make sure you are in the framework/ directory, then type:


Running the Simulator:

To run the simulator on the generated trace, do the following (from the CRC/ directory):

	mkdir runs

cd runs/

The command format is:

	../cbp3 -t [trace file name] > [output file name]

For example, to simulate a sample short trace, run:

	../cbp3 -t ../trace_test.bz2 > trace_test.out

You can examine statistics from this run by opening trace_test.out. The output file contains statistics about cycles, instructions, branch mispredictions, branch misprediction penalites, and a final score for both conditional and indirect branches.

Writing Your Own Branch Predictor:

In your framework/ directory, there are two files you can modify: and predictor.h.

Only these two files should be submitted with your contest submission. All other files in that directory should not be modified.

Last Modified Thu Feb 24 14:38:48 PST 2011 by Alaa R. Alameldeen