Skip to main content

Seems Ubuntu 24.04 is not supported at the moment. What are the plans for this version? Can you give some insight on what needs to be changed to get this installed on that version?

Seems Ubuntu 24.04 is not supported at the moment. What are the plans for this version? Can you give some insight on what needs to be changed to get this installed on that version?

Ah, yeah, 24.04 😀 We tend towards 22.04 because that’s what has been officially tested, so we know everything’s been validated on that version.

But really, I don’t think there’s much, if anything, in the SDK that’s tightly coupled to low-level kernels, so in theory compatibility could actually be pretty smooth (I’m not massively technical, so this isn’t official or anything 😄). ​@Steven Hunsche mentioned here that using Docker is the way to go with 24.04, if that helps?

Possibly if there are any new libraries or Python packages in 24.04, they might trip things up a little. But if you (or anyone) wants to give 24.04 a test run with Voyager that’d be a fantastic experiment and we’d be right here to help out 👍 No harm in trying it, anyway.

Do create a post on the community if you give it a shot so we can all follow along and assist as needed!


Seems Ubuntu 24.04 is not supported at the moment. What are the plans for this version? Can you give some insight on what needs to be changed to get this installed on that version?

Hello ​@quant.geek , we are working on native Ubuntu 24.04 support. Until then, you can use Docker container with Ubuntu 22.04 on your Ubuntu 24.04 host to work with Voyager SDK.


Seems Ubuntu 24.04 is not supported at the moment. What are the plans for this version? Can you give some insight on what needs to be changed to get this installed on that version?

Hello ​@quant.geek , we are working on native Ubuntu 24.04 support. Until then, you can use Docker container with Ubuntu 22.04 on your Ubuntu 24.04 host to work with Voyager SDK.

That sounds like a plan! Can you point to the docker image or at least publish the image to Docker Hub?


Hello ​@quant.geek ,

Sorry for the late response.

We are currently working on a process to provide the Docker images with the SDK in a way that is is compliant with the EULA agreement.

We will update you as soon as we have this. (FYI ​@Spanner )

Thank you for your understanding and patience.

Victor


I can wait at the moment as it is far better for Axelera to build it than each individual user…Thanks!


Thank you ​@quant.geek . We are working on it and it will be ready soon. We will keep you posted :) 


Hello ​@quant.geek , 

We have created a guide to install Voyager SDK inside a Docker container.

You can find it in: 

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

We hope this helps!

Best,

Victor


Hello ​@quant.geek ,

We hope the guide was clear. Please let us know if everything is clear and if so help us by marking the reply as solution, so other community members can benefit from it. Thanks!

Best,

Victor

FYI ​@Spanner 


Hey guys,

 

Sorry for the tardiness in the response. Been busy the past few days with work and taxes...I thank you for the update! I will be trying this out at the end of the week, once my work clears up…

 

Regards,

QG


Been busy the past few days with work and taxes...

Work and taxes. You did not make this week sound awesome 🤣 

Hopefully you can chill out after all that with some AI project building fun!


I had some free time this weekend to start installing the docker files. While the driver was successful in being installed under Ubuntu 22.04:

 

08:0c.0 PCI bridge: ASMedia Technology Inc. ASM2824 PCIe Gen3 Packet Switch (rev 01)
09:00.0 Processing accelerators: Axelera AI Metis AIPU (rev 02)
0a:00.0 PCI bridge: ASMedia Technology Inc. ASM1182e 2-Port PCIe x1 Gen2 Packet Switch
 

I had several issues with building the docker image, specifically around the last steps when it was building the operators. I kept on getting the following:

 

129/128] FAILED: CMakeFiles/decode_classification.dir/src/AxDecodeClassification.cpp.o 
r129/128] /usr/bin/c++ -DAXELERA_ENABLE_AXRUNTIME -DAX_SUBPLUGIN_PATH=/home/quant.geek/voyager-sdk/operators/Release -Ddecode_classification_EXPORTS -I/home/quant.geek/voyager-sdk/operators/include -I/home/quant.geek/voyager-sdk/operators/src -I/home/quant.geek/voyager-sdk/operators/onnxruntime/onnxruntime/include -I/home/quant.geek/voyager-sdk/operators/axstreamer -I/home/quant.geek/voyager-sdk/operators/PillowResize/include -I/home/quant.geek/voyager-sdk/trackers/include -I/opt/axelera/runtime-1.2.5-1/include -I/home/quant.geek/voyager-sdk/operators/axstreamer/include -isystem /usr/include/opencv4 -isystem /usr/include/eigen3 -O3 -DNDEBUG -std=gnu++20 -fPIC -Wall -Werror -Wno-sign-compare -Wno-unused-variable -Wno-deprecated-enum-enum-conversion -Wno-deprecated-declarations -Wno-deprecated-anon-enum-enum-conversion -Wno-return-type-c-linkage -MD -MT CMakeFiles/decode_classification.dir/src/AxDecodeClassification.cpp.o -MF CMakeFiles/decode_classification.dir/src/AxDecodeClassification.cpp.o.d -o CMakeFiles/decode_classification.dir/src/AxDecodeClassification.cpp.o -c /home/quant.geek/voyager-sdk/operators/src/AxDecodeClassification.cpp
r129/128] c++: fatal error: Killed signal terminated program cc1plus
r129/128] compilation terminated.
….

