Skip to content

Elevate and complete phase dispersion minimization capabilities #33

Open

Description

@johnh2o2

Review the current implementation state of phase dispersion minimization. Refactor, complete, and document this feature to ensure it is robust and accessible as a first-class capability of cuvarbase.

Activity

  1. johnh2o2 commented on Jun 11, 2026

    @johnh2o2
    OwnerAuthor

    Status update — most of this landed in v1.0 (branch v1.0, tip 39d3367) via @astrobatty's PR #62, which is merged there:

    • Fast CUDA kernels for all four PDM variants (binned_step_fast, binned_linterp_fast, binless_tophat_fast, binless_gauss_fast) using shared-memory tiling and a one-pass sum-of-squares formulation
    • Backward-compatible (t, y, err) API for PDMAsyncProcess.run() with automatic frequency grids; the legacy (t, y, w, freqs) format still works but emits a DeprecationWarning
    • Unit tests for all kernel variants (running in CI against the CPU reference implementations)
    • Documentation: new Sphinx page docs/source/pdm.rst (also addresses Add documentation for PDM  #15)

    Post-merge review fixes on the same branch: block_size is now validated ≤ 256 (the fast kernels' shared-memory tile size), and normalize_light_curves passes dy=None through safely.

    Remaining items to fully close this out:

    • GPU validation of the new kernels on real hardware (part of the v1.0.0 release gate)
    • Batched/multi-LC convenience API on par with LS/CE (batched_run_const_nfreq-style)
    • Memory-capped large_run equivalent for very large frequency grids
    • Performance benchmark of the _fast kernels vs the reference kernels and vs CPU PDM (PyAstronomy) for the docs
  2. johnh2o2 commented on Jun 12, 2026

    @johnh2o2
    OwnerAuthor

    Re-scoping the remaining checkboxes at v1.0. Status of the four items from the 2026-06-11 checklist:

    • ✅ GPU validation: done — the v1.0.0 GPU gate ran all 9 PDM tests covering the four fast kernels on an RTX A5000 (validation record in analysis/v1.0.0-gpu-validation/).
    • ⏳ Batched multi-LC API (batched_run_const_nfreq-style), memory-capped large_run, and a performance benchmark vs CPU PDM: re-scoped to v1.1. These are feature additions, not defects — the shipped kernels pass the validation gate — and the packed v1.0 release prioritized correctness fixes.

    Leaving this open to track the v1.1 items.

  3. johnh2o2 commented on Sep 28, 2026

    @johnh2o2
    OwnerAuthor

    Release triage for PR #69 (cuvarbase 1.0.1, source 6b6c48945160).

    This issue remains open and is listed as related follow-up in PR #69; it is intentionally excluded from automatic closure.

    Two items described as deferred in the June comments have since landed: batched_run_const_nfreq and memory-capped large_run. The existing host validation passed seven batching/memory tests, and the release’s preserved GPU correctness gate passed separately. Remaining from the recorded checklist: a documented fast/reference-kernel and CPU PDM (e.g. PyAstronomy) performance comparison. Current numerical notes and local fast-kernel ratios do not complete that broader benchmark.

    Evidence: batched PDM entry point · memory-capped large_run · PDM batch/memory regression tests · current benchmark scope

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions