summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorCisco Cervellera <cisco.cervellera@arm.com>2021-08-02 09:32:07 +0100
committerIsabella Gottardi <isabella.gottardi@arm.com>2021-08-03 16:10:16 +0100
commitf085fa5a2859178741f39563b4d9d68ca41d916a (patch)
tree62fd8411c63a853be4c32683a3ada0b6affb0399 /docs
parent81c4c9178598e5c26af7373eca67842a8fe4179f (diff)
downloadml-embedded-evaluation-kit-f085fa5a2859178741f39563b4d9d68ca41d916a.tar.gz
MLECO-2051: Work with Corstone-300 + Ethos-U65
Change-Id: I64ab930a1de5210f435f91bed7600a700581946f Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com> Reviewed-on: https://eu-gerrit-2.euhpc.arm.com/c/ml/ecosystem/ml-embedded-evaluation-kit/+/459126 Tested-by: mlecosys <mlecosys@arm.com> Tested-by: George Gekov <george.gekov@arm.com> Reviewed-by: George Gekov <george.gekov@arm.com> Reviewed-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/documentation.md20
-rw-r--r--docs/quick_start.md6
-rw-r--r--docs/sections/building.md99
-rw-r--r--docs/sections/customizing.md18
-rw-r--r--docs/sections/deployment.md43
-rw-r--r--docs/sections/testing_benchmarking.md45
-rw-r--r--docs/use_cases/ad.md27
-rw-r--r--docs/use_cases/asr.md27
-rw-r--r--docs/use_cases/img_class.md29
-rw-r--r--docs/use_cases/inference_runner.md29
-rw-r--r--docs/use_cases/kws.md29
-rw-r--r--docs/use_cases/kws_asr.md26
12 files changed, 240 insertions, 158 deletions
diff --git a/docs/documentation.md b/docs/documentation.md
index bb89c63..d9286a9 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -46,7 +46,7 @@ Before starting the setup process, please make sure that you have:
### Additional reading
-This document contains information that is specific to Arm® Ethos™-U55 products. Please refer to the following documents
+This document contains information that is specific to Arm® Ethos™-U55 and Arm® Ethos™-U65 products. Please refer to the following documents
for additional information:
- ML platform overview: <https://mlplatform.org/>
@@ -58,6 +58,9 @@ for additional information:
- ML processor, also referred to as a Neural Processing Unit (NPU) - Arm® `Ethos™-U55`:
<https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55>
+- ML processor, also referred to as a Neural Processing Unit (NPU) - Arm® `Ethos™-U65`:
+ <https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u65>
+
- Arm® MPS3 FPGA Prototyping Board:
<https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>
@@ -112,12 +115,12 @@ What these folders contain:
- `scripts`: Build and source generation scripts.
- `source`: C/C++ sources for the platform and ML applications.
- > **Note:** Common code related to the `Ethos-U55` NPU software framework resides in *application* subfolder.
+ > **Note:** Common code related to the `Ethos-U` NPU software framework resides in *application* subfolder.
The contents of the *application* subfolder is as follows:
- `application`: All sources that form the *core* of the application. The `use-case` part of the sources depend on the
- sources themsleves, such as:
+ sources themselves, such as:
- `hal`: Contains Hardware Abstraction Layer (HAL) sources, providing a platform agnostic API to access hardware
platform-specific functions.
@@ -208,15 +211,15 @@ The models used in the use-cases implemented in this project can be downloaded f
- [Wav2Letter](https://github.com/ARM-software/ML-zoo/tree/1a92aa08c0de49a7304e0a7f3f59df6f4fd33ac8/models/speech_recognition/wav2letter/tflite_pruned_int8).
- [Anomaly Detection](https://github.com/ARM-software/ML-zoo/raw/7c32b097f7d94aae2cd0b98a8ed5a3ba81e66b18/models/anomaly_detection/micronet_medium/tflite_int8/ad_medium_int8.tflite).
-When using *Ethos-U55* NPU backend, Vela compiler optimizes the the NN model. However, if not and it is supported by
+When using *Ethos-U* NPU backend, Vela compiler optimizes the the NN model. However, if not and it is supported by
TensorFlow Lite Micro, then it falls back on the CPU and execute.
![Vela compiler](./media/vela_flow.jpg)
The Vela compiler is a tool that can optimize a neural network model into a version that run on an embedded system
-containing the *Ethos-U55* NPU.
+containing the *Ethos-U* NPU.
-The optimized model contains custom operators for sub-graphs of the model that the *Ethos-U55* NPU can accelerate. The
+The optimized model contains custom operators for sub-graphs of the model that the *Ethos-U* NPU can accelerate. The
remaining layers that cannot be accelerated, are left unchanged, and are run on the CPU using optimized, `CMSIS-NN`, or
reference kernels provided by the inference engine.
@@ -228,7 +231,7 @@ This section describes how to build the code sample applications from sources an
options and the process.
The project can be built for MPS3 FPGA and FVP emulating MPS3. Using default values for configuration parameters builds
-executable models that support the *Ethos-U55* NPU.
+executable models that support the *Ethos-U* NPU.
For further information, please see:
@@ -253,6 +256,7 @@ For further information, please see:
- [Add custom inputs](./sections/building.md#add-custom-inputs)
- [Add custom model](./sections/building.md#add-custom-model)
- [Optimize custom model with Vela compiler](./sections/building.md#optimize-custom-model-with-vela-compiler)
+ - [Building for different Ethos-U NPU variants](#building-for-different-ethos-u-npu-variants)
- [Automatic file generation](./sections/building.md#automatic-file-generation)
## Deployment
@@ -273,7 +277,7 @@ For further information, please see:
This section describes how to implement a custom Machine Learning application running on a platform supported by the
repository, either an FVP or an MPS3 board.
-Both the *Cortex-M55* CPU and *Ethos-U55* NPU Code Samples software project offers a way to incorporate extra use-case
+Both the *Cortex-M55* CPU and *Ethos-U* NPU Code Samples software project offers a way to incorporate extra use-case
code into the existing infrastructure. It also provides a build system that automatically picks up added functionality
and produces corresponding executable for each use-case.
diff --git a/docs/quick_start.md b/docs/quick_start.md
index 9d059fe..d1039fe 100644
--- a/docs/quick_start.md
+++ b/docs/quick_start.md
@@ -3,14 +3,14 @@
This is a quick start guide that shows you how to run the keyword spotting example application.
The aim of this quick start guide is to enable you to run an application quickly on the Fixed Virtual Platform (FVP).
-This documentation assumes that your Arm® *Ethos™-U55* NPU is configured to use 128 Multiply-Accumulate units, and is
+This documentation assumes that you are using an Arm® *Ethos™-U55* NPU, it is configured to use 128 Multiply-Accumulate units, and is
sharing SRAM with the Arm® *Cortex®-M55*.
To get started quickly, please follow these steps:
1. First, verify that you have installed [the required prerequisites](sections/building.md#Build-prerequisites).
-2. Clone the *Ethos-U55* evaluation kit repository:
+2. Clone the *Ethos-U* evaluation kit repository:
```commandline
git clone "https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit"
@@ -28,7 +28,7 @@ To get started quickly, please follow these steps:
[Vela](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela) is an open-source Python tool. Vela
converts a TensorFlow Lite for Microcontrollers neural network model into an optimized model that can run on an
- embedded system that contains an *Ethos-U55* NPU.
+ embedded system that contains an *Ethos-U* NPU.
It is worth noting that to take full advantage of the capabilities of the NPU, the neural network operators must be
[supported by Vela](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/HEAD/SUPPORTED_OPS.md).
diff --git a/docs/sections/building.md b/docs/sections/building.md
index 63f8d53..8bc03a3 100644
--- a/docs/sections/building.md
+++ b/docs/sections/building.md
@@ -22,6 +22,7 @@
- [Add custom inputs](#add-custom-inputs)
- [Add custom model](#add-custom-model)
- [Optimize custom model with Vela compiler](#optimize-custom-model-with-vela-compiler)
+ - [Building for different Ethos-U NPU variants](#building-for-different-ethos-u-npu-variants)
- [Automatic file generation](#automatic-file-generation)
This section assumes that you are using an **x86 Linux** build machine.
@@ -115,7 +116,7 @@ Before proceeding, it is *essential* to ensure that the following prerequisites
The project build system allows you to specify custom neural network models (in the `.tflite` format) for each use-case
along with the network inputs.
-It also builds TensorFlow Lite for Microcontrollers library, Arm® *Ethos™-U55* driver library, and the CMSIS-DSP library
+It also builds TensorFlow Lite for Microcontrollers library, Arm® *Ethos™-U* NPU driver library, and the CMSIS-DSP library
from sources.
The build script is parameterized to support different options. Default values for build parameters build the
@@ -140,7 +141,7 @@ The build parameters are:
- `TENSORFLOW_SRC_PATH`: the path to the root of the TensorFlow directory. The default value points to the
`dependencies/tensorflow` git submodule. Respository is hosted here: [tensorflow](https://github.com/tensorflow/tensorflow)
-- `ETHOS_U55_DRIVER_SRC_PATH`: The path to the *Ethos-U55* NPU core driver sources. The default value points to the
+- `ETHOS_U_NPU_DRIVER_SRC_PATH`: The path to the *Ethos-U* NPU core driver sources. The default value points to the
`dependencies/core-driver` git submodule. Repository is hosted here:
[ethos-u-core-driver](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-core-driver).
@@ -148,8 +149,8 @@ The build parameters are:
optional and is only valid for Arm® *Cortex®-M* CPU targeted configurations. The default value points to the
`dependencies/cmsis` git submodule. Respository is hosted here: [CMSIS-5](https://github.com/ARM-software/CMSIS_5.git)
-- `ETHOS_U55_ENABLED`: Sets whether the use of *Ethos-U55* NPU is available for the deployment target. By default, this
- is set and therefore application is built with *Ethos-U55* NPU supported.
+- `ETHOS_U_NPU_ENABLED`: Sets whether the use of *Ethos-U* NPU is available for the deployment target. By default, this
+ is set and therefore application is built with *Ethos-U* NPU supported.
- `CPU_PROFILE_ENABLED`: Sets whether profiling information for the CPU core should be displayed. By default, this is
set to false, but can be turned on for FPGA targets. The the FVP and the CPU core cycle counts are not meaningful and
@@ -161,19 +162,19 @@ The build parameters are:
- `<use_case>_MODEL_TFLITE_PATH`: The path to the model file that is processed and is included into the application
`axf` file. The default value points to one of the delivered set of models. Make sure that the model chosen is aligned
- with the `ETHOS_U55_ENABLED` setting.
+ with the `ETHOS_U_NPU_ENABLED` setting.
- - When using the *Ethos-U55* NPU backend, the NN model is assumed to be optimized by Vela compiler. However, even if
+ - When using the *Ethos-U* NPU backend, the NN model is assumed to be optimized by Vela compiler. However, even if
not, if it is supported by TensorFlow Lite Micro, it falls back on the CPU and execute.
- - When use of the *Ethos-U55* NPU is disabled, and if a Vela optimized model is provided, then the application reports
+ - When use of the *Ethos-U* NPU is disabled, and if a Vela optimized model is provided, then the application reports
a failure at runtime.
- `USE_CASE_BUILD`: Specifies the list of applications to build. By default, the build system scans sources to identify
available ML applications and produces executables for all detected use-cases. This parameter can accept single value,
for example: `USE_CASE_BUILD=img_class`, or multiple values. For example: `USE_CASE_BUILD="img_class;kws"`.
-- `ETHOS_U55_TIMING_ADAPTER_SRC_PATH`: The path to timing adapter sources. The default value points to the
+- `ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH`: The path to timing adapter sources. The default value points to the
`timing_adapter` dependencies folder.
- `TA_CONFIG_FILE`: The path to the CMake configuration file that contains the timing adapter parameters. Used only if
@@ -251,7 +252,7 @@ dependencies
```
> **Note:** The default source paths for the `TPIP` sources assume the above directory structure. However, all of the
-> relevant paths can be overridden by CMake configuration arguments `TENSORFLOW_SRC_PATH` `ETHOS_U55_DRIVER_SRC_PATH`,
+> relevant paths can be overridden by CMake configuration arguments `TENSORFLOW_SRC_PATH` `ETHOS_U_NPU_DRIVER_SRC_PATH`,
> and `CMSIS_SRC_PATH`.
#### Fetching resource files
@@ -272,7 +273,7 @@ for the default 128 MAC configuration of the Arm® *Ethos™-U55* NPU.
### Building for default configuration
A helper script `build_default.py` is provided to configure and build all the applications. It configures the project
-with default settings i.e., for `mps3` target and `sse-300` subsystem. Under the hood, it invokes all the necessary
+with default settings i.e., for `mps3` target, `sse-300` subsystem and *Ethos-U55* timing-adapter settings. Under the hood, it invokes all the necessary
CMake commands that are described in the next sections.
If using the `Arm GNU embedded toolchain`, execute:
@@ -311,14 +312,16 @@ Arm® *Ethos™-U55* NPU when providing only the mandatory arguments for CMake c
cmake ../
```
-The preceding command builds for the default target platform `mps3`, the default subsystem `sse-300`, and using the
-default toolchain file for the target as `bare-metal-gcc.` This is equivalent to running:
+The preceding command builds for the default target platform `mps3`, the default subsystem `sse-300`, using the
+default toolchain file for the target as `bare-metal-gcc` and the default *Ethos-U55* timing adapter settings.
+This is equivalent to running:
```commandline
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=scripts/cmake/toolchains/bare-metal-gcc.cmake
-DTARGET_PLATFORM=mps3 \
- -DTARGET_SUBSYSTEM=sse-300
+ -DTARGET_SUBSYSTEM=sse-300 \
+ -DTA_CONFIG_FILE=scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake
```
#### Using Arm Compiler
@@ -378,15 +381,15 @@ cmake .. \
#### Configuring with custom TPIP dependencies
If the TensorFlow source tree is not in its default expected location, set the path using `TENSORFLOW_SRC_PATH`.
-Similarly, if the *Ethos-U55* NPU driver and `CMSIS` are not in the default location, then use
-`ETHOS_U55_DRIVER_SRC_PATH` and `CMSIS_SRC_PATH` to configure their location.
+Similarly, if the *Ethos-U* NPU driver and `CMSIS` are not in the default location, then use
+`ETHOS_U_NPU_DRIVER_SRC_PATH` and `CMSIS_SRC_PATH` to configure their location.
For example:
```commandline
cmake .. \
-DTENSORFLOW_SRC_PATH=/my/custom/location/tensorflow \
- -DETHOS_U55_DRIVER_SRC_PATH=/my/custom/location/core-driver \
+ -DETHOS_U_NPU_DRIVER_SRC_PATH=/my/custom/location/core-driver \
-DCMSIS_SRC_PATH=/my/custom/location/cmsis
```
@@ -465,10 +468,10 @@ Where for each implemented use-case under the `source/use-case` directory, the f
## Building timing adapter with custom options
-The sources also contain the configuration for a timing adapter utility for the *Ethos-U55* NPU driver. The timing
+The sources also contain the configuration for a timing adapter utility for the *Ethos-U* NPU driver. The timing
adapter allows the platform to simulate user provided memory bandwidth and latency constraints.
-The timing adapter driver aims to control the behavior of two AXI buses used by *Ethos-U55* NPU. One is for SRAM memory
+The timing adapter driver aims to control the behavior of two AXI buses used by *Ethos-U* NPU. One is for SRAM memory
region, and the other is for flash or DRAM.
The SRAM is where intermediate buffers are expected to be allocated and therefore, this region can serve frequent Read
@@ -544,7 +547,7 @@ For a clock rate of 500MHz, this would translate to:
![Maximum bit rate formula](../media/F2.png)
- With a read latency of 64 cycles, and maximum pending reads as 2, each read could be a maximum of 64 or 128 bytes. As
- defined for the *Ethos-U55* NPU AXI bus attribute.
+ defined for the *Ethos-U* NPU AXI bus attribute.
The bandwidth is calculated solely by read parameters:
@@ -560,7 +563,7 @@ Timing adapter requires recompilation to change parameters. Default timing adapt
`TA_CONFIG_FILE` build parameter is located in the `scripts/cmake folder` and contains all options for `AXI0` and `AXI1`
as previously described.
-here is an example of `scripts/cmake/ta_config.cmake`:
+here is an example of `scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake`:
```cmake
# Timing adapter options
@@ -581,7 +584,7 @@ set(TA0_BWCAP "4000")
An example of the build with a custom timing adapter configuration:
```commandline
-cmake .. -DTA_CONFIG_FILE=scripts/cmake/my_ta_config.cmake
+cmake .. -DTA_CONFIG_FILE=scripts/cmake/timing_adapter/my_ta_config.cmake
```
## Add custom inputs
@@ -593,7 +596,7 @@ see section 3.3 in the specific use-case documentation.
The application performs inference using the model pointed to by the CMake parameter `MODEL_TFLITE_PATH`.
-> **Note:** If you want to run the model using *Ethos-U55* NPU, ensure that your custom model has been run through the
+> **Note:** If you want to run the model using *Ethos-U* NPU, ensure that your custom model has been run through the
> Vela compiler successfully before continuing.
To run the application with a custom model, you must provide a `labels_<model_name>.txt` file of labels that are
@@ -603,7 +606,7 @@ Each line of the file should correspond to one of the outputs in your model. See
`labels_mobilenet_v2_1.0_224.txt` file in the `img_class` use-case for an example.
Then, you must set `<use_case>_MODEL_TFLITE_PATH` to the location of the Vela processed model file and
-`<use_case>_LABELS_TXT_FILE` to the location of the associated labels file, like so:
+`<use_case>_LABELS_TXT_FILE` to the location of the associated labels file (if necessary), like so:
```commandline
cmake .. \
@@ -648,13 +651,13 @@ 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/>.
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-U55* NPU.
+containing an *Ethos-U* NPU.
-The optimized model contains custom operators for sub-graphs of the model that can be accelerated by the *Ethos-U55*
+The optimized model contains custom operators for sub-graphs of the model that can be accelerated by the *Ethos-U*
NPU. The remaining layers that cannot be accelerated, are left unchanged and are run on the CPU using optimized, or
`CMSIS-NN`, or reference kernels that are provided by the inference engine.
-After the compilation, the optimized model can only be executed on a system using an *Ethos-U55* NPU.
+After the compilation, the optimized model can only be executed on a system using an *Ethos-U* NPU.
> **Note:** The NN model provided during the build and compiled into the application executable binary defines whether
the CPU or NPU is used to execute workloads. If an unoptimized model is used, then inference runs on the *Cortex-M* CPU.
@@ -675,12 +678,15 @@ vela \
The Vela command contains the following:
- `--accelerator-config`: Specifies the accelerator configuration to use between `ethos-u55-256`, `ethos-u55-128`,
- `ethos-u55-64`, and `ethos-u55-32`.
-- `--optimise`: Sets the optimisation strategy to Performance or Size. The Size strategy results in a model minimising the SRAM usage whereas the Performance strategy optimises the neural network for maximal perforamance. Note that if using the Performance strategy, you can also pass the `--arena-cache-size` option to Vela.
+ `ethos-u55-64`, `ethos-u55-32`, `ethos-u65-256`, and `ethos-u65-512`.
+- `--optimise`: Sets the optimisation strategy to Performance or Size. The Size strategy results in a model minimising the SRAM
+ usage whereas the Performance strategy optimises the neural network for maximal perforamance.
+ Note that if using the Performance strategy, you can also pass the `--arena-cache-size` option to Vela.
- `--config`: Specifies the path to the Vela configuration file. The format of the file is a Python ConfigParser `.ini`
file. An example can be found in the `dependencies` folder [default_vela.ini](../../scripts/vela/default_vela.ini).
- `--memory-mode`: Selects the memory mode to use as specified in the Vela configuration file.
-- `--system-config`: Selects the system configuration to use as specified in the Vela configuration file.
+- `--system-config`: Selects the system configuration to use as specified in the Vela configuration file:
+ `Ethos_U55_High_End_Embedded`for *Ethos-U55* and `Ethos_U65_High_End` for *Ethos-U65*.
Vela compiler accepts `.tflite` file as input and saves optimized network model as a `.tflite` file.
@@ -689,8 +695,39 @@ includes a summary of all the subgraphs and their inputs and outputs.
To see Vela helper for all the parameters use: `vela --help`.
-> **Note:** By default, use of the *Ethos-U55* NPU is enabled in the CMake configuration. This can be changed by passing
-> `-DETHOS_U55_ENABLED`.
+> **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`.
+
+## 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,
+using the *Ethos-U55* High End timing adapter system configuration.
+
+To build for a different *Ethos-U* NPU variant:
+
+- Optimize the model with Vela compiler with the correct parameters. See [Optimize custom model with Vela compiler](./building.md#optimize-custom-model-with-vela-compiler).
+- Use the Vela model as custom model in the building command. See [Add custom model](./building.md#add-custom-model)
+- Use the correct timing adapter settings configuration. See [Building timing adapter with custom options](./building.md#building-timing-adapter-with-custom-options)
+
+For example, when building for *Ethos-U65* High End system configuration, the Vela comand will be:
+
+```commandline
+vela \
+ <model_file>.tflite \
+ --accelerator-config ethos-u65-256 \
+ --optimise Performance \
+ --memory-mode=Shared_Sram \
+ --system-config=Ethos_U65_High_End \
+ --config=../scripts/vela/default_vela.ini
+```
+
+And the cmake command:
+
+```commandline
+cmake .. \
+ -D<use_case>_MODEL_TFLITE_PATH=<path/to/ethos_u65_vela_model.tflite> \
+ -DTA_CONFIG_FILE=scripts/cmake/ta_config_u65_high_end.cmake
+```
## Automatic file generation
diff --git a/docs/sections/customizing.md b/docs/sections/customizing.md
index 745132f..4cea26f 100644
--- a/docs/sections/customizing.md
+++ b/docs/sections/customizing.md
@@ -55,7 +55,7 @@ As mentioned in the [Repository structure](../documentation.md#repository-struct
```
Where the `source` folder contains C/C++ sources for the platform and ML applications. Common code related to the
-*Ethos-U55* code samples software framework resides in the `application` sub-folder and ML application-specific logic,
+*Ethos-U* code samples software framework resides in the `application` sub-folder and ML application-specific logic,
use-cases, sources are in the `use-case` subfolder.
> **Convention**: Separate use-cases must be organized in sub-folders under the use-case folder. The name of the
@@ -145,7 +145,7 @@ The HAL is represented by the following interfaces. To access them, include the
| `get_duration_ms` | Pointer to a function to calculate duration between two time-counters in milliseconds. |
| `get_duration_us` | Pointer to a function to calculate duration between two time-counters in microseconds |
| `get_cpu_cycle_diff` | Pointer to a function to calculate duration between two time-counters in *Cortex-M55* cycles. |
- | `get_npu_cycle_diff` | Pointer to a function to calculate duration between two time-counters in *Ethos-U55* cycles. Available only when project is configured with `ETHOS_U55_ENABLED` set. |
+ | `get_npu_cycle_diff` | Pointer to a function to calculate duration between two time-counters in *Ethos-U* cycles. Available only when project is configured with `ETHOS_U_NPU_ENABLED` set. |
| `start_profiling` | If necessary, wraps the `get_time_counter` function with another profiling initialization, if necessary. |
| `stop_profiling` | If necessary, wraps the `get_time_counter` function along with more instructions when profiling ends. |
@@ -227,7 +227,7 @@ void main_loop(hal_platform& platform) {
## Profiler
-The profiler is a helper class that assists with the collection of timings and *Ethos-U55* cycle counts for operations.
+The profiler is a helper class that assists with the collection of timings and *Ethos-U* cycle counts for operations.
It uses platform timer to get system timing information.
| Method name | Description |
@@ -358,7 +358,7 @@ You can now start filling this function with logic.
Before inference could be run with a custom NN model, TensorFlow Lite Micro framework must learn about the operators, or
layers, included in the model. You must register operators using the `MicroMutableOpResolver` API.
-The *Ethos-U55* code samples project has an abstraction around TensorFlow Lite Micro API (see [NN model API](#nn-model-api)).
+The *Ethos-U* code samples project has an abstraction around TensorFlow Lite Micro API (see [NN model API](#nn-model-api)).
Create `HelloWorldModel.hpp` in the use-case include sub-directory, extend Model abstract class,
and then declare the required methods.
@@ -405,10 +405,10 @@ Create the `HelloWorldModel.cc` file in the `src` sub-directory and define the m
Please refer to `use_case/img_class/src/MobileNetModel.cc` for code examples.
-If you are using a TensorFlow Lite model compiled with Vela, it is important to add a custom *Ethos-U55* operator to the
+If you are using a TensorFlow Lite model compiled with Vela, it is important to add a custom *Ethos-U* operator to the
operators list.
-The following example shows how to add the custom *Ethos-U55* operator with the TensorFlow Lite Micro framework. when
+The following example shows how to add the custom *Ethos-U* operator with the TensorFlow Lite Micro framework. when
defined, `ARM_NPU` excludes the code if the application was built without NPU support.
For example:
@@ -553,7 +553,7 @@ The code snippet has several important blocks:
const uint8_t *outputData = tflite::GetTensorData<uint8>(outputTensor);
```
-To add profiling for the *Ethos-U55*, include a `Profiler.hpp` header and invoke both `StartProfiling` and
+To add profiling for the *Ethos-U*, include a `Profiler.hpp` header and invoke both `StartProfiling` and
`StopProfiling` around inference execution.
For example:
@@ -660,7 +660,7 @@ in the root of your use-case. However, the name of the file is not important.
> - `use_case` – The name of the current use-case.
> - `UC_SRC` – A list of use-case sources.
> - `UC_INCLUDE` – The path to the use-case headers.
-> - `ETHOS_U55_ENABLED` – The flag indicating if the current build supports Ethos-U55.
+> - `ETHOS_U_NPU_ENABLED` – The flag indicating if the current build supports Ethos-U55.
> - `TARGET_PLATFORM` – The target platform being built for.
> - `TARGET_SUBSYSTEM` – If target platform supports multiple subsystems, this is the name of the subsystem.
> - All standard build options.
@@ -671,7 +671,7 @@ For the hello world use-case, it is enough to create a `helloworld.cmake` file a
so:
```cmake
-if (ETHOS_U55_ENABLED EQUAL 1)
+if (ETHOS_U_NPU_ENABLED EQUAL 1)
set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/helloworldmodel_uint8_vela.tflite)
else()
set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/helloworldmodel_uint8.tflite)
diff --git a/docs/sections/deployment.md b/docs/sections/deployment.md
index 7a8e368..6c90c87 100644
--- a/docs/sections/deployment.md
+++ b/docs/sections/deployment.md
@@ -29,8 +29,8 @@ Please ensure that you download the correct archive from the list under `Arm Cor
### Setting up the MPS3 Arm Corstone-300 FVP
-For the *Ethos-U55* sample application, please download the MPS3 version of the Arm® *Corstone™-300* model that contains
-both the *Ethos-U55* and *Arm® Cortex®-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -38,7 +38,7 @@ To install the FVP:
- Run the install script in the extracted package:
- `./FVP_Corstone_SSE-300_Ethos-U55.sh`
+ `./FVP_Corstone_SSE-300.sh`
- Follow the instructions to install the FVP to your required location.
@@ -46,15 +46,15 @@ To install the FVP:
This section assumes that the FVP has been installed (see
[Setting up the MPS3 Arm Corstone-300 FVP](#setting-up-the-mps3-arm-corstone-300-fvp))
-to the home directory of the user: `~/FVP_Corstone_SSE-300_Ethos-U55`.
+to the home directory of the user: `~/FVP_Corstone_SSE-300`.
-The installation, typically, has the executable under `~/FVP_Corstone_SSE-300_Ethos-U55/model/<OS>_<compiler-version>/`
-directory. For the example below, we assume it is: `~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4`.
+The installation, typically, has the executable under `~/FVP_Corstone_SSE-300/model/<OS>_<compiler-version>/`
+directory. For the example below, we assume it is: `~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4`.
To run a use-case on the FVP, from the [Build directory](../sections/building.md#create-a-build-directory):
```commandline
-~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-<use_case>.axf
+~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-<use_case>.axf
telnetterminal0: Listening for serial connection on port 5000
telnetterminal1: Listening for serial connection on port 5001
telnetterminal2: Listening for serial connection on port 5002
@@ -73,10 +73,16 @@ type. It also includes the input and output tensor sizes of the model that are c
After starting, the application outputs a menu and waits for the user-input from the telnet terminal.
-For example, the image classification use-case can be started by using:
+For example, the image classification use-case on *Ethos-U55* processor can be started by using:
```commandline
-~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf
+~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf
+```
+
+Meanwhile for *Ethos-U65*:
+
+```commandline
+~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U65 -a ./bin/ethos-u-img_class.axf
```
![FVP](../media/fvp.png)
@@ -86,8 +92,11 @@ For example, the image classification use-case can be started by using:
The FVP supports many command-line parameters, such as:
- Those passed by using `-C <param>=<value>`. The most important ones are:
- - `ethosu.num_macs`: Sets the *Ethos-U55* configuration for the model. Valid parameters are `32`, `64`, `256`, and the
- default one `128`. The number signifies the 8x8 MACs that are performed per cycle-count and that are available on
+ - `ethosu.num_macs`: Sets the *Ethos-U* configuration for the model. The valid parameters are:
+ - *Ethos-U55*: `32`, `64`, `256`, and the default one `128`.
+ - *Ethos-U65*: `256`, and the default one `512`.
+
+ The number signifies the 8x8 MACs that are performed per cycle-count and that are available on
the hardware.
- `cpu0.CFGITCMSZ`: The ITCM size for the *Cortex-M* CPU. The size of ITCM is *pow(2, CFGITCMSZ - 1)* KB
- `cpu0.CFGDTCMSZ`: The DTCM size for the *Cortex-M* CPU. The size of DTCM is *pow(2, CFGDTCMSZ - 1)* KB
@@ -100,19 +109,25 @@ The FVP supports many command-line parameters, such as:
To start the model in `128` mode for *Ethos-U55*:
```commandline
- ~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf -C ethosu.num_macs=128
+ ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf -C ethosu.num_macs=128
+ ```
+
+ To start the model in `512` mode for *Ethos-U65*:
+
+ ```commandline
+ ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U65 -a ./bin/ethos-u-img_class.axf -C ethosu.num_macs=512
```
- `-l`: shows the full list of supported parameters
```commandline
- ~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -l
+ ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -l
```
- `--stat`: prints some run statistics on simulation exit
```commandline
- ~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 --stat
+ ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 --stat
```
- `--timelimit`: sets the number of wall clock seconds for the simulator to run, excluding startup and shutdown.
diff --git a/docs/sections/testing_benchmarking.md b/docs/sections/testing_benchmarking.md
index 6350f52..d040d17 100644
--- a/docs/sections/testing_benchmarking.md
+++ b/docs/sections/testing_benchmarking.md
@@ -47,8 +47,6 @@ arm_ml_embedded_evaluation_kit-<use_case>-tests
```log
INFO - native platform initialised
-INFO - ARM Ethos-U55 Evaluation application for MPS3 FPGA Prototyping Board and FastModel
-
...
===============================================================================
All tests passed (37 assertions in 7 test cases)
@@ -60,11 +58,24 @@ INFO - ARM Ethos-U55 Evaluation application for MPS3 FPGA Prototyping Board and
Profiling is enabled by default when configuring the project. Profiling enables you to display:
-- The active and idle NPU cycle counts when the Arm® *Ethos™-U55* is enabled. For more information, refer to the
- `-DETHOS_U55_ENABLED` section in: [Build options](./building.md#build-options).
+- NPU event counters when the Arm® *Ethos™-U* NPU is enabled (see `ETHOS_U_NPU_ENABLED` in [Build options](./building.md#build-options) )
+
+ - Total cycle: The number of NPU cycles
+
+ - Active cycles: number of NPU cycles that were used for computation
+
+ - Idle cycles: number of cycles for which the NPU was idle
+
+ - AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where
+ *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+
+ - AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
+
+ - AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where
+ *Ethos-U* NPU reads the model. So, read-only.
+
- If CPU profiling is enabled, the CPU cycle counts and the time elapsed, in milliseconds, for inferences performed. For
- further information, please refer to the `-DCPU_PROFILE_ENABLED` section in:
- [Build options](./building.md#build-options).
+ further information, please refer to the `CPU_PROFILE_ENABLED` in [Build options](./building.md#build-options).
> **Note:** Only do this when running on a physical FPGA board as the FVP does not contain a cycle-approximate or
> cycle-accurate *Cortex-M* model.
@@ -74,18 +85,28 @@ For example:
- On the FVP:
```log
- Active NPU cycles: 5475412
- Idle NPU cycles: 702
+INFO - Profile for Inference:
+INFO - NPU AXI0_RD_DATA_BEAT_RECEIVED beats: 628122
+INFO - NPU AXI0_WR_DATA_BEAT_WRITTEN beats: 135087
+INFO - NPU AXI1_RD_DATA_BEAT_RECEIVED beats: 62870
+INFO - NPU ACTIVE cycles: 1081007
+INFO - NPU IDLE cycles: 626
+INFO - NPU TOTAL cycles: 1081634
```
- For the MPS3 platform, the time duration in milliseconds is also reported when `-DCPU_PROFILE_ENABLED=1` is added to
CMake configuration command, like so:
```log
- Active NPU cycles: 5629033
- Idle NPU cycles: 1005276
- Active CPU cycles: 993553 (approx)
- Time in ms: 210
+INFO - Profile for Inference:
+INFO - NPU AXI0_RD_DATA_BEAT_RECEIVED beats: 628122
+INFO - NPU AXI0_WR_DATA_BEAT_WRITTEN beats: 135087
+INFO - NPU AXI1_RD_DATA_BEAT_RECEIVED beats: 62870
+INFO - NPU ACTIVE cycles: 1081007
+INFO - NPU IDLE cycles: 626
+INFO - NPU TOTAL cycles: 1081634
+INFO - CPU ACTIVE cycles (approx): 993553
+INFO - Time ms: 210
```
The next section of the documentation refers to: [Memory Considerations](memory_considerations.md).
diff --git a/docs/use_cases/ad.md b/docs/use_cases/ad.md
index 58272db..1a16a83 100644
--- a/docs/use_cases/ad.md
+++ b/docs/use_cases/ad.md
@@ -10,8 +10,8 @@
- [Build process](#build-process)
- [Add custom input](#add-custom-input)
- [Add custom model](#add-custom-model)
- - [Setting-up and running Ethos-U55 Code Sample](#setting-up-and-running-ethos-u55-code-sample)
- - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+ - [Setting-up and running Ethos-U55 Code Sample](#setting-up-and-running-ethos-u-npu-code-sample)
+ - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
- [Starting Fast Model simulation](#starting-fast-model-simulation)
- [Running Anomaly Detection](#running-anomaly-detection)
@@ -65,12 +65,12 @@ In addition to the already specified build option in the main documentation, the
- `ad_MODEL_TFLITE_PATH` - Path to the NN model file in the `TFLite` format. The model is then processed and included in
the application `axf` file. The default value points to one of the delivered set of models.
- Note that the parameters `ad_LABELS_TXT_FILE`, `TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the
+ Note that the parameters `ad_LABELS_TXT_FILE`, `TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the
chosen model. In other words:
- - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+ - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
- - if `ETHOS_U55_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
+ - if `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
model in this case results in a runtime error.
- `ad_FILE_PATH`: Path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -134,6 +134,7 @@ For additional information, please refer to:
- [Using Arm Compiler](../sections/building.md#using-arm-compiler)
- [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
- [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
> **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and then
> re-run the CMake command.
@@ -222,7 +223,7 @@ After compiling, your custom inputs have now replaced the default ones in the ap
The application performs inference using the model pointed to by the CMake parameter ``ad_MODEL_TFLITE_PATH``.
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
> through the Vela compiler *before* continuing. Please refer to this section for more help:
> [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -257,13 +258,13 @@ After compiling, your custom model has now replaced the default one in the appli
## Setting-up and running Ethos-U55 Code Sample
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
The FVP is available publicly from
[Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -272,7 +273,7 @@ To install the FVP:
- Run the install script in the extracted package:
```commandline
-.FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
```
- Follow the instructions to install the FVP to the required location.
@@ -409,7 +410,7 @@ chosen anomaly threshold. Therefore, an anomaly was detected with the machine in
The profiling section of the log shows that for each inference. For the last inference, the profiling reports:
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
- 1,081,634 total cycle: The number of NPU cycles
@@ -418,12 +419,12 @@ The profiling section of the log shows that for each inference. For the last inf
- 626 idle cycles: number of cycles for which the NPU was idle
- 628,122 AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where
- Ethos-U55 NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+ *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
- 135,087 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
- 62,870 AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where
- Ethos-U55 NPU reads the model. So, read-only.
+ *Ethos-U* NPU reads the model. So, read-only.
- For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
model is not cycle-approximate or cycle-accurate.
diff --git a/docs/use_cases/asr.md b/docs/use_cases/asr.md
index 162d9e9..fb62afa 100644
--- a/docs/use_cases/asr.md
+++ b/docs/use_cases/asr.md
@@ -10,8 +10,8 @@
- [Build process](#build-process)
- [Add custom input](#add-custom-input)
- [Add custom model](#add-custom-model)
- - [Setting-up and running Ethos-U55 Code Samples](#setting-up-and-running-ethos-u55-code-samples)
- - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+ - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+ - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
- [Starting Fast Model simulation](#starting-fast-model-simulation)
- [Running Automatic Speech Recognition](#running-automatic-speech-recognition)
@@ -110,11 +110,11 @@ adds:
- `asr_MODEL_TFLITE_PATH` - The path to the NN model file in `TFLite` format. The model is processed and then included
into the application `axf` file. The default value points to one of the delivered set of models. Note that the
- parameters `asr_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In
+ parameters `asr_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In
other words:
- - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+ - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
- - If `ETHOS_U55_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
+ - If `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
optimized model in this case results in a runtime error.
- `asr_FILE_PATH`: The path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -181,6 +181,7 @@ For further information, please refer to:
- [Using Arm Compiler](../sections/building.md#using-arm-compiler)
- [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
- [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
> **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
> the CMake command.
@@ -271,7 +272,7 @@ After compiling, your custom inputs have now replaced the default ones in the ap
The application performs inference using the model pointed to by the CMake parameter `MODEL_TFLITE_PATH`.
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
> through the Vela compiler *before* continuing.
For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -316,15 +317,15 @@ custom_model_after_vela.tflite.cc
After compiling, your custom model has now replaced the default one in the application.
-## Setting-up and running Ethos-U55 Code Samples
+## Setting up and running Ethos-U NPU code sample
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
The FVP is available publicly from
[Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -333,7 +334,7 @@ To install the FVP:
- Run the install script in the extracted package:
```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
```
- Follow the instructions to install the FVP to the required location.
@@ -462,7 +463,7 @@ multiple inferences were required to cover the whole clip.
The profiling section of the log shows that for the first inference:
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
- 28,451,172 total cycle: The number of NPU cycles.
@@ -471,7 +472,7 @@ The profiling section of the log shows that for the first inference:
- 476 idle cycles: The number of cycles for which the NPU was idle.
- 6,564,262 AXI0 read beats: The number of AXI beats with read transactions from the AXI0 bus. AXI0 is the bus where
- the *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+ - the *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
- 928,889 AXI0 write beats: The number of AXI beats with write transactions to the AXI0 bus.
diff --git a/docs/use_cases/img_class.md b/docs/use_cases/img_class.md
index 237a972..9423a4e 100644
--- a/docs/use_cases/img_class.md
+++ b/docs/use_cases/img_class.md
@@ -8,8 +8,8 @@
- [Build process](#build-process)
- [Add custom input](#add-custom-input)
- [Add custom model](#add-custom-model)
- - [Setting up and running Ethos-U55 code sample](#setting-up-and-running-ethos-u55-code-sample)
- - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+ - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+ - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
- [Starting Fast Model simulation](#starting-fast-model-simulation)
- [Running Image Classification](#running-image-classification)
@@ -36,12 +36,12 @@ specifies:
- `img_class_MODEL_TFLITE_PATH` - The path to the NN model file in the `TFLite` format. The model is then processed and
included in the application `axf` file. The default value points to one of the delivered set of models.
- Note that the parameters `img_class_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with
+ Note that the parameters `img_class_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with
the chosen model. In other words:
- - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+ - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
- - if `ETHOS_U55_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
+ - if `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
model in this case results in a runtime error.
- `img_class_FILE_PATH`: The path to the directory containing the images, or a path to a single image file, that is to
@@ -100,6 +100,7 @@ For further information, please refer to:
- [Using Arm Compiler](../sections/building.md#using-arm-compiler)
- [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
- [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
> **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
> the CMake command.
@@ -193,7 +194,7 @@ of any image does not match `IMAGE_SIZE`, then it is rescaled and padded so that
The application performs inference using the model pointed to by the CMake parameter `MODEL_TFLITE_PATH`.
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
> through the Vela compiler *before* continuing.
For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -238,15 +239,15 @@ custom_model_after_vela.tflite.cc
After compiling, your custom model has now replaced the default one in the application.
-## Setting up and running Ethos-U55 code sample
+## Setting up and running Ethos-U NPU code sample
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
The FVP is available publicly from
[Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -255,7 +256,7 @@ To install the FVP:
- Run the install script in the extracted package:
```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
```
- Follow the instructions to install the FVP to the required location.
@@ -384,7 +385,7 @@ resource folder.
The profiling section of the log shows that for this inference:
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
- 7,490,172 total cycle: The number of NPU cycles.
@@ -393,12 +394,12 @@ The profiling section of the log shows that for this inference:
- 914 idle cycles: The number of cycles for which the NPU was idle.
- 2,489,726 AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where the
- *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+ *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
- 1,098,726 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
- 471,129 AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where the
- *Ethos-U55* NPU reads the model. So, read-only.
+ *Ethos-U* NPU reads the model. So, read-only.
- For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
model is not cycle-approximate or cycle-accurate
diff --git a/docs/use_cases/inference_runner.md b/docs/use_cases/inference_runner.md
index 975d56b..bd19840 100644
--- a/docs/use_cases/inference_runner.md
+++ b/docs/use_cases/inference_runner.md
@@ -7,8 +7,8 @@
- [Build options](#build-options)
- [Build process](#build-process)
- [Add custom model](#add-custom-model)
- - [Setting up and running Ethos-U55 code sample](#setting-up-and-running-ethos-u55-code-sample)
- - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+ - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+ - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
- [Starting Fast Model simulation](#starting-fast-model-simulation)
- [Running Inference Runner](#running-inference-runner)
@@ -44,12 +44,12 @@ following:
- `inference_runner_MODEL_TFLITE_PATH` - The path to the NN model file in the `TFLite` format. The model is then
processed and included in the application `axf` file. The default value points to one of the delivered set of models.
- Note that the parameters `TARGET_PLATFORM` and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In other
+ Note that the parameters `TARGET_PLATFORM` and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In other
words:
- - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+ - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
- - if `ETHOS_U55_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
+ - if `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
model in this case results in a runtime error.
- `inference_runner_ACTIVATION_BUF_SZ`: The intermediate, or activation, buffer size reserved for the NN model. By
@@ -92,6 +92,7 @@ For further information, please refer to:
- [Using Arm Compiler](../sections/building.md#using-arm-compiler)
- [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
- [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
> **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
> the CMake command.
@@ -137,7 +138,7 @@ The `bin` folder contains the following files:
The application performs inference using the model pointed to by the CMake parameter
`inference_runner_MODEL_TFLITE_PATH`.
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
> through the Vela compiler *before* continuing.
For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -170,15 +171,15 @@ custom_model_after_vela.tflite.cc
After compiling, your custom model has now replaced the default one in the application.
-## Setting up and running Ethos-U55 code sample
+## Setting up and running Ethos-U NPU code sample
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
The FVP is available publicly from
[Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -187,7 +188,7 @@ To install the FVP:
- Run the install script in the extracted package:
```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
```
- Follow the instructions to install the FVP to the required location.
@@ -238,7 +239,7 @@ INFO - NPU TOTAL cycles: 34178
After running an inference on randomly generated data, the output of the log shows the profiling results that for this
inference. For example:
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
- 34,178 total cycle: The number of NPU cycles.
@@ -247,12 +248,12 @@ inference. For example:
- 1,033 idle cycles: The number of cycles for which the NPU was idle.
- 9,332 AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where the
- *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+ *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
- 3,248 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
- 2,219 AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where the
- *Ethos-U55* NPU reads the model. So, read-only.
+ *Ethos-U* NPU reads the model. So, read-only.
- For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
model is not cycle-approximate or cycle-accurate.
diff --git a/docs/use_cases/kws.md b/docs/use_cases/kws.md
index a6daadb..5839947 100644
--- a/docs/use_cases/kws.md
+++ b/docs/use_cases/kws.md
@@ -10,8 +10,8 @@
- [Build process](#build-process)
- [Add custom input](#add-custom-input)
- [Add custom model](#add-custom-model)
- - [Setting up and running Ethos-U55 code sample](#setting-up-and-running-ethos-u55-code-sample)
- - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+ - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+ - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
- [Starting Fast Model simulation](#starting-fast-model-simulation)
- [Running Keyword Spotting](#running-keyword-spotting)
@@ -78,11 +78,11 @@ In addition to the already specified build option in the main documentation, the
- `kws_MODEL_TFLITE_PATH` - The path to the NN model file in `TFLite` format. The model is processed and then included
into the application `axf` file. The default value points to one of the delivered set of models. Note that the
- parameters `kws_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In
+ parameters `kws_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In
other words:
- - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+ - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
- - If `ETHOS_U55_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
+ - If `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
optimized model in this case results in a runtime error.
- `kws_FILE_PATH`: The path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -149,6 +149,7 @@ For further information, please refer to:
- [Using Arm Compiler](../sections/building.md#using-arm-compiler)
- [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
- [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
> **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
> the CMake command.
@@ -239,7 +240,7 @@ After compiling, your custom inputs have now replaced the default ones in the ap
The application performs inference using the model pointed to by the CMake parameter `kws_MODEL_TFLITE_PATH`.
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
> through the Vela compiler *before* continuing.
For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -283,15 +284,15 @@ custom_model_after_vela.tflite.cc
After compiling, your custom model has now replaced the default one in the application.
-## Setting up and running Ethos-U55 code sample
+## Setting up and running Ethos-U NPU code sample
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
The FVP is available publicly from
[Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -300,7 +301,7 @@ To install the FVP:
- Run the install script in the extracted package:
```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
```
- Follow the instructions to install the FVP to the required location.
@@ -423,7 +424,7 @@ On most systems running Fast Model, each inference takes under 30 seconds.
The profiling section of the log shows that for this inference:
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
- 681,172 total cycle: The number of NPU cycles.
@@ -432,12 +433,12 @@ The profiling section of the log shows that for this inference:
- 561 idle cycles: The number of cycles for which the NPU was idle.
- 217,385 AXI0 read beats: The number of AXI beats with read transactions from the AXI0 bus. AXI0 is the bus where the
- *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+ *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
- 82,607 write cycles: The number of AXI beats with write transactions to AXI0 bus.
- 59,608 AXI1 read beats: The number of AXI beats with read transactions from the AXI1 bus. AXI1 is the bus where the
- *Ethos-U55* NPU reads the model. So, read-only.
+ *Ethos-U* NPU reads the model. So, read-only.
- For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
model is not cycle-approximate or cycle-accurate.
diff --git a/docs/use_cases/kws_asr.md b/docs/use_cases/kws_asr.md
index 52d66ab..51d1840 100644
--- a/docs/use_cases/kws_asr.md
+++ b/docs/use_cases/kws_asr.md
@@ -12,8 +12,8 @@
- [Build process](#build-process)
- [Add custom input](#add-custom-input)
- [Add custom model](#add-custom-model)
- - [Setting-up and running Ethos-U55 Code Samples](#setting-up-and-running-ethos-u55-code-samples)
- - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+ - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+ - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
- [Starting Fast Model simulation](#starting-fast-model-simulation)
- [Running Keyword Spotting and Automatic Speech Recognition](#running-keyword-spotting-and-automatic-speech-recognition)
@@ -166,11 +166,11 @@ Recognition use-case adds:
- `kws_asr_MODEL_TFLITE_PATH_ASR` and `kws_asr_MODEL_TFLITE_PATH_KWS`: The path to the NN model file in `TFLite` format.
The model is processed and then included into the application `axf` file. The default value points to one of the
delivered set of models. Note that the parameters `kws_asr_LABELS_TXT_FILE_KWS`,
- `kws_asr_LABELS_TXT_FILE_ASR`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In
+ `kws_asr_LABELS_TXT_FILE_ASR`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In
other words:
- - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+ - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
- - If `ETHOS_U55_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
+ - If `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
optimized model in this case results in a runtime error.
- `kws_asr_FILE_PATH`: The path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -242,6 +242,7 @@ For further information, please refer to:
- [Using Arm Compiler](../sections/building.md#using-arm-compiler)
- [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
- [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
> **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
> the CMake command.
@@ -328,7 +329,7 @@ The application performs KWS inference using the model pointed to by the CMake p
This section assumes you want to change the existing ASR model to a custom one. If, instead, you want to change the KWS
model, then the instructions are the same. Except ASR changes to KWS.
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
> through the Vela compiler *before* continuing.
For further information:
@@ -374,15 +375,14 @@ custom_asr_model_after_vela.tflite.cc
After compiling, your custom model has now replaced the default one in the application.
-## Setting-up and running Ethos-U55 Code Samples
+## Setting up and running Ethos-U NPU code sample
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
The FVP is available publicly from
[Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55* and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
To install the FVP:
@@ -391,7 +391,7 @@ To install the FVP:
- Run the install script in the extracted package:
```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
```
- Follow the instructions to install the FVP to the required location.
@@ -566,7 +566,7 @@ words recognized from the input sample.
The profiling section of the log shows that for the ASR inference:
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
- 28,910,172 total cycle: The number of NPU cycles.
@@ -575,7 +575,7 @@ The profiling section of the log shows that for the ASR inference:
- 863 idle cycles: The number of cycles for which the NPU was idle.
- 13,520,864 AXI0 read beats: The number of AXI beats with read transactions from the AXI0 bus. AXI0 is the bus where
- the *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+ the *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
- 2,841,970 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.