Python AI Application Development on Genio 1200 with Yocto or Ubuntu

I would like to integrate analytical AI applications in python on Genio 1200 with Yocto and Ubuntu. I’ve found

  • in my python program, in spite of using “/usr/sbin/neuronrt” command, I am not able to launch neuron runtime and ONNX Runtime (missing NeuronExecutionProvider)
  • I am not able to find /usr/sbin/neuronrt and related neuron libraries in Ubuntu

Can you please tell me where to download these missing (python) packages and software component and how I can install them on my Genio 1200 with both Yocto and Ubuntu operating system ?

Hi Sting_Cheng,

Thanks for reaching out!

Here is a quick summary of the Analytical AI framework support on Genio 1200:

  • On Yocto: both Neuron Runtime and ONNX Runtime are supported.
  • On Ubuntu: only Neuron Runtime is supported; ONNX Runtime is currently not supported.

For more details about platform support, please refer to the AI Supporting Scope

To run Neuron Runtime on Ubuntu, you will need to install the mtk-neuropilot package from the Snap Store. This page describes how to install NeuroPilot on Ubuntu and walks through the AI workflow.

Best,
Jun

Hi Jun,

Many thanks for your input, I have the following further questions, hope you can provide some hints for my reference.

  • What do you mean by “Neuron Runtime”, do you mean using neuronrt command on Yocto or Ubuntu ?
  • As for ONNX Runtime on yocto, does the python onnx runtime currently support CPU only? I’ve tried the following python code snippet with error

genio_onnx_inference.py

import numpy as np
import onnxruntime as ort
import time

def run_genio_onnx_inference(model_path):
available_providers = ort.get_available_providers()
print(f"Available Providers: {available_providers}")

if 'NeuronExecutionProvider' not in available_providers:
    print("Warning: NeuronEP not found. Ensure libonnxruntime_providers_neuron.so is in LD_LIBRARY_PATH.")
    selected_providers = \['CPUExecutionProvider'\]
else:

$ python3 ./genio_onnx_inference.py
Available Providers: [‘XnnpackExecutionProvider’, ‘CPUExecutionProvider’]
Warning: NeuronEP not found. Ensure libonnxruntime_providers_neuron.so is in LD_LIBRARY_PATH.
Session creation failed: [ONNXRuntimeError] : 3 : NO_SUCHFILE : Load model from resnet50_optimized.onnx failed:Load model resnet50_optimized.onnx failed. File doesn’t exist

I’ve been trying to neuronrt on my ubuntu with the following error message

/snap/mtk-neuropilot/10/usr/sbin/neuronrt -m hw -a /home/sting/test3/yolov8s-quant/yolov8s_biv_quant_mdla2.0.dla -i ./temp_input_640.bin -o ./temp_out1.bin -o ./temp_out2.bin -o ./temp_out3.bin -o ./temp_out4.bin -b 100
INFO: dlopen libneuronusdk_runtime.mtk.so
Can’t open config file
ERROR: Getting configuration data failed.
WARNING: Cannot create device for MDLA_2_0
WARNING: Found an unsupported target: MDLA_2_0
ERROR: Cannot prepare execution.
ERROR: Successfully load network but cannot start execution.
ERROR: Runtime loadNetworkFromFile fails.
ERROR: Cannot load model from file /home/sting/test3/yolov8s-quant/yolov8s_biv_quant_mdla2.0.dla
ERROR: Read dla fail

[Q1] What does “Neuron Runtime” mean?

Neuron Runtime is an independent offline inference path that directly executes compiled .dla models on the NPU. The neuronrt command is the CLI tool of this path.

In contrast, online inference is handled by TFLite Interpreter or ONNX Runtime, which delegate execution to CPU / GPU / NPU backends.

For more details, you can check our software architecture page:
Software Architecture


[Q2] Does Python ONNX Runtime on Yocto only support CPU?

Yes — on Genio 1200, ONNX Runtime currently supports the CPU backend only.
For the per-platform support matrix, please refer to Supporting Scope on Yocto

To collect performance numbers on the CPU backend, you can run:

python3 /usr/share/onnxruntime_example/label_image.py --model efficientnet-lite4.onnx

[Q3] neuronrt failure on Ubuntu (snap)

Before digging into the log, could you share the following so we can check on our side?

  1. The Ubuntu image version running on your Genio 1200.
  2. The mtk-neuropilot snap version and channel:
snap list mtk-neuropilot
snap info mtk-neuropilot

Best,
Jun

Hi June,

The followings are my feedback to [Q2] and [Q3].

[Q2] Does Python ONNX Runtime on Yocto only support CPU?

The current yocto on my Genio 1200 is scarthgap_k6.6_v25.1.1_genio-1200-evk. there seems to be no /usr/share/onnxruntime_benchmark on my genio ?

~# python3 /usr/share/onnxruntime_benchmark/onnxruntime_benchmark.py --auto
python3: can’t open file ‘/usr/share/onnxruntime_benchmark/onnxruntime_benchmark.py’: [Errno 2] No such file or directory

[Q3] neuronrt failure on Ubuntu (snap)

$ snap list mtk-neuropilot
Name Version Rev Tracking Publisher Notes
mtk-neuropilot 7.1+g20250723.e1f31314 10 latest/edge asaly12 -

$ snap info mtk-neuropilot
name: mtk-neuropilot
summary: APU firmware and demo app for Mediatek Genio 1200
publisher: Asal Mirzaieva (asaly12)
store-url: Install mtk-neuropilot on Linux | Snap Store
license: unset
description: |
Enables Mediatek Genio board’s APU and provides a standard “label_image”
demo app to test it.
commands:

  • mtk-neuropilot.apu-mdw-test
  • mtk-neuropilot.benchmark
  • mtk-neuropilot.demo
  • mtk-neuropilot.edma-test
  • mtk-neuropilot.label-image-armnn-delegate
  • mtk-neuropilot.label-image-gpu-external-delegate-prebuilt
  • mtk-neuropilot.mdla2-player
  • mtk-neuropilot.mdla3-player
  • mtk-neuropilot.nnstreamer-example-face-detection
  • mtk-neuropilot.nnstreamer-example-image-classification
  • mtk-neuropilot.nnstreamer-example-low-light-image-enhancement
  • mtk-neuropilot.nnstreamer-example-monocular-depth-estimation
  • mtk-neuropilot.nnstreamer-example-object-detection
  • mtk-neuropilot.nnstreamer-example-object-detection-yolov5
  • mtk-neuropilot.nnstreamer-example-pose-estimation
  • mtk-neuropilot.vpu5-test
    snap-id: sSP0CEc0Io9eD9pJOkvB1CKLb3s3GXMN
    tracking: latest/edge
    refresh-date: 8 days ago, at 05:55 UTC
    channels:
    latest/stable: –
    latest/candidate: 7.0+g20250430.e1f31314 2025-05-28 (9) 258MB -
    latest/beta: ↑
    latest/edge: 7.1+g20250723.e1f31314 2025-07-23 (10) 561MB -
    installed: 7.1+g20250723.e1f31314 (10) 561MB -

Hi Sting_Cheng,

Quick correction on my Q2 — I’ve also updated the original reply for the record.

To be precise, on Genio 1200, ONNX Runtime currently supports the CPU backend only. You can check the per-platform support matrix here:
Supporting Scope on Yocto

If you are using the scarthgap_k6.6_v25.1.1_genio-1200-evk image, you can verify the CPU backend performance with:

python3 /usr/share/onnxruntime_example/label_image.py --model efficientnet-lite4.onnx

Best,
Jun