This page describes the necessary commands to run the SPEC-2017 benchmark on the RISC-V QEMU Emulator for integer benchmarks while utilizing single-core performance and also displays the performance results.
QEMU is an open-source emulator. QEMU's RISC-V emulator supports two modes, namely, user mode as well as system mode. In user mode, users can run a single binary compiled for RISC-V architecture in a single command. In system mode, users can run a complete Linux operating system on an emulated RISC-V instance and can execute commands inside it.
This benchmark is run on qemu-system-riscv64 version 8.2.2 with ubuntu 22.04.4 pre-installed server image.
The QEMU system is allocated 4 cores (host CPU is AMD EPYC™ 7713) and 8GB of RAM.
Execution of test
All the things are the same as explained in the previous benchmark. The command used for the execution of the test is as follows:
./bin/runcpu --threads=1 --copies=1 --config="$PATH_OF_CONFIG_FILE" spec --reportable
Results
Individual Test Results
The individual test results of qemu-system-riscv64 are as follows:
Final Results (comparison with physical hardware)
Int_base results
The following results of other instances are taken out from the previous SPEC CPU intrate/singlecore blog.
Int_peak results
The following results of other instances are taken out from the previous SPEC CPU intrate/multicore blog.
Conclusion
In the previous benchmark, we saw that the multicore performance of qemu is a little bit faster than visionfive 2. But in single process execution, qemu lacks a little bit as compared to visionfive 2. There can be multiple factors for this behavior depending on how OS is managing the process execution.