ethos-u-vela 5.1.0


pip install ethos-u-vela

  Latest version

Released: Jun 04, 2026

Project Links

Meta
Author: Arm Ltd
Requires Python: >=3.10

Classifiers

Development Status
  • 5 - Production/Stable

Intended Audience
  • Developers

Operating System
  • MacOS
  • Microsoft :: Windows
  • POSIX :: Linux

Programming Language
  • C
  • C++
  • Python :: 3

Topic
  • Scientific/Engineering :: Artificial Intelligence
  • Software Development :: Compilers

Vela

Vela is a compiler for Arm Ethos-U NPU edge AI devices. It is used to convert neural networks defined in TOSA or TensorFlow Lite/LiteRT format into Ethos-U command streams.

The input network must have quantised activations and quantised weights in order to be accelerated by the Ethos-U.

More details about Ethos-U devices:

Installation

Vela runs on:

  • Apple macOS
  • Linux
  • Microsoft Windows

The simplest way to obtain Vela is to install it directly from PyPi. The following will install the latest released version:

pip3 install ethos-u-vela

Requirements

If your system does not match one of the pre-built binary wheels on PyPi then the installation process will attempt to build Vela from its source code. To do this it requires the following:

Manually Building

The source code is available from Arm's GitLab Instance, see Building From Source for more details.

Development builds

Development builds are also available as Python wheels in the GitLab Package Registry. The development builds reflect the current state of the code and are not of release quality.

Install the latest nightly build

pip3 install --pre --only-binary=ethos-u-vela \
  --index-url=https://gitlab.arm.com/api/v4/projects/10397/packages/pypi/simple \
  ethos-u-vela

Install a specific nightly build

pip3 install --only-binary=ethos-u-vela \
  --index-url=https://gitlab.arm.com/api/v4/projects/10397/packages/pypi/simple \
  "ethos-u-vela==<exact dev version>"

Discover available nightly versions

Use pip index versions with pre-releases enabled and restrict to wheels:

pip3 index versions --pre --only-binary=ethos-u-vela \
  --index-url=https://gitlab.arm.com/api/v4/projects/10397/packages/pypi/simple \
  ethos-u-vela

Or browse the Package Registry on GitLab: https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/packages

Getting Started

Once installed, Vela can be run from the command line by specifying just two settings:

  • Target Ethos-U device; --accelerator-config
  • Neural network file; .tflite or .tosa
vela --accelerator-config ethos-u55-128  my_network.tflite

However, it is highly recommended that you specify some additional settings that describe the Ethos-U system and what optimisation strategy the compiler should use. The three additional settings are:

  • System configuration; --system-config
  • Memory mode; --memory-mode
  • Optimisation strategy; --optimise

The system configuration and memory mode refer to definitions in a configuration file. These are specific to the target system. However an example configuration (Arm/vela.ini) containing some generic reference systems is provided as part of the installation.

The optimisation strategy indicates whether the compiler should minimise inference time or runtime memory usage.

See CLI Options for more information.

Example of how to set the system configuration and memory mode:

vela --config Arm/vela.ini --system-config Ethos_U85_SYS_DRAM_High --memory-mode Dedicated_Sram_384KB --accelerator-config ethos-u85-256  my_network.tosa

Example of how to set the optimisation strategy:

vela --optimise Size --accelerator-config ethos-u55-64  my_network.tflite

Command to list all known configuration files:

vela --list-config-files

Command to list all configurations in a configuration file:

vela --list-configs Arm/vela.ini

Output

The result of the compilation is an optimised network in either TFLite or Raw format depending upon the input network. This can be overridden using the --output-format option.

TFLite output contains TensorFlow Lite Custom operators for those parts of the network that can be accelerated by the Ethos-U NPU. Parts of the network that cannot be accelerated are left unchanged.

Raw output contains the command stream and weight data required to run Ethos-U parts of the optimised network. This is stored in .npz format. See the Output format CLI Option for more information. This does not contain CPU parts of the network and so cannot be used for converting TFLite to TOSA.

Raw output includes tensor quantization metadata in the .npz output.

Warnings

It is important to thoroughly review and understand all warning messages generated by the compiler as they could indicate that not all operators were optimally converted to run on the Ethos-U.

Performance information

A performance estimation summary is reported after compilation. The cycle and bandwidth numbers should not be taken as accurate representations of real performance numbers and they should not be compared against those from other compilations that use different settings or configurations. The numbers reported allow the compiler to make its optimisation decisions only. For accurate performance numbers the network should be run and profiled on an FPGA. For approximate performance numbers the network can be run on a Fixed Virtual Platform (FVP) Model.

Additional Vela Information

Inclusive language commitment

This product conforms to Arm’s inclusive language policy and, to the best of our knowledge, does not contain any non-inclusive language. If you find something that concerns you then email terms@arm.com.

License

Vela is licensed under Apache License 2.0.

Wheel compatibility matrix

Platform CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13
macosx_11_0_arm64
manylinux2014_aarch64
manylinux2014_i686
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_i686
manylinux_2_17_x86_64
win32
win_amd64

Files in release

ethos_u_vela-5.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.7MiB)
ethos_u_vela-5.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8MiB)
ethos_u_vela-5.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.0MiB)
ethos_u_vela-5.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9MiB)
ethos_u_vela-5.1.0-cp310-cp310-win32.whl (1.4MiB)
ethos_u_vela-5.1.0-cp310-cp310-win_amd64.whl (1.6MiB)
ethos_u_vela-5.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.7MiB)
ethos_u_vela-5.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8MiB)
ethos_u_vela-5.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.0MiB)
ethos_u_vela-5.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9MiB)
ethos_u_vela-5.1.0-cp311-cp311-win32.whl (1.4MiB)
ethos_u_vela-5.1.0-cp311-cp311-win_amd64.whl (1.6MiB)
ethos_u_vela-5.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.7MiB)
ethos_u_vela-5.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8MiB)
ethos_u_vela-5.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.0MiB)
ethos_u_vela-5.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9MiB)
ethos_u_vela-5.1.0-cp312-cp312-win32.whl (1.4MiB)
ethos_u_vela-5.1.0-cp312-cp312-win_amd64.whl (1.6MiB)
ethos_u_vela-5.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.7MiB)
ethos_u_vela-5.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8MiB)
ethos_u_vela-5.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (2.0MiB)
ethos_u_vela-5.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9MiB)
ethos_u_vela-5.1.0-cp313-cp313-win32.whl (1.4MiB)
ethos_u_vela-5.1.0-cp313-cp313-win_amd64.whl (1.6MiB)
ethos_u_vela-5.1.0.tar.gz (2.2MiB)
Extras:
Dependencies:
flatbuffers
numpy (>=1.23.0)