Benchmarking RISCV SBCs with UnixBench (Single/Multi Core)
By Akif Ejaz | 11 Aug, 2025

In this article, we’ll be benchmarking some of the available RISC‑V single-board computers (SBCs) using UnixBench. 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 UnixBench 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.

Vendor Board Name OS Compiler (GCC) SOC CPU Cores RAM GB RISCV Extensions
StarFive VisionFive V1 Ubuntu 24.04.1 LTS gcc/g++ 13.2.0 JH7100 U74 @ 1.2GHz + E24 2+1 8 RV64GC
StarFive VisionFive 2 Ubuntu 24.04.1 LTS gcc/g++ 13.2.0 JH7110 U74 @ 1.5GHz 4 8 RV64GC
Milk-V Milk-V Jupiter Bianbu 2.2 gcc/g++ 13.2.0 SpacemiT K1/M1 X60 @ 1.6GHz 8 16 RV64GCVB, RVA22, RVV1.0
Milk-V Milkv Pioneer Box Debian GNU/Linux 13 gcc/g++ 14.2.0 SG2042 C920 @ 2.0GHz 64 128 RVV 0.7.1
Banana Pi Banana Pi BPI-F3 Bianbu 2.2 gcc/g++ 13.2.0 SpacemiT K1 X60 @ 2.0GHz 8 16 RV64GCVB, RVA22, RVV1.0

2. Setup and Installation

Clone the UnixBench repository from github/byte-unixbench and read the USAGE for more details.
Setting up UnixBench is really easy, just clone the repository and that's it there is no such dependencies/prerequisite.

mkdir -p ~/projects && cd ~/projects && git clone https://github.com/kdlucas/byte-unixbench.git

3. Running CPU benchmark

BYTE UnixBench—often just called UnixBench—is a classic benchmarking suite for Unix-like systems, updated over the years from the original Byte Magazine benchmark. It runs a variety of tests (like Dhrystone, Whetstone, file copy, pipe throughput, process creation, system call overhead, and more) to generate an overall index score reflecting system performance.

Use these commands to run it for Single/Multicore:

cd ~/projects/byte-unixbench/UnixBench && ./Run 2>&1 | tee unixbench.log
Note: If you want to run each test for n iterations, append "-i <n>" flag in above command and use "-c <n>" for running n-parallel copies of a test

In this exercise we'll go with default parameters which is `-i 10` and `-c 1`. Once complete the results can be found in `~/projects/byte-unixbench/UnixBench/results` directory. 

# This is the expected log generated from unixbench (Some parts are skipped)
# The first index values are for single core and second one for multi-core.
cat unixbench.log
...
========================================================================
BYTE UNIX Benchmarks (Version 6.0.0)

System: pioneer-1: GNU/Linux
OS: GNU/Linux -- 6.6.66-pioneer -- #2024.12.27.05.50+c30fe9b9c SMP Fri Dec 27 06:19:30 UTC 2024
Machine: riscv64 (unknown)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
22:42:22 up 37 days, 3:03, 8 users, load average: 0.51, 0.20, 1.22; runlevel

------------------------------------------------------------------------
Benchmark Run: منگل اگست 05 2025 22:42:22 - 23:10:38
64 CPUs in system; running 1 parallel copy of tests

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 13820931.1 1184.3
Double-Precision Whetstone 55.0 2877.9 523.3
Execl Throughput 43.0 610.2 141.9
File Copy 1024 bufsize 2000 maxblocks 3960.0 212659.4 537.0
File Copy 256 bufsize 500 maxblocks 1655.0 58742.2 354.9
File Copy 4096 bufsize 8000 maxblocks 5800.0 606526.4 1045.7
Pipe Throughput 12440.0 382776.4 307.7
Pipe-based Context Switching 4000.0 16846.2 42.1
Process Creation 126.0 1073.8 85.2
Shell Scripts (1 concurrent) 42.4 2020.4 476.5
Shell Scripts (8 concurrent) 6.0 1603.7 2672.9
System Call Overhead 15000.0 483551.0 322.4
========
System Benchmarks Index Score 375.9
...
...
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 879802932.4 75390.1
Double-Precision Whetstone 55.0 183576.0 33377.5
Execl Throughput 43.0 17328.9 4030.0
File Copy 1024 bufsize 2000 maxblocks 3960.0 10588204.9 26737.9
File Copy 256 bufsize 500 maxblocks 1655.0 3466844.1 20947.7
File Copy 4096 bufsize 8000 maxblocks 5800.0 11397318.9 19650.5
Pipe Throughput 12440.0 22905735.1 18413.0
Pipe-based Context Switching 4000.0 1014046.2 2535.1
Process Creation 126.0 9668.5 767.3
Shell Scripts (1 concurrent) 42.4 47477.2 11197.5
Shell Scripts (8 concurrent) 6.0 5805.0 9675.1
System Call Overhead 15000.0 30262330.2 20174.9
========
System Benchmarks Index Score 11979.8

5. Benchmark Results & Performance Comparison

I've used the above process to run the benchmark on all the RISCV SBCs mentioned in start of this blog. Here are the final scores for single/multi core.

5.1 Single Core

Single core results for UnixBench are attached in below.

Multi Core

Multi core results for UnixBench are attached in below.

6. Overall Results and Conclusion

The Milk-V Pioneer Box stands out among your tested RISC-V single-board computers—not just marginally, but by an order of magnitude in multi-core performance. Its superior architecture, memory bandwidth, and workstation-grade I/O make it uniquely capable of scaling across many cores effectively. If your workloads can harness parallelism, it’s the clear winner.

7. Appendices & Artifacts

UnixBench GitHub

Akif Ejaz 11 August, 2025
Share this post
Archive

Benchmarking RISCV SBCs with CoreMark (Single/Multi Core)
By Akif Ejaz | 8 Aug, 2025