-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Harmozing the API of the usual and gpu octree to faciliate swapping implementations easily #4818
Comments
Ideally, for speed, batch operations are preferred. In these cases, we need to figure out how to combine the single-operations into a batch op.
These sound like good ideas :) |
Thanks for the great comments, Kunal! I will work on this and look forward to doing it :-) |
Please have a look at #4338 from @haritha-j. I think those where close to be merged, but its some time since I last looked at it 😄 |
Thank you so much, Lars, for the comment. The work looks already great! @haritha-j it seems that you have done a lot of fantastic work already, and you are close to the finish line. Do you want to take another look at it? |
Actually yes, I would quite like to finish this off, I should've done it earlier. I should have some free time after the next couple weeks to finish it off, it would be very nice to have the ability to get square distances from this.
This might require a fair bit of changes IMO because I believe it's used to allocate memory for storing results at present. |
Fantastic, @haritha-j ! Thank you for finishing this! I am curious to see how it ends up. Thank you also for your evaluation of the max_results parameter. I will also take a look to form a better opinion about this. |
When working with the GPU and CPU versions of the octree class, I had to make several modifications to my codebase before running the same data on both host and device. In this ticket, I would first like to document the necessary changes based on the (abridged) octree tutorial. Furthermore, I thought of a few ways to harmonize APIs to facilitate swapping different implementations easily.
The (abridged) tutorial I run was:
The GPU version including the necessary revisions is:
Modification for GPU Octree
I could think of modifying the gpu::Octree module as follows:
radiusSearch
function returning thesequaredDistances
too. A member function such as:void radiusSearch(const Queries& centers, float radius, int max_results, NeighborIndices& result, ResultSqrDists& sqr_distances) const
might do that.max_results
argument? When I used Octree at first, I found it difficult to specify the number, and I am still unsure why we need it.DeviceArray
?Modification for DeviceArray
DeviceArray
, I would like to add a subscript operator to load a host point to the device. At the moment, we have to load points into a std::vector and upload these points afterward.What do others think about the example and the modifications?
The text was updated successfully, but these errors were encountered: