What is the relationship between Vela versions and Ethos‑U software versions?

I would like to understand the relationship between Vela compiler versions and Arm Ethos‑U software components.

  1. What is the version relationship between Vela and Ethos‑U?

    • Is there an officially recommended or validated mapping between:
      • Vela versions
      • Ethos‑U IP versions (e.g. Ethos‑U55)
      • Ethos‑U Core Driver
      • Ethos‑U Core Software
      • Ethos‑U Core Platform
    • If such a relationship exists, is there a compatibility or version mapping table that can be shared?
  2. Specific question for the latest Vela release

    • The current latest Vela version is Vela 5.0.0.
    • For a system based on Ethos‑U55, which versions of the following components are recommended or required to be used together with Vela 5.0.0?
      • Ethos‑U Core Driver
      • Ethos‑U Core Software
      • Ethos‑U Core Platform

Any official guidance, documentation, or best‑practice recommendations would be greatly appreciated.

  • Hi, I've checked with the Ethos-U experts and...

    1. Yes, there is an officially tested and supported versions relationship between the software components. It can be found in the JSON files in https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u (see below for the latest version).
      Having said that, the interface between Vela and the driver doesn’t change that often and so it is usually possible to use different versions with the rest of the Ethos-U software stack.
  • Further thought from my expert...

    There's also some good examples here that will be helpful:

    https://gitlab.arm.com/artificial-intelligence/ethos-u/ml-embedded-evaluation-kit 

  • Hi Ben,

    Thanks for your reply.

    I am currently using Vela 4.2.0 with Ethos‑U55, and the inference processing works well with correct results.

    Recently, I am trying to upgrade my inference workflow to the latest Vela 5.0.0. During this process, I noticed that Vela 5.0.0 introduces new parameters in the vela.ini configuration file compared with Vela 4.2.0.

    When I reuse my existing vela.ini file from Vela 4.2.0 directly with Vela 5.0.0, I encounter the following error (see below). This seems to indicate that my current configuration file is no longer fully compatible and needs to be updated.

    My questions are:

    • What are the required changes when migrating a vela.ini file from Vela 4.2.0 to 5.0.0?
    • Is there any guideline or example vela.ini for Vela 5.0.0 with Ethos‑U55 that can be referenced?

    Thanks in advance for your help.

    Vela version: 5.0.0
    Target NPU: Ethos-U55
    Previous Vela version: 4.2.0
    Error message:
    (py_312) C:\xxxx>vela model\tf_fp32\xxx_int8.tflite --accelerator-config=ethos-u55-256 --optimise Performance --config model\tf_fp32\vela.ini --system-config=RA8P1 --memory-mode=Sram_Only --output-dir model\tf_fp32\out_xxx_int8_sram_mram
    Info: Changing const_mem_area from Sram to OnChipFlash. This will use the same characteristics as Sram.
    Memory '' not found in configured memories.
    Traceback (most recent call last):
    File "<frozen runpy>", line 198, in _run_module_as_main
    File "<frozen runpy>", line 88, in _run_code
    File "C:\Users\abc\AppData\Local\miniforge3\envs\py_312\Scripts\vela.exe\__main__.py", line 6, in <module>
    File "C:\Users\abc\AppData\Local\miniforge3\envs\py_312\Lib\site-packages\ethosu\vela\vela.py", line 1249, in main
    process_regor(
    File "C:\Users\abc\AppData\Local\miniforge3\envs\py_312\Lib\site-packages\ethosu\vela\vela.py", line 135, in process_regor
    compiled_model = regor.compile(accelerator, network, fmt, system_config, options=options, verbose=True)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    RuntimeError: Compilation failed: Staging memory not configured

  • Hi,

    I've managed to track down an answer -

    The vela.ini file format has not changed between 4.2.0 and 5.0.0.
    To verify, run this command using each vela version and then diff the files:
    cat "$(vela --list-configs Arm/vela.ini | sed -n '1s/^Configurations defined in \(.*\):$/\1/p')" > vela-$(vela --version).ini
    The main difference between v4.x.x and v5.0.0 is the default compilation core chosen (regor vs legacy). I suspect that the custom config contains something that the new compilation core doesn’t like and you could test this by forcing the new (regor) compilation core in vela 4.2.0 by adding the additional option “--debug-force-regor”.
    Having verified that, you will presumably still have the issue, so then could you please file an issue on https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/issues including steps for us to be able to recreate the failure.