diff options
-rw-r--r-- | Readme.md | 6 | ||||
-rw-r--r-- | docs/quick_start.md | 5 | ||||
-rw-r--r-- | docs/sections/building.md | 6 | ||||
-rw-r--r-- | docs/sections/faq.md | 8 | ||||
-rw-r--r-- | source/application/api/common/readme.md | 15 | ||||
-rw-r--r-- | source/application/api/use_case/readme.md | 11 | ||||
-rw-r--r-- | source/hal/readme.md | 7 | ||||
-rw-r--r-- | source/hal/source/components/readme.md | 5 | ||||
-rw-r--r-- | source/hal/source/platform/mps3/readme.md | 3 | ||||
-rw-r--r-- | source/hal/source/platform/native/readme.md | 3 | ||||
-rw-r--r-- | source/hal/source/platform/simple/readme.md | 3 | ||||
-rw-r--r-- | source/log/readme.md | 4 | ||||
-rw-r--r-- | source/math/readme.md | 6 | ||||
-rw-r--r-- | source/profiler/readme.md | 7 | ||||
-rw-r--r-- | source/readme.md | 4 | ||||
-rw-r--r-- | source/use_case/readme.md | 5 |
16 files changed, 94 insertions, 4 deletions
@@ -127,7 +127,7 @@ For more details see full documentation: - [Arm® ML embedded evaluation kit](./docs/documentation.md#arm_ml-embedded-evaluation-kit) - [Table of Content](./docs/documentation.md#table-of-content) - [Trademarks](./docs/documentation.md#trademarks) - - [Prerequisites](./docs/documentation.md#prerequisites) + - **[Prerequisites](./docs/documentation.md#prerequisites)** - [Additional reading](./docs/documentation.md#additional-reading) - [Repository structure](./docs/documentation.md#repository-structure) - [Models and resources](./docs/documentation.md#models-and-resources) @@ -136,9 +136,9 @@ For more details see full documentation: - [Running code samples applications](./docs/documentation.md#running-code-samples-applications) - [Implementing custom ML application](./docs/documentation.md#implementing-custom-ml-application) - [Testing and benchmarking](./docs/documentation.md#testing-and-benchmarking) - - [Troubleshooting](./docs/documentation.md#troubleshooting) + - **[Troubleshooting](./docs/documentation.md#troubleshooting)** - [Appendix](./docs/documentation.md#appendix) - - [FAQ](./docs/documentation.md#faq) + - **[FAQ](./docs/documentation.md#faq)** ## Contribution guidelines diff --git a/docs/quick_start.md b/docs/quick_start.md index 93e7943..2af0c8e 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -303,3 +303,8 @@ cmake .. \ > **Note:** If you want to change the application, then, instead of using the `build_default` Python script, follow the > approach defined in [documentation.md](./documentation.md#arm_ml-embedded-evaluation-kit). For example, if you wanted to modify the number of > MACs units of the Ethos-U, or running a custom neural network. + +> **Note:** The performance summary produced by Vela compiler for any model are **estimates only**. Vela computes +> these figures from a very simplistic approximation. To get accurate performance numbers for the Arm Ethos-U NPU, +> please use the FVP or the FPGA platforms. + diff --git a/docs/sections/building.md b/docs/sections/building.md index 4750e3e..973b644 100644 --- a/docs/sections/building.md +++ b/docs/sections/building.md @@ -708,7 +708,7 @@ After compiling, your custom model has now replaced the default one in the appli > The source code is hosted on <https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/>. > **Note:** Using the 22.05 versions of software dependencies will require Vela to be at least version 3.4.0 -> or you may encounter issues when trying to run applications on different variants of Ethos-U. +> or you may encounter issues when trying to run applications on different variants of Ethos-U NPUs. The Vela compiler is a tool that can optimize a neural network model into a version that can run on an embedded system containing an *Ethos-U* NPU. @@ -758,6 +758,10 @@ To see Vela helper for all the parameters use: `vela --help`. > **Note:** By default, use of the *Ethos-U* NPU is enabled in the CMake configuration. This can be changed by passing > `-DETHOS_U_NPU_ENABLED`. +> **Note:** The performance summary produced by Vela compiler for any model are **estimates only**. Vela computes +> these figures from a very simplistic approximation. To get accurate performance numbers for the Arm Ethos-U NPU, use +> of FVP or FPGA platforms is recommended. + ## Building for different Ethos-U NPU variants The building process described in the previous paragraphs assumes building for the default *Ethos-U55* NPU with 128 MACs, diff --git a/docs/sections/faq.md b/docs/sections/faq.md index 0ffd0bd..887249c 100644 --- a/docs/sections/faq.md +++ b/docs/sections/faq.md @@ -13,6 +13,14 @@ A good starting point to explore the repository is the ---- +**Q: What is an FVP or AVH?** + +**A:** FVP stands for Fixed Virtual Platform and AVH is Arm Virtual Hardware. More details for these can be found under: +* https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms +* https://www.arm.com/products/development-tools/simulation/virtual-hardware + +---- + **Q: I’m running through the quick-start guide and I’m running into an error with pip. When I run `./build_default.py`, I get an error `ImportError: No module named pip`, but pip is installed on my machine.** diff --git a/source/application/api/common/readme.md b/source/application/api/common/readme.md new file mode 100644 index 0000000..fbb1d76 --- /dev/null +++ b/source/application/api/common/readme.md @@ -0,0 +1,15 @@ +## API: Common + +This module contains utilities that can be re-used by all ML use case API. These include (but not limited to): + +* MFCC modules (used by most audio use cases) +* Image utilities +* Audio utilities (like sliding window API) +* Interface class for pre-processing and post-processing +* Model API that is extended by other use cases +* General TensorFlow Lite Micro helper functions + +## Useful links + +* [Repository Structure](../../../../docs/documentation.md#repository-structure) +* [Reusable Software](../../../../Readme.md#reusable-software). diff --git a/source/application/api/use_case/readme.md b/source/application/api/use_case/readme.md new file mode 100644 index 0000000..f7eb0d1 --- /dev/null +++ b/source/application/api/use_case/readme.md @@ -0,0 +1,11 @@ +## Use case APIs + +The directories in here are individual CMake projects to generate use case API static libraries. These libraries are +intended to be used by external projects that only want access to the ready-to-use ML use case pipelines implemented in this repository. +This can be as CMake projects, but also in the form of CMSIS-packs. These libraries do not depend on the HAL layer and +are platform-agnostic to allow for easy portability. + +## Useful links + +* [Repository Structure](../../../../docs/documentation.md#repository-structure) +* [Reusable Software](../../../../Readme.md#reusable-software). diff --git a/source/hal/readme.md b/source/hal/readme.md new file mode 100644 index 0000000..1757d5b --- /dev/null +++ b/source/hal/readme.md @@ -0,0 +1,7 @@ +## HAL project + +This directory is the root of `Hardware Abstraction Layer` (HAL) library for this repo. The intention is for this layer +to service higher layers to seamlessly use platform specific functionality via a single abstraction layer. HAL provides +drivers for each target platform that the repository supports. + +See [Repository Structure](../../docs/documentation.md#repository-structure) for more details. diff --git a/source/hal/source/components/readme.md b/source/hal/source/components/readme.md new file mode 100644 index 0000000..0451f39 --- /dev/null +++ b/source/hal/source/components/readme.md @@ -0,0 +1,5 @@ +## HAL components + +This directory contains API and implementations for different modules that can be reused for different platforms. + +See [Repository Structure](../../../../docs/documentation.md#repository-structure) for more details. diff --git a/source/hal/source/platform/mps3/readme.md b/source/hal/source/platform/mps3/readme.md new file mode 100644 index 0000000..3ca937a --- /dev/null +++ b/source/hal/source/platform/mps3/readme.md @@ -0,0 +1,3 @@ +## MPS3 platform drivers + +Project to provide HAL platform drivers for the Arm MPS3 FPGA/FVP targets. diff --git a/source/hal/source/platform/native/readme.md b/source/hal/source/platform/native/readme.md new file mode 100644 index 0000000..8c582b7 --- /dev/null +++ b/source/hal/source/platform/native/readme.md @@ -0,0 +1,3 @@ +## Native platform drivers + +Project to provide HAL platform drivers for native (host machine) target. diff --git a/source/hal/source/platform/simple/readme.md b/source/hal/source/platform/simple/readme.md new file mode 100644 index 0000000..8281439 --- /dev/null +++ b/source/hal/source/platform/simple/readme.md @@ -0,0 +1,3 @@ +## Simple platform drivers + +Project to provide HAL platform drivers for simple (minimal peripherals) target. diff --git a/source/log/readme.md b/source/log/readme.md new file mode 100644 index 0000000..9b2c137 --- /dev/null +++ b/source/log/readme.md @@ -0,0 +1,4 @@ +## Log + +This is a CMake interface library that exposes helper macros related to logging. This component is used by almost all +the others in this repository directly or transitively. diff --git a/source/math/readme.md b/source/math/readme.md new file mode 100644 index 0000000..bee889d --- /dev/null +++ b/source/math/readme.md @@ -0,0 +1,6 @@ +## Math + +This is a CMake static library that allows application level code and ML use case APIs to use basic mathematical +functions on scalars and vectors. This library calls the standard C/C++ math functions when being compiled for +native targets but uses Arm CMSIS-DSP functions if compiled for Arm CPU targets where DSP is available. This is done +to have an abstraction around the mathematical functions that are extensively used mostly in the pre-processing of data. diff --git a/source/profiler/readme.md b/source/profiler/readme.md new file mode 100644 index 0000000..92b7c2f --- /dev/null +++ b/source/profiler/readme.md @@ -0,0 +1,7 @@ +## Profiler + +This is a CMake static library that exposes a C++ API for a very simple logging based profiler implementation. It +depends on the hardware abstraction layer's platform drivers to get performance measurement counters (PMU) from the +platform. It makes no assumptions about the type of data these counters might contain and therefore each individual +platform is free to implement their own flavour. It works on the principle that each counter capsule will have one, or +several, 64-bit counters which are used to maintain rolling statistics. diff --git a/source/readme.md b/source/readme.md new file mode 100644 index 0000000..4a1e901 --- /dev/null +++ b/source/readme.md @@ -0,0 +1,4 @@ +## Source directory + +This directory is the root of all sources that are used for building ML applications. Note that test sources sit under +a different directory. See [Repository Structure](../docs/documentation.md#repository-structure) for more details. diff --git a/source/use_case/readme.md b/source/use_case/readme.md new file mode 100644 index 0000000..24b0c4e --- /dev/null +++ b/source/use_case/readme.md @@ -0,0 +1,5 @@ +## ML Use case examples + +This directory contains several ML example use case implementations. Sources here sit at the highest level in the +hierarchy. See [Building](../../docs/documentation.md#building) and +[Repository Structure](../../docs/documentation.md#repository-structure) for more details. |