giotto-ai / giotto-tda

A high-performance topological machine learning toolbox in Python
https://giotto-ai.github.io/gtda-docs
Other
859 stars 175 forks source link

!! Someone please build python wheels for giotto-tda on aarch64 (Nvidia Jetson) #695

Open silent-code opened 7 months ago

silent-code commented 7 months ago

The problem: Can't install giotto-tda, giotto-ph, giotto-time etc on aarch64 (NVIDIA Jetson) architectures. I get the error:

ERROR: Could not build wheels for giotto-tda.

The reason: Allowing us to use giotto-based analysis tools on embedded platforms such as Nvidia Jetson will certainly spotlight this amazing toolbox as a centerpiece for purpose-built machine learning and AI applications going forward in the future. One of the main problems with the install seems to be the turf c platform adapter used in the require install of giotto-ph. It does not appear to include the aarch64 architecture as an option and the compile fails. I do not have enough experience to modify the cmake files however. Please someone adapt this amazing toolbox to aarch64!

Thank you!

Here is my specific setup:

NVIDIA Jetson Orin AGX L4T 34.1.1 [ JetPack 5.0-b114 ] Ubuntu 20.04.4 LTS Kernel Version: 5.10.65-tegra CUDA NOT_INSTALLED CUDA Architecture: NONE OpenCV version: 4.5.0 OpenCV Cuda: YES CUDNN: 8.3.2.49 TensorRT: 8.4.0.11 Vision Works: NOT_INSTALLED VPI: ii libnvvpi2 2.0.14 arm64 NVIDIA Vision Programming Interface library Vulcan: 1.3.203

matteocao commented 6 months ago

which version of python were you using @silent-code ? can you please try to install giotto-tda, giotto-ph, pyflagser now?

silent-code commented 6 months ago

Python version: 3.8.10

@matteocao Ok I will try to install. Standby ...

matteocao commented 6 months ago

Dear @silent-code ,

I was checking this thread and it seems that the same improvements could be applied to giotto-tda.

However, giotto-tda depends on giotto-ph and pyflagser and I believe they shall both get wheels for aarch64 as well.

Fortunately, we are using the same cibuildwheel macro mentioned in the thread in all repos.

Conclusion: the current installation may not work, but it may be reasonably simple to modify the CI script using the suggestion of the thread mentioned above to additionally build those wheels.

If you could prepare a PR for each of these three repos with the addition of the aarch64 architecture, I can review them and hopefully solve your issue in the proper way.