Skip to main content
Question

Low performance of the Metis M2 on the Raspberry Pi5


Hi! I'm testing the Metis M2 on a Rapsberry Pi 5 using the Ubuntu 22.04 container. I can successfully get results using the inference test suggested by the article:

./inference.py yolov8s-coco-onnx ./media/traffic1_480p.mp4

 

Unfortunately, I get around 4FPS. Is this expected? If I profile the device and the host separately (using --show-host-fps and --show-device-fps) I see that the device is running at ~800FPS while the host is the one bottlenecking at ~4FPS.

I tried enabling GLES processing using 

export AXELERA_OPENGL_BACKEND=gles,3,1

but, unfortunately, it makes not much of a difference. I also tried setting the PCI to gen3 by setting the following in the /boot/firmware/config.txt, without any luck:

dtparam=pciex1_gen=3

As a reference: these are the instructions I'm following:

https://support.axelera.ai/hc/en-us/articles/26362016484114-Bring-up-Voyager-SDK-in-Raspberry-Pi-5

https://support.axelera.ai/hc/en-us/articles/25953148201362-Install-Voyager-SDK-in-a-Docker-Container

Is this performance normal for the Raspberry Pi5? Or am I doing something wrong?

Thanks!

Michael

3 replies

Forum|alt.badge.img+2

Hi ​@mgruner ,

That is indeed lower than expected FPS, as our tests run much faster.

  • What M.2 HAT are you using?

I suppose you already did it but can you double check that:

  • The following line has been added to /boot/firmware/config.txt:
    • dtparam=pciex1_gen=3
  • You have rebooted your Raspberry Pi with sudo reboot for these settings to take effect.

Once you have done this, let’s check the actual speed of the PCIe link by doing and share the output with us:

  • sudo lspci -s 0000:01:00.0 -vvv

Note: you have to use the address where Metis is located (which might or might not be 0000:01:00.0), which you can find doing lspci.

 

Kind regards,

Victor


Forum|alt.badge.img+2

Hello ​@mgruner , I have been able to reproduce your issue and have found a workaround.

 

Can you please try running like this:

 

AXELERA_USE_DOUBLE_BUFFER=0 ./inference.py yolov8s-coco-onnx ./media/traffic1_480p.mp4 

 

If that crashed, please try:

 

AXELERA_USE_DOUBLE_BUFFER=0 AXELERA_CONFIGURE_BOARD=,30 ./inference.py yolov8s-coco-onnx ./media/traffic1_480p.mp4 

 

For some reason we are investigating, it looks like in some cases something is going wrong with double buffering on Raspberry Pi 5. Note that the two commands I shared are almost not affecting performance.

 

Let us know how it goes.

 

Best,

 

Victor

 

FYI ​@Spanner 


  • Author
  • Cadet
  • 1 reply
  • July 4, 2025

Hey ​@Victor Labian, thanks for the prompt response and workarounds! I don't have the Metis with me right now, but will test next week and report back.