Benchmark Suite

MediaTek provides a benchmark suite consisting of popular benchmarks to allow customers to measure performance of MediaTek AIoT platforms. Those tools are publicly available and can be downloaded from 3rd-party websites. MediaTek collects those tools and create a bundle for convenience of building and running.

The benchmark suite can be ported to other platforms (e.g. x86), though the topic is not covered in this document.

The following sections will describe how to build and run benchmarks.

Note

Application SDK needs to be installed for building the benchmarks. For more information, please refer to Generate Application SDK Installer.

Building benchmark suite

The benchmark suite can be downloaded by running the command:

git clone https://gitlab.com/mediatek/aiot/bsp/benchmark_suite.git

Note

You might need to input your user name and access token if necessary.

After downloading the suite, change working folder to benchmark_suite and edit common file to fit your building environment. Following are variables that can be adjusted:

  • CFLAGS: The C compiler flags.

  • CXXFLAGS: The C++ compiler flags.

  • NUM_CORES: The number of CPU cores of target system. Note it might not be the same as the host system.

After editing, run the commands to build benchmarks (assuming application SDK is installed in the default path):

source /opt/rity-demo/21.3-dev/environment-setup-aarch64-poky-linux
./build.sh

After building is completed, the binaries are stored under the newly created folder _build/benchmark_aarch64. We can pack the suite as a tarball for distribution:

cd _build
tar zcf benchmark.tar.gz benchmark_aarch64

Running benchmark suite

To get realistic results, we need to make sure the target system is running in performance mode:

# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# echo performance > /sys/devices/platform/soc/13040000.mali/devfreq/13040000.mali/governor

Note

The sysfs paths for modifying CPU/GPU governors might be different among platforms. Please read related documents for correct paths.

Download benchmark suite tarball to the target system and run the benchmarks:

# tar zxf benchmark.tar.gz && cd benchmark_aarch64
# ./run.sh

The output should look like this:

Coremark 26097.27 iter/sec
Coremark 3.26 score/MHz
Dhrystone 5192.99 DMIPS
Dhrystone 2.59 DMIPS/MHz
c-ray 557 milliseconds
STREAM 4246.40 MB/s
LMBench_L1 1.500 ns
LMBench_L2 4.023 ns
Whetstone 2453.92 MWIPS
Memset 5.87 GB/sec
Memcpy 2.07 GB/sec
glmark2 463

Note

The result listed above is merely an example. The users should run the benchmark on their own environments for evaluation.