2

I want to run SPEC06 benchmarks with the changes I made to the RISC-V Rocket chip architecture and the RISC-V compiler. I am aware Dhrystone is already there, but I want to measure performances with other benchmarks. What are the steps to be able to run SPEC06 benchmarks in a RISC-V environment?

EDIT: Can you please help me how to install and run SPEC06 on an FPGA (zc706 in particular)? I can boot linux-3.14.41 on zc706 programmed by rocket-chip.

Monjur
  • 51
  • 4

1 Answers1

3

First you will need to get access to the SPEC CPU2006 benchmark itself (need license). Once you have that code downloaded, you should use speckle to ease with compiling it. You should be able to run all of the benchmarks under riscv-linux, so you should use the linux variant of riscv-gcc. Some of the benchmarks will work with the pk and the newlib variant of riscv-gcc.

user2548418
  • 1,531
  • 10
  • 17
  • Thanks a lot; it was helpful for running SPEC at simulated environment. It is working fine. I have edit my original question: how to install and run SPEC on FPGA programmed with rocket-chip. – Monjur Oct 09 '15 at 01:52
  • Presumably you were running SPEC out of a linux disk image on spike? Why can't you use the same disk image and boot linux on rocket on the FPGA? – user2548418 Oct 09 '15 at 15:59
  • Do we need to run spike to test performance of new hardware? I have added new hardware (rocket-chip) to support new instructions. I have changed riscv-gnu-tools accordingly. Now I can program FPGA by rocket-chip. I can boot linux on top of modified rocket-chip on FPGA. Will it be sufficient to (1) run SPEC CPU2006 with riscv cross compiler (2) Do we need to run spike? spike does not test h/w performance. I need to test rocket-chip hardware performance with cpu2006 – Monjur Oct 09 '15 at 20:52
  • If (1) is correct; what will be target run in place of "spike pk -c" – Monjur Oct 09 '15 at 20:57
  • Spike is just a functional emulator and I recommended it to make sure the your compiled binaries were working fine. How are you currently running SPEC on RISC-V? – user2548418 Oct 09 '15 at 21:16
  • By compiled binaries, do you mean the RISC-V compiled binaries of the SPEC06 benchmarks? Previously I compiled and ran the benchmarks with Speckle's script in a normal desktop, The script uses the spike emulator as it is. I have a working linux kernel image, root image, and rocket chip architecture programmed into the FPGA. I was wondering how I would place the compiled benchmarks via the SD card in the FPGA and run them since I would not be using the emulator in that case. – Monjur Oct 10 '15 at 03:22
  • 1
    @Monjur, you need to use Speckle to compile SPEC and generate a portable directory with the SPEC binaries and input data. Then you need to move that directory into your Linux disk image (root.bin). From there, you can test Spike booting Linux and running the benchmarks from within Linux, and once that works, you can take the same Linux image and put it on an FPGA running Rocket. – Chris Oct 10 '15 at 11:32
  • I have done the above that you mentioned. However, after moving the SPEC binaries compiled by Speckle into the Linux root image and booting Linux at the FPGA, how exactly do I run the binaries in the booted Linux? Do I need to install SPEC utilities (specinvoke, etc.) in the FPGA? If so, how? And, to clarify, the SPEC binaries are the .riscv files e.g. bzip2_base.riscv, correct? – Monjur Oct 13 '15 at 04:55
  • Follow the instructions in the README under the section ("Building (and running) the binaries from a portable directory"). You should be using "--copy" to make a portable directory which includes the binaries, the input data, and the input commands, and then using the run.sh script to execute them. – Chris Oct 13 '15 at 22:09