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.
Application SDK needs to be installed for building the benchmarks. For more information, please refer to Generate Application SDK Installer.
The benchmark suite can be downloaded by running the command:
git clone https://gitlab.com/mediatek/aiot/bsp/benchmark_suite.git
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
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
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
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
The result listed above is merely an example. The users should run the benchmark on their own environments for evaluation.