Giter Site home page Giter Site logo

yxd97 / embench-iot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from embench/embench-iot

0.0 0.0 0.0 800 KB

The main Embench repository

Home Page: https://www.embench.org/

License: GNU General Public License v3.0

Python 16.49% C 79.96% Assembly 3.55%

embench-iot's Introduction

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 https://beebs.mageec.org/), which in turn draws its material from various earlier projects. A full description and user manual is in the doc directory.

Stable benchmark versions

The following git tags may be used to select the version of the repository for a stable release.

  • embench-0.5
  • embench-1.0

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 64kB of RAM

    • Note. An earlier version tried to limit RAM to 16kB, but this proved too restrictive.
  • 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 Python scripts to build and execute the benchmarks. 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.

    • Note. The structure of the config directory is proving overly complex, yet inflexible. It is likely it will be flattened in a future release of the scripts.
  • 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.

  • pylib: Support code for the python scripts

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.

embench-iot's People

Contributors

jeremybennett avatar roger-shepherd avatar paolos02 avatar davidharrishmc avatar juliankunkel avatar yxd97 avatar dtowersm avatar luismarques avatar nidalf avatar olofk avatar sobuch avatar edward-jones avatar hirooih avatar kohnakagawa avatar antonblanchard avatar claziss avatar 3rror avatar i-mikan-i avatar lhtin avatar lyellread avatar olajep avatar simonpcook avatar eosea avatar jmonesti avatar kenta2 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.