Fit candidate stamps directly from FITS images - #63
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: NVIDIA/cuPhoton/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
3d51f5f to
b0946d0
Compare
melo-gonzo
left a comment
There was a problem hiding this comment.
LGTM. No introduced issue found in retained stamps, source-hash audit invalidation, or reader-policy propagation. CPU checks passed apart from a reproduced baseline failure; CUDA/MPI/Dragon execution was not rerun locally.
959d53d to
d1dcb3f
Compare
b0946d0 to
e3356be
Compare
Signed-off-by: Trent Nelson <trentn@nvidia.com>
Signed-off-by: Trent Nelson <trentn@nvidia.com>
Give filesystem-backed receipts time to arrive while checking cleanup ordering. Verify that failed-close receipts contain the expected worker error and include the run summary if receipt collection fails. Signed-off-by: Trent Nelson <trentn@nvidia.com>
e3356be to
941c8c2
Compare
xFit currently requires an NPZ containing prepared candidate stamps. This adds an explicit FITS manifest with aligned image planes, candidate positions, masks, and variance, allowing
fit-dipoles --fits-reader auto|astropy|xdrto read and crop stamps directly on the GPU.Local, MPI, and Dragon execution retain the same fit parameters, candidate ordering, numerical solver, and normal artifacts. Distributed workers read after GPU binding and retain stamps across rounds. The coordinator retains audited host stamps across rounds, rechecks complete source hashes, and labels reused audit data. Artifacts distinguish worker reads from coordinator audits; setup and finalization remain outside measured worker fitting time.
This PR depends on the shared reader in #61 and can land independently of #62 and #64. Validation of the extracted #63/#65 candidate: 2,653 CPU tests passed, 184 skipped, and all lint/type hooks passed. Focused xFit, reader, CLI and cleanup tests passed 246 cases, with 29 skipped. The following component and GPU results predate this extraction; the fitting implementation is unchanged. 146 CPU tests passed, with 29 skipped. The GPU-enabled xFit/xScan FITS suite passed all 41 tests, including actual fitting parity between Astropy and xDR. The audit-reuse follow-up passed 46 focused CPU tests (2 GPU cases skipped), including changed source pixels with restored size and timestamp. With 16 candidate stamps from a retained Rubin subtraction, three warm single-GPU repetitions reduced median ingress/crop/validation from 0.764 s to 0.107 s and the complete call with normal artifacts from 10.123 s to 9.410 s. The unchanged fit dominates the remaining time. Four-GB200 shipping MPI and Dragon cases passed with both readers: 16 rounds, exact normal-output/candidate parity, correct GPU placement, and verified audit reuse. Their warm worker batch times are similar because FITS loading occurs once during worker setup.