Open3D使用指南 (v1.5)

更新时间:
复制 MD 格式

When you install certain 3D detection frameworks, such as mmdetection3d, Open3D is automatically installed. However, the pre-compiled package installed via pip install open3d contains a GPU binary that is incompatible with the PPU. You must recompile it from source by following the steps below.

These steps use Open3D v0.18.0 as an example and were verified in a Docker container with torch 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, 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

  • core/test_linalg.py contains errors caused by unsupported cusolverDnSgesvd_bufferSize / cusolverDnDgesvd_bufferSize operations.

  • A few test cases in the ml_ops directory resulted in a core dump.

  • Current pass rate: 8193 / 8213 = 99.7%

Known issues

  • Unit test runtime issues

    • test_linalg.py::test_svd

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

    • test_invert_neighbors_list.py

      • Providing an incorrect shape as input to ml.ops.invert_neighbors_list causes a segmentation fault (core dumped) instead of the expected exception.

    • test_ragged_tensor.py

      • Iterating through the elements of a RaggedTensor causes a segmentation fault (core dumped).