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.
Workload | Multi-Core (Iterations/sec) | Single-core (Iterations/sec) | Scaling |
---|---|---|---|
core | 0.35 | 0.09 | 3.89 |
loops-all-mid-10K-sp | 0.65 | 0.20 | 3.25 |
nnet_test | 0.93 | 0.28 | 3.32 |
parser-125k | 8.47 | 2.34 | 3.62 |
zip-test | 21.74 | 5.99 | 3.63 |
linear_alg-mid-100x100-sp | 18.66 | 4.85 | 3.85 |
sha-test | 26.53 | 8.00 | 3.32 |
radix2-big-64k | 42.93 | 20.48 | 2.10 |
cjpeg-rose7-preset | 47.17 | 12.21 | 3.86 |
Results | 802.42 | 237.68 | 3.38 |
The following figure shows the CoreMark-PRO execution.
The following figure shows the representation of CoreMark-PRO benchmarking results.