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...


Reply