Skip to content

feat(fixed-light): lever 2 verdict — sparse log det H 1.13x on numba CPU, A100 identity, CPU-only lever (#267) - #271

Merged
Jammy2211 merged 5 commits into
mainfrom
feature/fixed-light-numba-levers-l2
Sep 16, 2026
Merged

Jammy2211 merged 5 commits into
mainfrom
feature/fixed-light-numba-levers-l2

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Lever 2 of #267, stacked on #269 (lever 1): the CPU A/B and A100 rows for PyAutoArray's sparse log det of the split-regularization H (library PR: PyAutoLabs/PyAutoArray#554), the five-pin witness, and the lever 2 section of the phase-3 verdict note.

Verdict

Control = lever 1, feature = lever 2, so the difference isolates lever 2. On the production numba CPU path (HST Delaunay N=1500, route b, memo ON, 1 thread, RAL job 343353 run alone on the node): whole call 302.7 → 267.4 ms (1.13x); inversion.log_det_regularization_matrix_term 37.5 → 6.5 ms; every other row flat; 4/4 cell gates; witness W1–W5 PASS (route fires once, log det rel 1.2e-9, log evidence rel 2.3e-10 inside the 1e-9 pin, gates admit, 6.0x same-matrix). A100 (job 343354, fixed_light.py cell): all log_evidence_terms bit-identical; the A100's dense Cholesky of H is 1.13 ms, so the lever is CPU-only by measurement. Cumulative levers 1+2 vs merge base: 413.3 → 267.4 ms, 1.55x.

Scripts Changed

  • hpc/batch_cpu/submit_breakdown_imaging_fixed_light_numba_levers_l2_delaunay_ral_hst_fp64 — new: two-arm Leg D run, control lever 1 / feature lever 2 on private PYTHONPATH checkouts, gpu partition CPUs-only, thread env pinned to 1; in-job proof the arms differ by exactly lever 2 (SPARSE_LOG_DET_* present only in the feature tree); witness in the feature arm.
  • hpc/batch_gpu/submit_breakdown_imaging_fixed_light_numba_levers_l2_delaunay_a100_hst_fp64 — new: two-arm fixed_light.py Delaunay cell on the A100 (the delaunay.py cell has no log-det row), fp64, fresh compile/autotune cache per arm.
  • scripts/imaging/likelihood_breakdown/fixed_light_numba_levers_l2_witness.py — new: Part A is lever 1's witness verbatim (same system); W1 route fires once, W2 sparse vs dense-forced log det with the H eigenvalue range, W3 figure_of_merit ≤ 1e-9, W4 both regime gates admit, W5 same-matrix timing.
  • results/breakdown/imaging/ — 4 JSON + 4 PNG + witness JSON.
  • results/notes/fixed_lens_light_levers_2026_09.md — lever 2 sections added (headline, decomposition, A100 row and CPU-only verdict, verdict); Scope, Provenance, Gate roll-up, Next and Artifacts updated; lever 3 pending.

Cross-reference

Library change: PyAutoLabs/PyAutoArray#554 (feature/fixed-light-numba-levers-l2 @ 0b17c292, stacked on #553). Merge order: #269 then this; #553 then PyAutoLabs/PyAutoArray#554.

Tracked by #267 (lever 2 of 3).

Heart gate

pyauto-heart readiness was RED (score 20) at ship time with two release-chain reasons unrelated to this branch — "install verification FAILED (testpypi; checks F)" and "release validation FAILED (stage integrate)" — acknowledged by the human on 2026-09-16 for PR-open only (levers 2 and 3, same reasons as lever 1). Merge stays a human act via /prm.

🤖 Generated with Claude Code

Jammy2211 and others added 2 commits September 16, 2026 13:46
#267)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…CPU, A100 identity, CPU-only lever (#267)

RAL job 343353 (gpu partition CPUs-only, 1 thread, control = lever 1): route b memo-ON
whole call 302.709 -> 267.448 ms, inversion.log_det_regularization_matrix_term
37.480 -> 6.508 ms; all cell gates PASS; witness W1-W5 PASS (route fires once,
log det rel 1.2e-9, log evidence rel 2.3e-10, gates admit, 6.0x same-matrix).
RAL job 343354 (A100 fp64, fixed_light.py): all log_evidence_terms bit-identical;
the A100's dense Cholesky of H is 1.13 ms, so the lever stays on the numpy path.
Cumulative levers 1+2 vs merge base: 413.3 -> 267.4 ms (1.55x). Note section
added to results/notes/fixed_lens_light_levers_2026_09.md (lever 3 pending).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Base automatically changed from feature/fixed-light-numba-levers to main September 16, 2026 22:15
@Jammy2211
Jammy2211 merged commit 642a4d6 into main Sep 16, 2026
1 check failed
@Jammy2211
Jammy2211 deleted the feature/fixed-light-numba-levers-l2 branch September 16, 2026 22:15
@Jammy2211

Copy link
Copy Markdown
Contributor Author

Closed as superseded by #272, not merged — every commit on this branch lands on main through #272, which is stacked on it and was retargeted to main on 2026-09-16.

Why not merged in stack order: the lint workflow checks out PyAutoArray main, which since PyAutoArray #555 merged (91240e43) already carries all three levers. This branch's copy of scripts/misc/test/test_fixed_light_numba.py pins the pre-lever-3 library (test_curvature_reg_matrix_is_recomputed_more_than_once, test_route_d_np_reaches_route_bs_evidence_on_a_real_fit — patched() without factor), so its lint run can no longer go green on its own (run 35156146275: those 2 failures, 534 passed). The verdict in this PR's body stands as the lever's review record; the results, note sections and submit scripts are unchanged in #272. Tracked by #267.

@Jammy2211

Copy link
Copy Markdown
Contributor Author

Correction to the note above: GitHub marked this PR merged automatically once its commits reached main through #272's merge commit cea41bb (the PR was never merged on its own — no separate merge commit, no separate CI pass). Same content, same outcome: every commit on this branch is on main.

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