davidcaron / pclpy

Python bindings for the Point Cloud Library (PCL)
MIT License
413 stars 59 forks source link

Conda pcl 1.9.1 is not compiled with OMP #88

Open VisionaryMind opened 3 years ago

VisionaryMind commented 3 years ago

The title of this issue is lacking, but the problem seems fairly straightforward. If I create a Conda environment that solves for PCL, pclpy, and other required dependencies for our project (e.g. Cudf / CuPy), PCL 1.9.1 is selected, and it does not appear to implement OpenMP.

Your primary example uses MovingLeastSquaresOMP, but this is not available in Conda with the PCL version selected (i.e. method not available). Before I proceed with a new compilation of 1.9 with OpenMP, I want to ask which version of Conda PCL you are using to expose the OMP methods to the pclpy wrapper.

VisionaryMind commented 3 years ago

I can confirm that even by following the Readme directions to a tee to create a specific Conda environment with all necessary requirements, pclpy no longer has access to OMP methods. The error that is consistently thrown is:

AttributeError: module 'pclpy.pcl.surface' has no attribute 'MovingLeastSquaresOMP'

I have both downloaded and compiled PCL-1.9.1 from source separately, verifying that CMake is able to identify and use OpenMP as well as run the pclpy script download_pcl.sh in a Conda environment. In both cases, pclpy's wrapper is unable to surface the OMP methods.

To confirm this problem, I compiled a simple C++ implementation for the same OMP methods, and it works perfectly fine. I would prefer not to have to create a custom Python module for these methods, but it would seem we are left with few options.