In this article, we’ll be benchmarking some of the available RISC‑V single-board computers (SBCs) using Phoronix Test Suite (PTS). We'll be diving into both single-core and multi-core CPU performance to see how these boards handle real-world compute workloads.
We’ll also walk through the complete setup process for running Phoronix Test Suite (PTS) on RISC‑V hardware — so you can easily replicate the benchmarks on your own system.
1. System & Environment Details
All system, hardware and environment specifications used in this benchmark — including vendor, board name, OS, compiler version, SoC, CPU, cores, RAM, and RISC‑V extensions — are listed in the table below.
2. Setup and Installation
Download the latest release from github/phoronix-test-suite/releases and follow the README.md for more details if you want. In order to setup follow these steps:
# Setup User Dirs. & install phoronix
cd /home/$USER; mkdir -p projects/; cd projects/; mkdir -p phoronix-test-suite;
curl -L -o phoronix-test-suite.tar.gz https://github.com/phoronix-test-suite/phoronix-test-suite/releases/download/v10.8.4/phoronix-test-suite-10.8.4.tar.gz && \
tar -xf phoronix-test-suite.tar.gz -C phoronix-test-suite
cd phoronix-test-suite/phoronix-test-suite
sudo bash install-sh # Make sure to run as root
This should install PTS on your system. In order to confirm installation, run this command.
phoronix-test-suite # This should show all the available commands.
There are multiple options in PTS, and it supports hundreds of test suites. You can choose tests based on what you want to benchmark, such as CPU, memory, GPU, and more.
To view available tests and suites you can run these below commands:
phoronix-test-suite list-available-suites
phoronix-test-suite list-available-tests
Read all PTS commands details here for more details on PTS options and configurations.
3. Running CPU benchmark
In this article we will focus only on CPU benchmarking, and for that I've selected these benchmarks which I'll run on all the SBCs listed in the above table.
Benchmark | Description |
CoreMark | Measures the performance of core CPU operations (integer, control, memory). |
CacheBench | Evaluates memory hierarchy performance including L1/L2 cache and RAM throughput. |
NPB (NAS) | Benchmarks parallel computation performance using NASA kernels (OpenMP/MPI). |
Compress-7zip | Tests CPU and memory performance by compressing files using the 7-Zip algorithm. |
SciMark2 | Evaluates scientific computing performance with FFT, Monte Carlo, LU, etc. |
OpenSSL | Measures cryptographic operations like AES, SHA, and RSA performance. |
BYTE Unix Bench | General-purpose system benchmark testing CPU, I/O, and system call performance. |
FFTW | Tests performance of Fast Fourier Transforms using the FFTW library. |
Use these below command to run these above tests.
phoronix-test-suite benchmark coremark cachebench npb compress-7zip scimark2 openssl byte fftw
Note: PTS normal mode is highly interactive and requires frequent user input, so it can't be run unattended or ignored.
3.1 PTS Batch Mode
This option is ideally non-interactive, but it may still prompt for user input in certain cases. For example, the cachebench test asks whether to run read, write, or all tests. However, you can pipe the required inputs to avoid manual interaction, making it a good option for remote or automated setups.
Use this cmd to run the above same tests in batch mode:
export TEST_LIST="coremark cachebench npb compress-7zip scimark2 openssl byte fftw"
phoronix-test-suite batch-benchmark $TEST_LIST
This will only prompt you to ask which particular sub-test to run or If you want to run all, use this below command.
# List of benchmarks to run
export TEST_LIST="coremark cachebench npb compress-7zip scimark2 openssl byte fftw"
echo -e "4\n11\n7\n2\n5\n3\n7" | phoronix-test-suite batch-benchmark $TEST_LIST
Note: This command will not ask for any user input while running -- so you are free to leave it running and have a coffee.
4. Auto-Setup PTS Script for RISCV
This script will automatically set up the Phoronix Test Suite (PTS), run the same CPU benchmarks listed above, and upload the results to OpenBenchmarking.org.
Note: You will need to create account on Openbenchmarking in order to upload your results there.
5. Benchmark Results & Performance Comparison
By default, PTS runs benchmarks using all available CPU cores (multicore). To run benchmarks in single-core mode, export the environment variable PTS_NPROC=1 before executing the benchmark command.
5.1 BYTE Unix Bench
Results for multiple variants of BYTE Unix Bench.
See more results and details here.
5.2 CacheBench
Results for multiple variants of CacheBench.
See more results and details here.
5.3 SciMark
Results for SciMark are below.
See more results and details here.
5.4 Coremark
Results for Coremark are below.
5.5 7-Zip Compression
Results for 7-Zip are below.
See more results and details here.
5.6 OpenSSL
Results for OpenSSL are below.
6. Overall Results and Conclusion
Using the Phoronix Test Suite, we evaluated multiple RISC‑V SBCs across CPU, memory, and system-level workloads. The results show significant performance variation, with higher-end boards like the Milk‑V Pioneer Box excelling due to their many-core architectures (e.g., SG2042 with 64 cores), while boards like the Banana Pi BPI‑F3 and VisionFive 2 offer solid mid-range performance.
You can also see the complete scores for all the tests/benchmarks below.
For detailed benchmark results and system information, visit OpenBenchmarking.org/user/akif for clear visualizations and insights.
7. Appendices & Artifacts
Read PTS Complete Documentation
Find Complete Script to Run all above benchmarks
View Above benchmarks results on Openbenchmarking.org