Pcl: [GPU] I need to acclerate point cloud processing on GPU with CUDA

Created on 9 May 2020  Â·  7Comments  Â·  Source: PointCloudLibrary/pcl


Is your feature request related to a problem? Please describe.

Recently, I do a lot study on point cloud processing with pcl, such as plane segmentation, outliers removal, down-sampling and ICP registration. But for now, these operations all on CPU and run a bit slowly beyond I need. Therefore, I want to acclerate this progress through parallel processing which support by GPU. However, I can not find the relative algorithm that run on GPU and lack of docs on it. Could helpful contributors give me some suggestions?

Context

How has the lack of this feature this issue affected you?
Time elapsed of each point cloud with about 50,0000 data points processing (includes plane segmentation, outliers removal, down-sampling and ICP registration.) on CPU.

Expected behavior

The overall time should be controlled within 100ms.

Current Behavior

The current time elapsed about 500ms on CPU.

Describe the solution you'd like

I hope more and more algorithm can be supported with GPU. I expect official team take more efforts on CUDA Toolkit.

Testing Environment

  • Operating System: Windows 10(1909)
  • IDE: Visual Studio 2017 Community
  • PCL: 1.9.1(enabled GPU, CUDA)
  • CMake: 3.11
  • CUDA Toolkit: 10.0

Describe alternatives you've considered

Open3D has similar alogrithms against pcl. It also has less support on GPU but the other branch work on it. I think pcl more mature than Open3D so I choose pcl finally.

request gpu

Most helpful comment

Closing issue as not a bug.

PS: Use instantiated template types if you're not modifying PCL

It's really poor efficiency.

There's a popular folk lore that comes to mind, but I can't seem to find a link to it.

There once was an artist who painted a nice picture. Being proud of it, the artist went to a busy plaza to show off the painting. Besides the painting, there was a sign: "Mark a place where this could use improvement"

The artist was disappointed to see the painting covered with marks. Disheartened, the painter made another painting, just as strikingly beautiful as the previous and went to the same plaza. This time, the artist modified the sign to read: "Please improve the painting where possible".

To the artists amazement, not a single person modified the painting.

Moral of the story: It's easy to complain, but difficult to make improvements even in imperfect works.

All 7 comments

Improving GPU support is definitely something to hope for, barring a few hiccups:

  • CUDA is proprietary to Nvidia hardware. Not everyone has hardware to test/run
  • Support for testing CUDA on CI is zero

If you can provide help/contributions, that'd be awesome 😄

Improving GPU support is definitely something to hope for, barring a few hiccups:

  • CUDA is proprietary to Nvidia hardware. Not everyone has hardware to test/run
  • Support for testing CUDA on CI is zero

If you can provide help/contributions, that'd be awesome 😄

But Nvidia GPU is not a quite expensive hadware that beyond the most purchasing ability if someone does not buy the very good performance. I think this should not become the obstacle influences on GPU support.

I think this should not become the obstacle influences on GPU support.

You're welcome to donate equipment to the volunteer maintainers. If not that, then you can contribute your own time and effort to improve the GPU support. Improving support for GPU is not something that we don't want to do, we really do want to support it, but we lack the time as well as ability to provide tested implementations.

To reiterate, even ignoring future improvements, we can't be 100% assured that the GPU modules are working because the CI we use (for free) doesn't have GPU support. We have to rely on specific maintainers and community members to report issues instead.

Marking this as stale due to 30 days of inactivity. It will be closed in 7 days if no further activity occurs.

So , until now, pcl really only supports the acceleration of a small number of point cloud processing , like octree, segematation, based on cluster, which I always thought this problem is caused by my incomplete compilation of the source code.

Once more, pcl compilation is very very slowly. Although I made a little modication, I want to wait a long time for the template method compilation. It's really poor efficiency.

Closing issue as not a bug.

PS: Use instantiated template types if you're not modifying PCL

It's really poor efficiency.

There's a popular folk lore that comes to mind, but I can't seem to find a link to it.

There once was an artist who painted a nice picture. Being proud of it, the artist went to a busy plaza to show off the painting. Besides the painting, there was a sign: "Mark a place where this could use improvement"

The artist was disappointed to see the painting covered with marks. Disheartened, the painter made another painting, just as strikingly beautiful as the previous and went to the same plaza. This time, the artist modified the sign to read: "Please improve the painting where possible".

To the artists amazement, not a single person modified the painting.

Moral of the story: It's easy to complain, but difficult to make improvements even in imperfect works.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mgarbade picture mgarbade  Â·  3Comments

nh2 picture nh2  Â·  5Comments

rmsalinas picture rmsalinas  Â·  3Comments

dsravankumar1987 picture dsravankumar1987  Â·  4Comments

taketwo picture taketwo  Â·  5Comments