Skip to content

Add GPU RBPF conditional sampling, smoothing and sparse histories - #197

Merged
THargreaves merged 11 commits into
mainfrom
gpu-rbpf-reference
Oct 4, 2026
Merged

THargreaves merged 11 commits into
mainfrom
gpu-rbpf-reference

Conversation

@THargreaves

Copy link
Copy Markdown
Collaborator

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.

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.
@THargreaves
THargreaves merged commit e7dd125 into main Oct 4, 2026
3 of 4 checks passed
@THargreaves
THargreaves deleted the gpu-rbpf-reference branch October 4, 2026 18:36
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