TVMC tuning for M55/U55 (MPS3-AN547) Arm FPGA Board

According to https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_ethosu.html the model compilation for Cortex-M55/Ethos-U contains the target specification

tvmc compile --target=ethos-u,cmsis-nn,c \
         --target-ethos-u-accelerator_config=ethos-u55-256 \
         --target-cmsis-nn-mcpu=cortex-m55 \
         --target-c-mcpu=cortex-m55 \
         ...

Now, I want to use tvmc for model tuning. Unfortunately, the command

tvmc tune --target=ethos-u,cmsis-nn,c \
         --target-ethos-u-accelerator_config=ethos-u55-256 \
         --target-cmsis-nn-mcpu=cortex-m55 \
         --target-c-mcpu=cortex-m55 \
         --output ./build/mobilenet_v1_1.0_224_quant.json \
         ./mobilenet_v1_1.0_224_quant.tflite

gives an error

ValueError: Target kind "ethos-u,cmsis-nn,c" is not defined. Target creation from string failed: ethos-u,cmsis-nn,c

It looks like specifying the different targets for execution on Ethos-U, on the M55 with CMSIS-NN and on the M55 with C kernels does not work with the ‘tune’ sub-command or has a different syntax. Can anyone help me getting the ‘tvmc tune’ command working for the MPS3-AN547 board?

Regards Manuel

Hi @Manuel, at current, tuning has not been explored for the targets ethos-u,cmsis-nn. They leverage “target hooks” to bypass parts of the default compiler flow in TVM, and tuning is one of those components that is bypassed. It might be possible to tune the fallback C kernels independently, however.