Use this script to compare the performance of arm64 emulation on x86 versus arm64 virtualization on arm64 hosts, for example Ampere Altra and AmpereOne. CoreMark arm64 in QEMU on x86 and arm64 hosts is a good indication of the relative performance you might expect on your hardware when doing arm64 software development and testing using QEMU or other open source and commercial arm SoC emulation and virtualization solutions including "Arm Virtual Hardware". This script runs PTS CoreMark arm64 test in as many 4 core QEMU arm64 instances as your x86 and arm64 host will support. CoreMark is a widely used measure of SoC performance especially automotive ECUs.
x86 or arm64 Ubuntu 22.04 or 24.04.
It should run on other distros and architectures (POWER, RISCV64, LOONGSON etc.) but we've not tested those.
In these examples, $
represents the command prompt.
Check the group permissions for /dev/kvm :
$ ls -l /dev/kvm
crw-rw----+ 1 root kvm 10, 232 Nov 25 17:11 /dev/kvm
Check if your user is in the group:
$ groups
system76 adm cdrom sudo dip plugdev users lpadmin
If not, update the user. e.g.:
$ sudo usermod -a -G kvm $USER
To apply the changes, either logout and login again, or run:
$ newgrp kvm
./build_qemu.sh
./launch_qemu.sh
Run PTS / coremark on each instance. Argument 1 is the number of times you want to run CoreMark on each QEMU. Default Value is 1
./run_pts.sh <count>
Example - it will report the output as follow -
$ ./run_pts.sh 2
23 instances of pts/coremark running in parallel in arm64 VMs!
Round 1 - Total CoreMark Score is: 1937195
Round 2 - Total CoreMark Score is: 1940554
To stop / kill QEMU instances
./stop_qemu.sh
Due to the level of automation you will not see prompts for software installed as part of a benchmark run. Therefore you must accept the license of each of the benchmarks individually, and take responsibility for using them before you use the qemu-coremark.
In its current release these are the benchmarks that are executed and their associated license terms:
phoronix-test-suite
: GPLv3
coremark
: Apache v2
Relative performance of software testing on virtual and emulated arm SoCs using qemu-coremark.
Number of Parallel Instances | Hardware | CoreMark Result |
---|---|---|
47 | arm64 Virtual SoCs on System76 Starling Pro AmpereOne 192 core | 4,640,882 |
31 | arm64 Virtual SoCs on System76 Thelio Astra arm64 developer desktop 128 core | 2,693,758 |
47 | arm64 Emulated SoCs on AMD EPYC Genoa 9654 | 512,244 |