CPU Performance Test
Test Description
This test uses the Coremark tool for testing. The source code and compiled software are located in the 10-cpu_performance directory. CoreMark is a benchmark test program that mainly aims to test the performance of processor cores. The standard testing method of CoreMark is to run the CoreMark program multiple times within a unit of time under certain configuration parameters, and the industry score is presented as Coremark / CPU clock Mhz / Core num, that is, coremark runs per second / cpu clock frequency / number of cpu cores, resulting in a final score.
Test Method
- Unzip
coremark-main.zipand enter thecoremark-mainfolder. - Execute
./coremark_single 0x0 0x0 0x66 0 7 1 2000 > ./run1.log, wait for the program to finish; execute./coremark_multi 0x0 0x0 0x66 0 7 1 2000 > ./run2.log, wait for the program to finish. - Check the single core test score in
run1.log, as follows:
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 20830
Total time (secs): 20.830000
Iterations/Sec : 5280.844935
Iterations : 110000
Compiler version : GCC6.5.0
Compiler flags : -O3 -funroll-all-loops -static --param max-inline-insns-auto=550 -DPERFORMANCE_RUN=1 -lrt
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x33ff
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 5280.844935 / GCC6.5.0 -O3 -funroll-all-loops -static --param max-inline-insns-auto=550 -DPERFORMANCE_RUN=1 -lrt / Heap
Note the column Iterations/Sec, which indicates how many iterations per second, which is the coremark score in the formula above.
According to the formula, the single-core score for this x3 is 5280.844935 / 1200 (default frequency) / 1 = 4.400, which falls within the normal range.
The multi-core score is saved in ./run2.log. The calculation of the multi-core score is similar to that of the single-core score and is not repeated here.
Test Metrics
- Single core score X > 4.2
- Quad-core score X > 4.2
AppendixThe cross-compilation process for coremark is as follows:
- Go to the
coremark-maindirectory and replace theCCcompiler path inaarch64/core_portme.makwith your owngccpath for cross-compilation. - Execute
make PORT_DIR=aarch64 XCFLAGS="-O3 -funroll-all-loops -static --param max-inline-insns-auto=550 -DPERFORMANCE_RUN=1" REBUILD=1 run1.logto compile the single-core test program; executemake PORT_DIR=aarch64 XCFLAGS="-O3 -funroll-all-loops -static --param max-inline-insns-auto=550 -DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_PTHREAD -pthread" REBUILD=1 run1.logto compile the 4-core test program, where the-DMULTITHREAD=parameter controls the number of cores for the test program.