Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ removed no sooner than the next major (see `docs/API_STABILITY.md`).

### Changed

- Add explicit resident grid GICP covariance preparation under
`register-gicp-gpu`. Reuse original GPU positions and canonical radius-grid
arithmetic, eliminating source KD-tree preparation, per-point neighborhood
buffers and covariance readback/re-upload. CPU counting-sort grids and target
tree remain; support capacity includes self/duplicates and overflow rejects
all equations. Grid indices use private leased scratch with full receipts.
Existing sparse/resident/legacy routes retain their explicit contracts.

- Add explicit resident radius covariance preparation for GICP under
`register-gicp-gpu`. Inclusive bounded GPU neighborhoods, centered/scaled
compensated central sums and plane eigenvectors feed resident equations
Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,15 @@ Sparse neighborhoods retain the grid route's epsilon*I fallback. CPU tree
construction and 6x6 solves remain; only 256-byte equations are downloaded.
See [resident radius evidence](notes/2026-10-13_gpu_gicp_resident_radius_covariances.md).

`align_with_gpu_resident_grid_covariances(&runtime, &source, &target,
neighbor_capacity)` uses the existing radius-grid covariance math directly on
resident original positions. CPU builds counting-sort grids and the target
tree; no source KD-tree or per-point neighborhood buffer is needed. Capacity
includes self/duplicates and overflow rejects all output. Dense grids must fit
the existing cell/device limits; choose the bounded radius method explicitly
for sparse extents. Only 256-byte equations are downloaded per evaluation.
See [resident grid evidence](notes/2026-10-13_gpu_gicp_resident_grid_covariances.md).

Point-to-plane ICP also exposes
`PointToPlaneIcp::align_with_gpu_reduction(&runtime, &source, &target)` under
`register-icp-point-to-plane-gpu`. Transforms, nearest matching and plane
Expand Down
Loading
Loading