Open3D使用指南 (v1.4.1)

更新时间:
复制 MD 格式

Certain 3D detection frameworks, such as mmdetection3d, automatically install Open3D. However, the pre-compiled package installed using pip install open3d contains GPU binaries that are incompatible with PPU environments. To use Open3D on a PPU, you must recompile it from the source. This guide explains how to compile Open3D v0.18.0. These steps have been verified in a Docker container with Torch 2.4 and CUDA 12.3.

Procedure

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 use CUDA 12.4 or later, you must apply a 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"

UT 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

  • The test core/test_linalg.py fails with an error because cusolverDnSgesvd_bufferSize and cusolverDnDgesvd_bufferSize are not supported.

  • Several test cases in the ml_ops directory result in a core dumped error.

  • The current pass rate is 99.7% (8193 out of 8213).

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

      • The ml.ops.invert_neighbors_list function does not throw the expected exception for inputs with the wrong shape. Instead, the process terminates with a segmentation fault (core dumped) error.

    • test_ragged_tensor.py

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