TODO:

Preparing SPEC CPU2006 Source Code

Before using this project, you need to prepare the SPEC CPU2006 program source code yourself. Please follow these steps:

  1. Obtain the SPEC CPU2006 source code (we cannot provide the source code due to licensing restrictions).
  2. It is recommended to store the SPEC CPU2006 source code directory separately, not in the same location as this repository.
  3. Rename the obtained source code folder to "spec2006", like ~/workspace/spec2006.
  4. Please do not modify the SPEC CPU2006 source code, as this may cause the build to fail.
  5. Note that the spec2006/default.nix directory in this repository is different from the SPEC CPU2006 source code directory. The former can be considered as a Nix build script.

Note: Generating checkpoints may take several or more than ten hours, depending on the complexity of the benchmark.

Please note that the build process may take a considerable amount of time:

  1. First, the script will fetch and compile the RISC-V GCC toolchain, Linux kernel, QEMU, and other necessary components. This step takes approximately 1 hour.

  2. Then, it will use QEMU for profiling, SimPoint sampling, and QEMU checkpoint generation. Generating spec2006 ref input checkpoint typically requires about 10 hours.

If you want to quickly test the system, you can start by setting the input size to "test":

  1. Edit the conf.nix file
  2. Change size = xxx to size = "test"

With the test input size, the entire process should complete in about 30 minutes.

Finally, it will generate a result folder, you will get all the checkpoints in the result folder

If you want to back up some checkpoints: run

nom-build -j 30
python3 backup_checkpoints.py

It will copy checkpoints from nix path to local pwd path, named backup_XXX (timestamp). Notice: backup_XXX is about 100GB!