ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

10x acceleration for point cloud processing with CUDA PCL on Jetson

We have released CUDA accelerated libraries for ICP, Segmentation and Filtering that provide up to 10x performance over the native CPU implementation. Learn more about it in this blog:

And access the library from this github repo:

8 Likes

Are these going to be added to PCL itself? I’m sure the maintainers would field that PR. They’ve been on a multithreading/multi-platform sprint somewhat recently.

Plus there’s already some cuda built in to PCL this could add to!

What’s the roadmap to have other segmentation models supported?

4 Likes

They’ve been on a multithreading/multi-platform sprint somewhat recently

This effort is driven most by just 2 people: @koide3 and @mvieth :smiley:

I’d like to see the PR up-streamed as well. Sadly, PCL doesn’t have the CUDA tests working in the CI, so the PR might take longer than usual to get integrated (just a heads up).

Unlike the CPU and OpenMP based implementations, CUDA seems to be a bit of niche area for our community. :sweat_smile: It’ll be great to have some resurgence in CUDA contributions

5 Likes

This looks interesting but the repo contains only binaries (and header files) so far …

I also wondered… Who does closed source these days? :smiley: No, really, such kind of library becomes practically useless without source, because as a user you can’t see what it actually does and you cannot debug it…

1 Like

No, really, such kind of library becomes practically useless without source

That is an overstatement. You have a lot of libraries you CONSTANTLY use in your Linux system that are release as binaries and you trust. You may find the source code, but I am sure you usually don’t care. Closed source is as useful as open source… if it works.

On the other hand… please release the source code :stuck_out_tongue:

1 Like

You’re right closed-source apps can be (and are) useful. But - only if they’re well documented regarding what they do, and possibly also how. Which is not the case of this library - you can’t even tell which PCL point types are supported by the library.

Well the source also helps so the community could even potentially use it as a template to adding the other segmentation / filtering algorithms that are clearly missing. Without it, its basically like having a single filter supported which is useful for that 1 algorithm, but not that impactful if all the filters can’t be cuda enabled.

I, for one, would be far more likely to consider developing on Nvidia hardware on future projects/products if PCL and OpenCV had cuda implementations of most algorithms built in (and made TensorRT work with common networks you’d assume already worked). I’m actively disinterested in binding myself to a hardware-specific library like Isaac or external implementations like this that may have spotty long term support. Without the source, the entire community would be at the whim of a single exec deciding to de-prioritize it or a developer in charge of it leaving the company. I’m less concerned about being “open for open’s sake” as much as relying on something that could be sunset anyday without notice and the .so becomes useless (and back to ground zero).

Cuda in the projects everyone uses anyway lets us use Nvidia hardware but doesn’t bind us to it if our needs or requirements change - its just not a good supply chain management decision - for all we know 10 years from now Nvidia sunsets the entire Jetson product line and then where would we be? But having it in our projects would make alot of folks like me eager to try it out and potentially integrate into our work - knowing that even if Nvidia emplodes tomorrow then our work won’t be in vein - but until its more “open” to allow us to base a long-term product / project on and integrated with the tools we use everyday, it can’t be on our roadmap for a project with any scale / long-term interest.

2 Likes