Skip to content
The main Embench repository
Makefile C Shell M4
Branch: master
Clone or download
jeremybennett Clean up a couple of annoyances
ChangeLog:

	* INSTALL: Change to reference doc/README.adoc
	* NEWS: Replace BEEBS content with Embench content.
Latest commit 57ed6d1 Jun 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Fix LTO problems in the build system. Jun 8, 2019
doc Fix LTO problems in the build system. Jun 8, 2019
m4
src
support Fix LTO problems in the build system. Jun 8, 2019
testsuite
.gitignore
AUTHORS Initial commit of the new repository. Jun 6, 2019
COPYING Initial commit of the new repository. Jun 6, 2019
ChangeLog
INSTALL Clean up a couple of annoyances Jun 13, 2019
Makefile.am Initial commit of the new repository. Jun 6, 2019
Makefile.in Fix LTO problems in the build system. Jun 8, 2019
NEWS Clean up a couple of annoyances Jun 13, 2019
README
README.md Initial commit of the new repository. Jun 6, 2019
aclocal.m4 Initial commit of the new repository. Jun 6, 2019
compile Initial commit of the new repository. Jun 6, 2019
config.guess Initial commit of the new repository. Jun 6, 2019
config.h.in Initial commit of the new repository. Jun 6, 2019
config.sub Initial commit of the new repository. Jun 6, 2019
configure
configure.ac Fix LTO problems in the build system. Jun 8, 2019
depcomp
install-sh Initial commit of the new repository. Jun 6, 2019
ltmain.sh
missing Initial commit of the new repository. Jun 6, 2019

README.md

Embench: Open Benchmarks for Embedded Platforms

This repository contains the Embench free and open source benchmark suite. These benchmarks are designed to test the performance of deeply embedded systems. As such they assume the presence of no OS, minimal C library support and in particular no output stream.

The rationale behind this benchmark is described in "Embench™: An Evolving Benchmark Suite for Embedded IoT Computers from an Academic-Industrial Cooperative: Towards the Long Overdue and Deserved Demise of Dhrystone" by David Patterson, Jeremy Bennett, Palmer Dabbelt, Cesare Garlati, G. S. Madhusudan and Trevor Mudge (see https://tmt.knect365.com/risc-v-workshop-zurich/agenda/2#software_embench-tm-a-free-benchmark-suite-for-embedded-computing-from-an-academic-industry-cooperative-towards-the-long-overdue-and-deserved-demise-of-dhrystone).

The benchmarks are largely derived from the Bristol/Embecosm Embedded Benchmark Suite (BEEBS, see http://beebs.eu), which in turn draws its material from various earlier projects. A full description and user manual is in the doc directory.

Using the benchmarks

The benchmarks can be used to yield a single consistent score for the performance of a platform and its compiler tool chain. The mechanism for this is described in the user manual.

  • The benchmarks should all compile to fit in 64kB of program space and use no more than 16kB of RAM.

  • The measurement of execution performance is designed to use "hot" caches. Thus each benchmark executes its entire code several times, before starting a timing run.

  • Execution runs are scaled to take approximately 4 second of CPU time. This is large enough to be accurately measured, yet means all 19 benchmarks, including cache warm up can be run in a few minutes.

  • To facilitate execution on machines of different performance, the tests are scaled by the clock speed of the processor.

  • The benchmarks are designed to be run on either real or simulated hardware. However for meaningful execution performance results any simulated hardware must be strictly cycle accurate.

Structure of the repository

The top level directory contains the scripts to build and execute the benchmarks. The current version uses GNU Autotools to build the benhmarks and DejaGnu to run them. This will be replaced by Python scripts for platform portability in a future release. The following are the key top level directories.

  • config: containing a directory for each architecture supported, and within that directory subdirectories for board and cpu descriptions. Configuation data can be provided for individual CPUs and individual boards.

  • doc: The user manual for Embench.

  • src: The source for the benchmarks, one directory per benchmark.

  • support: The generic wrapper code for benchmarks, including substitutes for some library and emulation functions.

  • testsuite: The DejanGnu scripts to run the benchmarks

Licensing

Embench is licensed under the GNU General Public License version 3 (GPL3). See the COPYING file for details. Some individual benchmarks are also available under different licenses. See the comments in the individual source files for details.

The code base is OpenChain compliant, with SPDX license identifiers provided throughout.

You can’t perform that action at this time.