….

….

129/128] [36/131] Building CXX object CMakeFiles/decode_facerec.dir/src/AxDecodeFaceRec.cpp.o
p129/128] ninja: build stopped: subcommand failed.
l129/128] make/1]: *** eMakefile:54: gst_ops_install] Error 1
o129/128] make/1]: Leaving directory '/home/quant.geek/voyager-sdk/operators'
o129/128] make: *** mMakefile:80: operators] Error 2
WARNING: Failed to make operators
refreshing pcie and firmware
WARNING: Failed to refresh pcie and firmware

Installation complete. To activate the environment, type:

  source venv/bin/activate

To get started, please see the Quick Start Guide at:

  ./docs/tutorials/quick_start_guide.md

root@docker-desktop:/home/quant.geek/voyager-sdk# 

 

The rest of the compilation failed with similar errors. Any help with this?


Thanks for the detailed info ​@quant.geek.

I’ll ask around about this. I’m no expert on Docker by any means, but I recall seeing one of the errors above on a completely different kind of project once (not even AI, so apologies if this isn’t relevant):

c++: fatal error: Killed signal terminated program cc1plus

If I recall, it was because the system or container was running out of memory. Could that be the case here?


The compilation issue went away after I allocated 25gigs to the image (yes, I have plenty to spare 😁). However, I can not run anything. During installation in the docker, it ran into:

refreshing pcie and firmware
WARNING: Failed to refresh pcie and firmware

 

The command-line for the docker image needs the device access, I think. If so, what would the docker command be?

 

Furthermore, I think adding CUDA to the list of things to install should be documented as well:

 


This is a rough guess, but looking at the guide that ​@Victor Labian wrote, maybe this is worth a try?

docker run -it --privileged \
--network=host \
--device=/dev/axelera0 \ \ <-- may need changing to the actual device path, which we don't know at this point]
-v /tmp:/tmp \
--name=voyager-sdk-1.2.5 \
ubuntu:22.04

The main thing to watch out for there is getting the right --device path. I put /dev/axelera0 in there, and we might get lucky! But chances are it could be something else (I think running ls /dev/axelera* on the host will tell you the correct path?). 

Oh, and also remove the bit in square brackets from the code block above! 😄

 


Hello ​@quant.geek ​@Spanner ,

What I’d do is to start fresh after the memory issues were solved is:

  • Remove the existing Docker image (docker rm)
  • Reboot the host
  • Check the Metis card is listed in lspci
  • Run the process in the Docker guide I shared from the beginning

Here are some additional issues I am running into, which is making this difficult:

  1. The host device file is called /dev/metis-0:9:0 under Ubuntu 24.04 which is impossible to map in docker since it doesn’t support colons in the device name. I tried everything (as well as possible workarounds posted online), but nothing works.
  2. Aliasing the device file is probably not a good idea as I suspect the code base expects it to be using that name.
  3. Once, aliased, docker still doesn’t recognize it in the image, no matter how many times I recreate the image or the container.

Any help or guidance is much appreciated...


Hello ​@quant.geek , 

Can you follow the guide here which we shared before?

In this guide there is nothing that asks you to map the device. This guide has been tested for Ubuntu 24.04 and for Raspberry Pi OS and has worked on both.


The guide was followed in every aspect, but failed multiple times. I should note that the device is installed on a PCIe board that currently hosts two Hailo and two Coral TPU devices as well. But, that shouldn’t cause any issues in terms of installation. I will delete the image and container once again and remove the device driver too on the host machine and try it again. I’ll post the steps and logs...

 


Sounds good, thank you ​@quant.geek .

Please let us know the exact steps and logs.

It is worth starting from a very clean installation again (but allocating enough gigs to the image).

Thank you for your patience!

 

If that doesn’t work (even if it should work) I would try removing the Hailo and Coral and plug the Axelera Metis card where the Hailo was and see if sth changes. But let’s first avoid doing this. Maybe from your logs we can figure out what is happening.


Hello ​@quant.geek ,

I have another suggestion before you try what i said in the previous message.

As the naming of the card uses colons, can you first create a symbolic link without colons and then pass the parameter. Something similar to:

 

sudo ln -s /dev/metis-0:9:0 /dev/metis0

docker run -it --privileged -v /tmp:/tmp --device /dev/metis0 --network=host --name=voyager-sdk-1.2.5 ubuntu:22.04


I tried that as well, hence the reason why I went towards using the --device option. But, I can try again and see. I should have some time tonight to test this out...


Reply