Repository navigation
Reusable GPU query batches and resident bounded k-NN/radius neighborhoods - #166
Merged
Merged
Conversation
rsasaki0109
changed the base branch from
codex/gpu-gicp-correspondence
to
main
October 12, 2026 14:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feature neighborhoods still require CPU search/results. Add reusable explicitly uploaded GPU query batches and owned resident nearest-k/radius rows on the existing GPU KD-tree, ready for subsequent device consumers.
k=0..=64 preserves CPU accumulator selection and stable ordered ties. Radius search preserves traversal order, counts all matches and exposes bounded-prefix overflow; complete CPU readback rejects incomplete rows. Count-only search, ownership/size/dispatch guards, explicit padded-transfer receipts and a downstream GPU consumer are covered. Target/query payloads stay resident between search passes; ordinary feature algorithms and ICP/GICP placement are unchanged.
Two isolated release surveys compare completed calls with all query uploads and padded readback/decoding included, plus separately reported resident completion with no readback. At 65,537 synthetic lattice queries, completed k=16 improves by 4.124x [3.615, 4.693] / 5.041x [4.044, 6.106], and radius search by 2.574x [2.262, 2.925] / 3.046x [2.889, 3.209]. Small batches and reversed-line radius cases favor CPU. Full tables and boundaries are in the note; no universal crossover or full feature speedup is claimed.
Validation: 467,364 exact CPU/brute k-NN selections, 199,846 radius prefix entries with exact counts, 524,416 concurrent selections, 131,074 large partial-dispatch self matches, live-output/zero-padding/metadata/ownership checks and a direct device consumer. All GPU features passed 196 tests, registration 35 unit tests plus six explicit GPU ICP/GICP tests, and the facade test passed. All-target/feature clippy with warnings denied, minimal/WASM builds, formatting, privacy and unchanged-path source audits passed. Browser execution is not claimed.
Builds on GPU correspondence foundations merged in PR #165; GPU FPFH/ISS/MLS computation remains a follow-up family.