Repository navigation
Add explicit resident GPU MLS polynomial smoothing - #169
Merged
Merged
Conversation
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.
MLS surface fitting still ran on the host after reusable GPU neighborhoods became available. Add explicit
filter-mls-gpuposition/filter APIs and residentGpuMlsInput/input-bound neighborhoods/owned results. Radius search, weighted frames and order-0/1/2 fits run on GPU; three fitting/validity passes share one submission, with private scratch leases and per-runtime pipelines. CPU tree construction and schema/attribute reconstruction remain, and all payload transfers are reported. Overflow, malformed rows and numerical errors invalidate all device output and reject at explicit download.Results expose original-order unchanged/plane/polynomial modes and counts. GPU normalized f32 Cholesky uses a relative rank test; existing CPU f64 Gaussian elimination is unchanged. Nearly singular fits can differ substantially: the adverse 65-point quadratic fixture differs by 0.97287786 from the requested CPU result (52 GPU plane fallbacks), retained separately from mode-reference errors. This opt-in API does not promise CPU coordinate/fallback parity.
Two isolated release surveys retain all 24 conditions and 20 paired samples per stage. At 65,537 points, complete GPU filter calls including preparation, transfers, wait and reconstruction measure 1.61-3.45x against the current four-worker CPU filter; 257-point GPU calls are slower. Resident timings exclude preparation/upload/search/readback. Outcome counts, both coordinate error measures, variability and bootstrap intervals are included in the evidence note.
Validation passed: 207 GPU tests; 40 filtering library tests; four explicitly run adapter integrations covering 135 conditions / 205,470 coordinates, ownership/concurrency, invalid rows and exact schema/metadata/attribute bits; one facade GPU test. Independent quadratic-spike and noisy-plane tests confirm polynomial fitting and about 81% RMS reduction. All-feature and CPU-only Clippy, minimal GPU, WASM feature compilation and Rustfmt passed. Add two feature-isolation CI jobs; hosted compilation does not replace native adapter evidence.