Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GICP vs VGICPCuda Performance Issue #118

Open
espackman opened this issue Mar 14, 2023 · 4 comments
Open

GICP vs VGICPCuda Performance Issue #118

espackman opened this issue Mar 14, 2023 · 4 comments

Comments

@espackman
Copy link

espackman commented Mar 14, 2023

Hi!
I've been experimenting with this library, and I came up with some interesting results I'd like to get some feedback on.
Using the Python implementation, I modified the kitti.py file to perform some kitti specific calibrations and export the poses to a text file. Strangely enough, when testing each of the registration types available (GICP, VGICP, VGICPCuda, NDTCuda), my testing reported that the multithreaded, non-Cuda variants performed the process more quickly than the Cuda variants. I'm more than happy to share my work, but in a general sense was this to be expected? I would have thought it would be the opposite.
The test was performed locally on WSL, with a pretty beefy workstation (16-core Threadripper pro, Nvidia Quadro P4000, 32 Gb RAM). Perhaps its due to a performance gap between the GPU and CPU? Thanks, more than happy to provide more info to help understand this.

@JACKLiuDay
Copy link

JACKLiuDay commented Mar 14, 2023

Hi,I have the same problem as you. But my problem is VGICPcuda and ndtcuda not work on my PC. I tired VGICP without cuda and it works well. Cloud you give me some advice on how to use VGICPCUDA properly.
#116
And I tried other project which has NDT CUDA. And the Nvidia NX board works well but the ndt registration takes only 40ms, and the whole time is 100ms on average. So it looks like some gap between CPU and GPU makes the whole time more.

@espackman
Copy link
Author

Hi Jack! Apologies for the delay in response.

I am unsure what is going wrong here as well, and have not found a solution. I reviewed a comparison between VGICP and VGICPCuda using the Kitti dataset, and found that the VGICP is performing roughly 2x as fast as the VGICPCuda method while having about the same accuracy. The NDTCuda method is performing poorly, both in terms of accuracy and speed.

I'm hoping the fast_gicp author @koide3 can take a look at this issue!

@koide3
Copy link
Member

koide3 commented Mar 16, 2023

Hi guys, sorry for the late response.
Generally, the GPU-based algorithms should be much faster than the CPU-based ones.
It may take a few seconds for the first time to wait for the GPU to be initialized, but then it should work quickly.
Can you do some profiling to see which part of the code is taking a long processing time?

@espackman
Copy link
Author

Sure thing! I'll post something in the next few days

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants