Difference between revisions of "Benchmarking: Coremark"

From Define Wiki
Jump to navigation Jump to search
Line 26: Line 26:
 
root@jph1:~/coremark_v1.0# make
 
root@jph1:~/coremark_v1.0# make
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Faster systems ===
 
If you have a fast system (faster than a RaspberryPi), increase the number of iterations to increase the test run to give a more meaningful result:
 
If you have a fast system (faster than a RaspberryPi), increase the number of iterations to increase the test run to give a more meaningful result:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
root@jph1:~/coremark_v1.0# make ITERATIONS=10000
 
root@jph1:~/coremark_v1.0# make ITERATIONS=10000
 +
</syntaxhighlight>
 +
 +
=== 32-bit ARM systems ===
 +
Coremark seems to have an issue when not running in a linux64 environment (e.g. 32-bit ARM). Add a flag to the <code>make</code> command:
 +
<syntaxhighlight>
 +
root@jph1:~/coremark_v1.0# make PORT_DIR=simple
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Revision as of 15:20, 1 April 2014

Decompress

root@jph1:~# tar zxvf coremark_v1.0
cd coremark_v1.0

Adjust compilation flags

Seems to be in ./linux64/core_portme.mak

  • Change PORT_CFLAGS value to -O3
  • Add extra flags to the end of the CFLAGS statement

For example (added -funroll-all-loops --param max-inline-insns-auto=200):

CC = gcc
# Flag: CFLAGS
#       Use this flag to define compiler options. Note, you can add compiler options from the command line using XCFLAGS="other flags"
PORT_CFLAGS = -O3
FLAGS_STR = "$(PORT_CFLAGS) $(XCFLAGS) $(XLFLAGS) $(LFLAGS_END)"
CFLAGS = $(PORT_CFLAGS) -I$(PORT_DIR) -I. -DFLAGS_STR=\"$(FLAGS_STR)\" -funroll-all-loops --param max-inline-insns-auto=200

Run benchmark (single thread)

Run benchmark with make:

root@jph1:~/coremark_v1.0# pwd
/root/coremark_v1.0
root@jph1:~/coremark_v1.0# make

Faster systems

If you have a fast system (faster than a RaspberryPi), increase the number of iterations to increase the test run to give a more meaningful result:

root@jph1:~/coremark_v1.0# make ITERATIONS=10000

32-bit ARM systems

Coremark seems to have an issue when not running in a linux64 environment (e.g. 32-bit ARM). Add a flag to the make command:

root@jph1:~/coremark_v1.0# make PORT_DIR=simple

Run benchmark (multi thread)

root@jph1:~/coremark_v1.0# make XCFLAGS="-DMULTITHREAD=8 -DUSE_PTHREAD"

Results

Coremark V1.0 results
CPU Freq Cores Coremark Coremark/MHz Coremark/Core Parallel Execution Compile Flags
MIPS
Cavium Octeon II CN6880 2.50GHz 10 25671 10.268 2567 1 Thread
Cavium Octeon II CN6880 2.50GHz 10 31172 12.468 3117 1 Thread -O3 -funroll-all-loops --param max-inline-insns-auto=200