| Latest: www.spec.org/cpu2026/Docs/ |
Contents
1. Review Prerequisites
2. Test Android Debug Bridge (adb)
3. Install the SPEC CPU 2026 benchmark suite on the host development machine
4. Build the SPEC CPU 2026 Android binaries on the host development machine
5. Copy the SPEC CPU 2026 software to the target Android device
6. Install the SPEC CPU 2026 benchmark suite on the target Android device
7. Run the SPEC CPU 2026 benchmark suite on the target Android device
This document describes how to install and run SPEC CPU®2026 benchmark suite on Android systems. SPEC CPU 2026 benchmark is a product of the SPEC® non-profit corporation (about SPEC).
Reminder: SPEC benchmarks are licensed software.
Two different systems are required:
Android Debug Bridge is required (see Test Android Debug Bridge section).
Review the System Requirements for the SUT. Please particularly notice the requirements for:
As of early 2026, Android devices with 16 GB of memory and 128 GB of storage are able to run the SPEC CPU 2026 intrate suite with 1 or more copies.
Android Debug Bridge (adb) is required.
devhost ~ % apt-get install adb
On the target Android device, enable adb - click in developer options, enable USB debugging
Physically connect the host development machine and the target Android device, for example via USB.
Test adb
devhost ~ % adb devices * daemon not running; starting now at tcp:5037 * daemon started successfully List of devices attached DEVICEID
On the host development machine, open a remote shell on the target Android device
devhost ~ % adb shell DEVICENAME $ # NOW YOU ARE EXECUTING COMMANDS ON THE TARGET ANDROID DEVICE DEVICENAME $ ls
See the install guide for Linux/Unix: install-guide-unix.html
Download Android NDK on the host development machine: https://developer.android.com/ndk
This install guide assumes that the host development machine is an x86 Linux machine.
On the host development machine, copy the example config file. Search it for all instances of "EDIT" and adjust as needed. In particular please take note and consider adjusting:
devhost ~/cpu2026 % cd config devhost ~/cpu2026/config % cp Example-android-ndk-aarch64.cfg android-ndk-aarch64.cfg devhost ~/cpu2026/config % vi android-ndk-aarch64.cfg # Search for all lines marked EDIT
devhost ~/cpu2026 % source shrc devhost ~/cpu2026 % runcpu --action=build --config=android-ndk-aarch64 --tune=base intrate
SPEC CPU 2026 Benchmark Suites
Copyright 1995-2026 Standard Performance Evaluation Corporation (SPEC)
runcpu (020914af)
Using 'linux-x86_64' tools
Loading runcpu modules.................
Locating benchmarks...found 54 benchmarks in 82 benchsets.
Reading config file '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1/config/android-ndk-aarch64.cfg'
Running "specperl /home/ajay/SPEC/CPUv8/cpu2026-0.902.1/bin/sysinfo -f" to gather system information.
sysinfo: sysinfo 069f95da7e7f5d81b2ce48a82150e54f
sysinfo: ...getting basic information about kernel, users, and limits
sysinfo: Getting system information for Linux...
sysinfo: ...getting CPU info
sysinfo: ...getting info from numactl
sysinfo: ...getting memory info
sysinfo: ...getting info from systemd
sysinfo: ...getting power info
sysinfo: ...getting system tuning info
sysinfo: ...getting OS info
sysinfo: ...getting disk info
sysinfo: ...getting info from /sys/devices/virtual/dmi/id
sysinfo: ...getting info from dmidecode
Retrieving flags file (/home/ajay/SPEC/CPUv8/cpu2026-0.902.1/config/flags/llvm.xml)...
1 configuration selected:
Action Benchmarks
------ ----------------------------------------------------------------------
build intrate
-------------------------------------------------------------------------------
Benchmarks selected: 706.stockfish_r, 707.ntest_r, 708.sqlite_r, 710.omnetpp_r, 714.cpython_r, 721.gcc_r, 723.llvm_r, 727.cppcheck_r, 729.abc_r, 734.vpr_r, 735.gem5_r, 750.sealcrypto_r, 753.ns3_r, 777.zstd_r, 999.specrand_r
Compiling Binaries
Building 706.stockfish_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:52:20]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/706.stockfish_r/build/build_base_android-ndk.0000' after successful build of 706.stockfish_r base android-ndk
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/706.stockfish_r/build/build_base_android-ndk.0000' after successful build of 706.stockfish_r base android-ndk
Building 707.ntest_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:52:25]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/707.ntest_r/build/build_base_android-ndk.0000' after successful build of 707.ntest_r base android-ndk
Building 708.sqlite_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:52:30]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/708.sqlite_r/build/build_base_android-ndk.0000' after successful build of 708.sqlite_r base android-ndk
Building 710.omnetpp_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:52:47]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/710.omnetpp_r/build/build_base_android-ndk.0000' after successful build of 710.omnetpp_r base android-ndk
Building 714.cpython_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:53:35]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/714.cpython_r/build/build_base_android-ndk.0000' after successful build of 714.cpython_r base android-ndk
Building 721.gcc_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:54:11]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/721.gcc_r/build/build_base_android-ndk.0000' after successful build of 721.gcc_r base android-ndk
Building 723.llvm_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 16:59:21]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/723.llvm_r/build/build_base_android-ndk.0000' after successful build of 723.llvm_r base android-ndk
Building 727.cppcheck_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:11:05]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/727.cppcheck_r/build/build_base_android-ndk.0000' after successful build of 727.cppcheck_r base android-ndk
Building 729.abc_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:14:15]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/729.abc_r/build/build_base_android-ndk.0000' after successful build of 729.abc_r base android-ndk
Building 734.vpr_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:16:19]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/734.vpr_r/build/build_base_android-ndk.0000' after successful build of 734.vpr_r base android-ndk
Building 735.gem5_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:17:52]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/735.gem5_r/build/build_base_android-ndk.0000' after successful build of735.gem5_r base android-ndk
Building 750.sealcrypto_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:23:28]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/750.sealcrypto_r/build/build_base_android-ndk.0000' after successful build of 750.sealcrypto_r base android-ndk
Building 753.ns3_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:23:37]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/753.ns3_r/build/build_base_android-ndk.0000' after successful build of 753.ns3_r base android-ndk
Building 777.zstd_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:28:09]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/777.zstd_r/build/build_base_android-ndk.0000' after successful build of 777.zstd_r base android-ndk
Building 999.specrand_r base android-ndk: (build_base_android-ndk.0000) [2026-02-17 17:28:14]
Clearing directory '/home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/benchspec/CPU/999.specrand_r/build/build_base_android-ndk.0000' after successful build of 999.specrand_r base android-ndk
Build successes for fprate: 706.stockfish_r(base), 707.ntest_r(base), 708.sqlite_r(base), 710.omnetpp_r(base), 714.cpython_r(base), 721.gcc_r(base), 723.llvm_r(base), 727.cppcheck_r(base), 729.abc_r(base), 734.vpr_r(base), 735.gem5_r(base), 750.sealcrypto_r(base), 753.ns3_r(base), 777.zstd_r(base), 999.specrand_r(base)
Build errors for fprate: None
Build Complete
The log for this run is in /home/ajay/SPEC/CPUv8/cpu2026-0.902.1-android-ndk/result/CPU2026.001.log
runcpu finished at 2026-02-17 17:28:17; 2160 total seconds elapsed
Check the content of the output_root directory named cpu2026-android-ndk on the host development machine:
The SPEC CPU 2026 benchmark suite can be installed from a tar file, as described in Appendix 2 of the Unix installation guide. That tar file will be used for the installation on the Android device.
devhost ~ % adb shell DEVICENAME $ mkdir -p /data/local/tmp/spec
On the host development machine, find your copy of the SPEC CPU 2026 tar file from your ISO image. For example, if you have mounted the ISO image at /mnt/ then you should find it at /mnt/install_archives/cpu2026.tar.xz.
devhost ~ % cd /mnt devhost /mnt % adb push install_archives/cpu2026.tar.xz /data/local/tmp/spec/
devhost /mnt % adb push tools/bin/linux-aarch64-static/specxz /data/local/tmp/spec/
devhost ~ % adb shell DEVICENAME $ ls /data/local/tmp/spec cpu2026.tar.xz specxz
devhost ~ % adb shell
DEVICENAME $ cd /data/local/tmp/spec
DEVICENAME:/data/local/tmp/spec $
DEVICENAME:/data/local/tmp/spec $ chmod u+x specxz
DEVICENAME:/data/local/tmp/spec $ mkdir cpu2026
DEVICENAME:/data/local/tmp/spec $ cd cpu2026
DEVICENAME:/data/local/tmp/spec $ ../specxz -dc ../cpu2026.tar.xz | tar xf -
DEVICENAME:/data/local/tmp/spec/cpu2026 $ ./install.sh -u linux-aarch64-static
Note: The toolset must be explicitly named. Running install.sh in auto mode will not find the Android-compatible tools.
DEVICENAME:/data/local/tmp/spec/cpu2026 $ source shrc
DEVICENAME:/data/local/tmp/spec/cpu2026 $ runcpu -V
devhost ~ % adb push cpu2026-android-ndk /data/local/tmp/spec/
devhost ~ % adb push cpu2026/config/android-ndk-aarch64.cfg /data/local/tmp/spec/cpu2026/config/
DEVICENAME:/data/local/tmp/spec/cpu2026 $ source shrc DEVICENAME:/data/local/tmp/spec/cpu2026 $ runcpu --nobuild --config=android-ndk-aarch64 --copies=1 intrateNotice above that it is suggested that you specify --nobuild because that will ensure that the runcpu command will exit immediately if it does not find your benchmark binaries. If that happens, check your paths and verify that the binaries are located where the config file expects to find them. For example, if the config file specifies output_root=X, then directories of the form X/benchspec/CPU/nnn.benchmark/exe/ should contain your binaries.
Installing SPEC CPU®2026 on Android Systems: Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)