Skip to content

Add GPU resident radius GICP covariance preparation - #174

Merged
rsasaki0109 merged 2 commits into
mainfrom
codex/gpu-gicp-resident-radius-covariances
Oct 13, 2026
Merged

rsasaki0109 merged 2 commits into
mainfrom
codex/gpu-gicp-resident-radius-covariances

Conversation

@rsasaki0109

Copy link
Copy Markdown
Owner

Radius covariance preparation currently downloads full covariance arrays and uploads them again for resident GICP equations. Add explicit align_with_gpu_resident_radius_covariances / upload_with_gpu_radius_covariances to keep complete inclusive radius neighborhoods, compensated covariance sums and plane eigenvectors on GPU. Reuse original query/sample positions and the target tree; retain the CPU tree construction and 6x6 solve/update boundary.

Caller capacity includes self/duplicates. Overflow or invalid arithmetic zeros both covariance sets and invalidates all equations; no truncated neighborhoods or automatic fallback are used. Sparse support retains epsilon*I. Existing CPU, grid and resident k-NN paths keep their contracts. The precision differences and measured latency tradeoffs are documented.

Validation:

  • GPU all-feature suite: 227 passing tests; registration all-feature library: 35 passing tests. Native radius registration covers 162 scale/radius/stopping conditions, plus overflow, malformed rows, sparse extent beyond grid capacity, ownership/concurrency and minimal facade checks. Existing k-NN/reduction regressions pass.
  • Independent brute-force/f64/spectral references: 13,320 rows; maximum unique-spectrum covariance-component error 1.51e-5. Maximum scale-normalized host-update pose-coordinate error is 9.54e-7.
  • GPU/registration all-target Clippy, CPU-only GICP, optional WASM compile, minimal facade, benchmark Clippy and Rustfmt pass. No core/dependency/unsafe changes.
  • Two isolated completed-call surveys, 20 cyclic samples per stage/condition. At 65,537 points, D2H falls from about 4.2 MB to 1,024 bytes and H2D falls 51.49–53.67%. Host-update/new latency ratios are 2.57–4.12x (host updates use GPU radius covariances), while previous-GPU/new ratios are 0.68–0.97x: no large-cloud latency improvement over the prior GPU implementation is claimed.

Full conditions, raw-sample locations, transfer tables and all timing results: resident radius evidence.

@rsasaki0109
rsasaki0109 merged commit a0c9eb8 into main Oct 13, 2026
125 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.

1 participant