Repository navigation
Add GPU RBPF conditional sampling, smoothing and sparse histories - #197
Merged
Merged
Conversation
Share reference selection, dense history and CSMC time loops across CPU and batched storage. Add device backward weights, ancestor sampling, backward simulation and conditional Kalman smoothing using shared numerical recursions. Validated with focused CPU regressions, GPU batched tests and Float32 D=16 parity checks.
Add CombinedRNG with explicit CPU/GPU routing, copying and reseeding. Use the GPU child for batched propagation and device resampling while retaining CPU scalar sampling through the ordinary RNG argument. Document filtering, conditional trajectories and smoothing, and require BatchedKernels 0.2.2 for device-array sampling. Include RNG routing, lifecycle and particle-Gibbs regression coverage.
Add GPUExecution and execution-aware particle initialisation. Refactor the volatility example to use one model builder with fixed host/device storage, supporting CPU parameter differentiation and batched GPU filtering. Use BatchedKernels shared composites and shared next states for backward scoring, removing manual wrappers and repeated state storage. Update GPU usage documentation and focused regression coverage. Validation: 304 batched GPU assertions, 109 targeted CPU assertions, and all documented D=16 examples including CPU/GPU smoothing parity.
Use GPUExecution to transfer selected outer states and observations for shared CPU backward recursions. Upload small Gaussian messages at device population scoring, preserving shared CSMC loops and device histories. Validated with 346 targeted CPU assertions, the batched GPU suite and focused CPU-message/refreshment regression checks.
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.
Extends the GPU RBPF foundation with reference trajectories, conditional resampling, ancestor sampling, backward simulation and sparse particle histories. CPU and GPU execution share one model interface and filtering orchestration, with bundled RNGs and CPU parameter updates for GPU particle Gibbs. Integrates BatchedKernels 0.3 runtime shared scalars to avoid recompilation when numerical inputs change, and updates the usage documentation and CI dependencies.
Validation: all 636 GPU assertions pass in an isolated Julia 1.12.7 environment using the local BK 0.3.0 checkout. Registry-based CI remains dependent on the pending BatchedKernels registration.