Industry-Standard Benchmarks for Embedded Systems
EEMBC, an industry alliance, develops benchmarks to help system designers select the optimal processors and understand the performance and energy characteristics of their systems. EEMBC has benchmark suites targeting cloud and big data, mobile devices (for phones and tablets), networking, ultra-low power microcontrollers, the Internet of Things (IoT), digital media, automotive, and other application areas. EEMBC also has benchmarks for general-purpose performance analysis including CoreMark, MultiBench (multicore), and FPMark (floating-point).

ULPBench™ Run Rules

  • ULPBench must be ported to the device under test. For information on porting, see examples under the Platforms folder in the source code distribution. Pay careful attention to the sections of ULPBench that can be modified for porting, and for Core Profile, avoid changing any code not under the platforms folder.
  • The device under test must be powered by the Energy Monitor hardware as the benchmark is running to generate a valid result. For best results, ensure that only the DUT energy is being measured.
  • Ambient temperature during execution must be higher than 21°C / 70°F.
  • Wakeup timer accuracy must be appropriate to the profile. For Core Profile, once per second, based on external 32KHz crystal with accuracy of 50ppm or better.
  • For crystal-less testing (internal oscillator), provide instructions explaining how to calibrate the timer by modifying the firmware. This is required for certification so that the EEMBC Certification Lab can properly reproduce the submitted results.
  • The submission form now requires that the submitter provide both the .bin image of the firmware and the source code port as part of the upload.
  • I/O indicators must provide the output appropriate to the profile. For Core Profile, refer to the documentation, the image below is an actual capture of the I/O indicator during active cycle.