No successful assignments: Agent infeasible error during HEF compilation for Raspberry Pi 5 (Hailo-8L)

Hi Hailo Community,

I am working on my first project (named AAP-VEX) and I’ve hit a wall during the compilation phase.

My hardware setup:

  • Raspberry Pi 5

  • Hailo-8L (M.2 HAT)

  • Raspberry Pi Camera Module 3

Software Environment:

  • I am using the latest tools available on the Hailo website.

  • I have tried the compilation process both using Hailo Model Zoo on WSL and within the official Hailo Docker container.

What I’ve done so far:

  1. Trained a custom model using a custom dataset at 640x640 resolution.

  2. Tried several architectures: YOLOv8s, YOLOv8n, and YOLOv5n.

  3. Successfully converted the models from .pt to .onnx and then to .har.

The Problem: Every time I attempt to compile the .har file into a .hef file, the process fails with the following error: No successful assignments: concat14 errors: Agent infeasible

This happens consistently across all models I’ve tried (v5n, v8n, v8s). Since I am using the Hailo-8L, I suspect it might be a resource allocation issue, but I am unable to bypass this “Agent infeasible” bottleneck.

Questions:

  • What am I doing wrong in the conversion or compilation flow?

  • Are there specific constraints for the Hailo-8L that I should account for in my .alls configuration or during the ONNX export?

I would prefer to solve this on my end to learn the process, but if anyone is willing to take a look at my files, I am happy to share the model for debugging.

Thanks in advance for your help!

Hi @user1047,
the No successful assignments: concat14 errors: Agent infeasible error is a classic sign that the ONNX graph includes the NMS/post-processing Concat layers that should not be compiled onto the Hailo device. For YOLOv8 (and similarly for YOLOv5), you need to cut the graph before the NMS by specifying the correct end-node-names during parsing. When you run hailo parser onnx your_model.onnx --hw-arch hailo8l , the parser itself will detect the NMS structure and recommend the correct end nodes - for YOLOv8 these are typically:

/model.22/cv2.0/cv2.0.2/Conv 
/model.22/cv3.0/cv3.0.2/Conv 
/model.22/cv2.1/cv2.1.2/Conv 
/model.22/cv3.1/cv3.1.2/Conv 
/model.22/cv2.2/cv2.2.2/Conv 
/model.22/cv3.2/cv3.2.2/Conv

If you’re using hailomz compile, make sure you pass --hw-arch hailo8l (not hailo8), and verify the YAML config file has the correct end-node-names under parser: nodes: matching your model’s architecture. The NMS post-processing will then run on the host CPU via HailoRT rather than on the device.
Thanks,

1 Like
That was helpful! 640x640 is gone. What's the maximum resolution I can use for Hailo without dropping below 30 fps?

Hi @user1047,
It depends on many factors, so maybe the best option is to explore per your specific case.
Thanks,