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

Shortest edge collapse app using a preliminary cuCollections priority queue #36

Merged
merged 24 commits into from
Aug 9, 2024

Conversation

porumbes
Copy link
Contributor

Summary:

This PR adds a new application, SECPriority, based on the existing ShortestEdgeCollapse application. This new app replaces the histogram with a preliminary (long standing PR request NVIDIA/cuCollections#105) cuCollections-based priority queue implementation.

Limitation:

The priority queue uses the following pair type <priority, unique_edge_id>:
using PriorityPair_t = cuco::pair<float, uint32_t>;
where the unique_edge_id is limited to 32 bits, versus the general 64 bit encoding across other applications. This is fine for this proof of concept implementation, but limits the size of meshes to 2^16 patches (roughly 30 million triangles). We did this as a workaround due to a CUDA memory alignment issue when using a 64 bit unique_edge_id. We have not yet found the cause of this issue.

This currently includes simple functionality to demonstrate bulk build
and pop via host interface.
Currently adds the pair<edge_length, local_edge_id> using
the priority queue device-side api.
@porumbes porumbes requested a review from Ahdhn May 30, 2024 18:12
@Ahdhn Ahdhn changed the base branch from dyn to main July 25, 2024 13:03
@Ahdhn Ahdhn merged commit af753d8 into owensgroup:main Aug 9, 2024
0 of 2 checks passed
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

Successfully merging this pull request may close these issues.

2 participants