Open3D icon indicating copy to clipboard operation
Open3D copied to clipboard

Cannot import open3d.cuda on ARM platform - Jetson ORIN

Open rahulswa08 opened this issue 2 years ago • 6 comments

Checklist

Steps to reproduce the issue

I first cloned Open3D by:

git clone https://github.com/isl-org/Open3D.git
cd Open3D

Then, I build Open3D (on Ubuntu 20.04, with CUDA 11.5) with:

conda activate your-virtual-env

cd Open3D && mkdir build && cd build
cmake -DBUILD_CUDA_MODULE=ON -DBUILD_GUI=ON ..

# Build
make -j$(nproc)
make install-pip-package -j$(nproc)

Error message

No import error or warning was shown. But after looking into package I found that the open3d is reaching the warning below while initializing


Open3D was built with CUDA support, but an error ocurred while loading the Open3D CUDA Python bindings. This is usually because the CUDA libraries could not be found. Check your CUDA installation. Falling back to the CPU pybind library. Reported error: {os_error}.',

Open3D, Python and System information

- Operating system: Ubuntu 20.04 ARM 64
- Python version: Python 3.8.16 
- Open3D version: output from python: 0.17.0+6370a58b9
- System architecture:  jetson ORIN AGX 32GB
- Is this a remote workstation?:  no
- How did you install Open3D?:  build from source
- Compiler version (if built from source): gcc 9.4

Additional information

Clearly Open3d is not albe to identify the GPU on jetson. CUDA 11.8 is installed on jetson and pytorch is able to detect GPU on the system but I don't understand why open3d is not able to identify the gpu.

Am I missing any additional drivers to make this work or is this a bug?

rahulswa08 avatar Jun 30 '23 20:06 rahulswa08

also there is no docker version with cuda for arm. this is a major oversight. jetson devices are the main edge devices that would use open3d and must be cuda enabled. how can we do it?

AwokeKnowing avatar Jul 24 '23 06:07 AwokeKnowing

As it stands I don't think anyone has been able to successfully build against the Nvidia Orin, I believe it's due to a memory conflict as a result of the Tegra unified memory architecture.

manbehindthemadness avatar Jul 30 '23 16:07 manbehindthemadness

o wow that's pretty crazy since pytorch with cuda and opencv with cuda work fine. what are the dependencies that cause the headache?

AwokeKnowing avatar Jul 30 '23 19:07 AwokeKnowing

The issue is (as I understand it) in order to build open3d for CUDA you must build once for GPU, and build again for CPU; however, on Tegra systems the memory for CPU and GPU is the same silicon (This is how it was explained to me, I haven't gone in there and looked for myself)

manbehindthemadness avatar Jul 30 '23 19:07 manbehindthemadness

I built manually with cuda and ran into the following error during install stage.

cmake -DBUILD_CUDA_MODULE=ON -DBUILD_GUI=ON .. make -j$(nproc) make install-pip-package -j$(nproc)

Error: removing build/bdist.linux-aarch64/wheel pip wheel created at /home/nvidia/wsp/clawbot/open3dV2/Open3D/build/lib/python_package/pip_package [100%] Built target pip-package WARNING: Skipping open3d as it is not installed. WARNING: Skipping open3d-cpu as it is not installed. ERROR: open3d-0.17.0+3ddc69b81-cp38-cp38-manylinux_2_31_aarch64.whl is not a supported wheel on this platform.

Platform: Jetson agx xavier uname -a : Linux nvidia-desktop 5.10.120-tegra #1 SMP PREEMPT Tue Aug 1 12:32:50 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux

Let me know if there is a fix.

sridhargunnam avatar Oct 15 '23 22:10 sridhargunnam

it builds including ubuntu 24.04 jp7: https://github.com/isl-org/Open3D/pull/7240

johnnynunez avatar May 08 '25 15:05 johnnynunez