Open3D (v1.6)

Updated at:
Copy as MD

Installing a 3D detection framework, such as mmdetection3d, often installs Open3D automatically. However, the pre-compiled package from pip install open3d contains a GPU binary that is incompatible with PPUs. You must recompile Open3D from source.

The following steps use Open3D v0.18.0 (the latest version at the time of writing) as an example and have been verified in a docker container with PyTorch 2.4 and CUDA 12.3.

Build steps

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

apt update
apt install -y xorg-dev libxcb-shm0 libglu1-mesa-dev libc++-dev libc++abi-dev

# for cuda 12.4+
# If you are using CUDA 12.4 or later, you must apply the community patch to upgrade the stdgpu version.
git cherry-pick -X theirs b7e5f163e47213fb59eb93148ebd133360cbab26
# for cuda 11.x
touch /usr/local/PPU_SDK/CUDA_SDK/lib64/liblapack_static.a
# for torch 2.x
sed -i 's/CMAKE_CXX_STANDARD 14/CMAKE_CXX_STANDARD 17/g' CMakeLists.txt

mkdir build
cd build
cmake -DBUILD_CUDA_MODULE=ON \
      -DBUILD_PYTORCH_OPS=ON \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      ..
make -j$(nproc)
make install
pip install yapf
make pip-package

pip install lib/python_package/pip_package/*.whl

python -c "import open3d"

Unit test results

Dir

File

.

test_color_map_optimization.py

1 passed

test_flags.py

1 passed

test_octree.py

9 passed

test_open3d_eigen.py

39 passed

core

test_core.py

552 passed

test_hashmap.py

16 passed

test_linalg.py

2 failed, 82 passed

test_nn.py

12 passed

test_size_vector.py

3 passed

test_sycl_utils.py

1 skipped

test_tensor_function.py

40 passed

test_torch_integration.py

5 passed

data

test_data.py

31 passed, 4 skipped

io

test_io.py

rpc/test_remote_functions.py

rpc/test_serialization.py

3 passed, 1 skipped

ml

test_contrib_iou.py

4 passed

test_contrib_subsample.py

2 passed

ml_ops

test_cconv.py

8 passed, 3 skipped

test_fixed_radius_search.py

3842 passed

test_general_sparseconv.py

8 passed

test_invert_neighbors_list.py

2 failed, 42 passed

test_ragged_tensor.py

16 failed, 10 passed

test_voxelize.py

2688 passed

...

682 passed, 12 skipped

t

geometry/test_image.py

6 passed

geometry/test_lineset.py

4 passed

geometry/test_pointcloud.py

12 passed

geometry/test_raycasting_scene.py

18 passed

geometry/test_tensormap.py

9 passed

geometry/test_trianglemesh.py

43 passed

io/test_noise.py

1 passed

io/test_realsense.py

2 skipped

registration/test_registration.py

12 passed

registration/test_transformation_estimation.py

8 passed

visualization

test_cpu_rendering.py

1 skipped

test_tensorboard_plugin.py

4 skipped

  • Tests in core/test_linalg.py failed because cusolverDnSgesvd_bufferSize and cusolverDnDgesvd_bufferSize are not supported.

  • A few test cases in the ml_ops directory caused a core dumped error.

  • Current pass rate: 8,193 / 8,213 = 99.7%

Known issues

  • Unit test execution issues

    • test_linalg.py::test_svd

      • open3d.core.svd fails because cusolverDnSgesvd_bufferSize and cusolverDnDgesvd_bufferSize are not supported.

    • test_invert_neighbors_list.py

      • Testing ml.ops.invert_neighbors_list with an incorrect input shape causes a segmentation fault (core dumped) error instead of the expected exception.

    • test_ragged_tensor.py

      • Iterating through elements in a RaggedTensor causes a segmentation fault (core dumped) error.