SuperPoint-based VIO: Moving from Raspberry Pi to Hailo NPU + C++ integration

Hi there,
I’m working on a SuperPoint-based VIO pipeline, but Raspberry Pi doesn’t provide enough performance for my real-time requirements. I’m planning to switch to a Hailo module with NPU acceleration. My goal is to run my trained model on Hailo from C++, while keeping the remaining control/business logic on the CPU in C++.

I’d appreciate guidance on the following:

  1. Deployment workflow: What’s the recommended end-to-end path to bring a custom model onto Hailo? (model conversion/compilation, invoking it from C++, sample project structure, etc.)

  2. Conditional execution: How can I decide—at runtime—whether a model runs on the Hailo NPU or on the CPU (e.g., based on load/thermal/RT constraints)? Any best-practice architecture patterns?

  3. Scope: Does the Hailo NPU accelerate only vision/NN inference parts? Is it possible to offload non-vision tasks to the NPU, or should those remain on the CPU?

  4. Resources: Could you point me to a detailed C++ tutorial (step-by-step) for Hailo integration—sample code, best practices, and tips for measuring/optimizing latency?

Context:

  • Task: SuperPoint for VIO (feature extraction + matching + pose estimation)

  • Platform: Raspberry Pi → Hailo-based solution (exact module TBD)

  • Language/Stack: C++

  • Goal: Low-latency, real-time loop; control on CPU, inference on NPU

Thanks in advance for any pointers, example repos, or documentation!

The Hailo AI Software Suite Docker has built in tutorials. Inside the Docker you can start a Jupyter Notebook server with notebooks for each step by calling:

hailo tutorial

Models need to be converted into a proprietary binary format called HEF to run on a Hailo devices using the Hailo Dataflow Compiler (part of the AI Software Suite).

The Hailo devices can accelerate models built from supported layers. You can find them in the Hailo Dataflow Compiler User Guide. Any other layer needs to be executed on the host CPU. The networks are typically vison related because of the high performance but other inputs are possible.

See first question above.
We also have multiple repositories on GitHub and extensive documentation available for download in the Hailo Developer Zone.

GitHub - Hailo Application Code Examples
GitHub - Hailo RPi5 Examples

Thank you for the reply