FAQ
What are the run rules and allowances for CoreMark-PRO?
Base run rules:
- Each workload must run for at least 1000 times the minimum timer resolution. For example, on a 10 ms timer tick based system, each workload must run for at least 10 s.
- To report results, the build target "certify" must be used or that process must be followed. Each workload must report no errors when run with -v1.
- All workloads within CoreMark-PRO must be compiled with the same flags and linked with the same flags. These must be disclosed and/or reported with any publication of CoreMark-PRO scores.
Base run rule allowances:
- Profile guided optimizations are allowed on base run; if used, they must be used for all workloads.
- You may change the number of iterations.
- You may change toolchain and build/load/run options.
- You may change the implementation of porting files under mith/al sub tree.
- You may change makefiles or using IDE projects.
Base run rule restrictions:
- You cannot change the source file under benchmarks or workloads folders.
May optimized (“full fury”) scores be published?
“Full fury” scores may be published or disclosed only by EEMBC members following certification of results by EEMBC Technology Center (a free service for EEMBC members).
What is the format for reporting results?
- CoreMark-PRO 1.0.x : N / C [/ P] [/ M]
- Example: CoreMark-PRO 1.0.x : 128 / GCC 4.1.2 -O2 / 2 or CoreMark-PRO 1.0.x : 1400 / GCC 3.4 -O4
What if I don't have hardware floating-point?
You can use the provided software floating-point emulation, but it will be slow.
What is the run-time of CoreMark-PRO?
It might seem like the subtests are so short that the cores are able to run entirely at the burst frequency. It also might imply that you are not intending to measure workloads with sustained execution (and will therefore throttle for smartphones/tablets). However, the score of subtests is measured in iterations/s (BW) and a user may choose the number of iterations. With CoreMark-PRO inside AndEBench™-PRO, the iterations were set such that each workload runs for 2s on a reference device. The requirement is not on run time as such, but on the accuracy required from the timing mechanism.