ULPMark-CoreMark is EEMBC's first active-power embedded benchmark. ULPMark-CoreProfile and ULPMark-PeripheralProfile both focus on sleepy-node energy efficiency which often illustrates the true cost of low-power not captured by a datasheet. On the flip-side of sleep power is active power: how much power does a low-power device use while doing useful work? Often designers must choose between energy efficiency and performance. This tradeoff isn't always clear, so ULPMark-CM enables this analysis by providing both measurements simultaneously. The ULPMark-CM score is the number of CoreMark iterations a device can execute per milli-Joule. This number, when presented with the CoreMark iterations-per-second score, illustrates how the two opposing metrics are related.
There are three components to every ULPMark-CM configuration: The ULPMark-CM energy-efficiency score, the voltage the score was collected at, and its CoreMark performance score. This triad of numbers succinctly defines an operating point on a performance-versus-energy curve. The benchmark defines three operating-point configurations that the developer must accommodate:
Unlike the original CoreMark performance benchmark that had a single instance of the functions, inside ULPMark-CM the developer provides multiple versions of the CoreMark library, each one optimized for different hardware conditions. This is very different from CoreMark, where the firmware operated at one voltage and frequency. The new ULPMark-CM firmware also allows the developer to provide extensive hardware reconfiguration during the benchmark, without having to disconnect the device or flash new firmware between measurements.
The host GUI supports a "Benchmark Mode", where the user measures the three operating points mentioned above and submit those scores to the EEMBC website, or in "Experiment Mode", where the user may explore any additional configurations supplied by the developer.
In order to run the benchmark and submit scores, you must obtain a license.