CoreMark™-PRO

An EEMBC Benchmark Suite
About · FAQ · Download · Scores · Submit Score

About CoreMark®-PRO

CoreMark-PRO is a comprehensive, advanced processor benchmark that works with and enhances the market-proven industry-standard EEMBC CoreMark® benchmark. While CoreMark stresses the CPU pipeline, CoreMark-Pro tests the entire processor, adding comprehensive support for multicore technology, a combination of integer and floating-point workloads, and data sets for utilizing larger memory subsystems. Together, EEMBC CoreMark and CoreMark-PRO provide a standard benchmark covering the spectrum from low-end microcontrollers to high-performance computing processors.

More details about the workloads can be found in the CoreMark-PRO GitHub repository.

Porting Guides

An application note explaining how to port CoreMark-PRO to bare-metal (no operating system) can be found here.

We've also created a tutorial video on YouTube with examples for Linux and an STM32 device. Please view in HD (720p or 1080p) since the video contains a lot of small text.

Comparing CoreMark and CoreMark-PRO

The EEMBC CoreMark-PRO benchmark contains five prevalent 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, 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.

Together, the workloads in CoreMark-Pro represent a wide diversity of performance characteristics, memory utilization, and instruction-level parallelism. This benchmark is guaranteed to highlight the strengths — and weaknesses — of any processor.

Comparison Table

CoreMarkCoreMark-PRO
Designed to run on devices from 8-bit microcontrollers to 64-bit microprocessorsTargets 32-bit to 64-bit microprocessors
Free version onlyCommercial licensing available
Self-verificationSelf-verification
Open score submission to EEMBC websiteOpen score submission to EEMBC website
One integer workload with 4 functions5 integer and 4 floating-point workloads
Small (2k code, 16k data)Robust (42k code, 3MB data per context)
Targets processor coreTargets processor and memory subsystems
Limited multicore supportExpanded multicore support

More Information

More information, including a User Guide, can be found in the source code repository from the download area. Individual datasheets are located in the benchmarks folder.

Copyright © EEMBC