3 CoreMark-PRO

CoreMark-PRO is a comprehensive, advanced processor benchmark working with CoreMark. When a CoreMark stresses the CPU pipeline, CoreMark-PRO tests the entire processor and memory subsystem, adding support for the following:

  • Multi-core and a combination of integer
  • Floating-point workloads
  • Data sets for using larger memory subsystems

Data sets, depending on the task, ranging from 42 kB to 3 MB, stresses the multi-core devices that the code can launch multiple threads, with parallelism in the workload.

The CoreMark-PRO contains five integer workloads and four popular floating-point workloads. The integer workloads include JPEG compression, ZIP compression, an XML parser, the SHA-256 Secure Hash Algorithm (SHA), and a more memory-intensive version of the original CoreMark. The floating-point workloads include a Fast Fourier Transform (FFT), a linear algebra routine derived from LINPACK, a greatly improved version of the Livermore loops benchmark, and a neural net algorithm to evaluate patterns.

The CoreMark-PRO execution utilizes the MultiBench comprehensive suite to evaluate the performance of PolarFire SoC device. The MultiBench comprehensive suite utilizes Multi Instance Test Harness (MITH), which provides a framework to coordinate scalability analysis. The MultiBench framework evaluates the performance of scalability, Single-core, Multi-core, memory bandwidth, OS scheduling support, and compiler benchmarking.

For more information about CoreMark-PRO, see EEMBC.

CoreMark-PRO on Linux

To execute the CoreMark-PRO on Linux platform for optimal benchmarking results on PolarFire SoC Icicle kit, run each workload with single/multi workers, configure the number of workers to get the better scaling for each workload. These values are obtained by passing workloads using XCMD flags as XCMD='-c4 -w4 -v1 -i4 ' to the make command, which in turn utilizes the Perl script to get the values as listed in Table 3-1.

Results

The following table lists the CoreMark-PRO benchmarking results using four application U54 cores with L2 cache size configured to 1.5 MB. CoreMark-PRO provides a score (Iterations/Sec) for Multi-core and Single-core with a scaling factor. The scaling factor depends on the workload. For more information about the workloads and scaling factor, see EEMBC CoreMark-PRO User Guide.

Table 3-1. CoreMark-PRO Benchmarking Results on Linux
WorkloadMulti-Core (Iterations/sec)Single-core (Iterations/sec)Scaling
core0.350.093.89
loops-all-mid-10K-sp0.650.203.25
nnet_test0.930.283.32
parser-125k8.472.343.62
zip-test21.745.993.63
linear_alg-mid-100x100-sp18.664.853.85
sha-test 26.538.003.32
radix2-big-64k 42.9320.482.10
cjpeg-rose7-preset47.1712.213.86
Results802.42237.683.38

The following figure shows the CoreMark-PRO execution.

Figure 3-1. CoreMark-PRO Execution

The following figure shows the representation of CoreMark-PRO benchmarking results.

Figure 3-2. Comparison Between Mutli-core and Single-core