Repository navigation
profiling(point_source): vertex-dedup A/B, RAL CPU + A100 rows, campaign phase 2 (PyAutoArray#568) - #301
Merged
Conversation
…r (#568) control (pre-fix jnp.unique body from PyAutoArray 11b93476, injected), nodedup (post-fix flat table + arange) and library (installed, self-labelled by HLO sort count) routes; fresh closures + jax.clear_caches() per route; log L / positions / grad / vmap gates recorded, never asserted. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Clone of the phase-1 point-source submit: 8 CPUs, BLAS pinned to 1, identical XLA_FLAGS, fresh per-job JAX cache, one full-protocol leg, --time=3:00:00 from a measured 939 s laptop wall (headroom 2.0). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
control/nodedup median ratio: simple solved 6.00x [5.91, 6.21], plain 6.04x, vmap-4 3.39x; cluster solved 2.29x [2.22, 2.33], plain 2.30x. All gates bit-identical; library_matches=control (canonical PyAutoArray 11b93476). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…568) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…p A/B, RAL job 350582 (#568) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMSQRTc7Zthxj1pxRjDVaF
…me (#568) inspect.getsource at the end of a long run reads the file as it is then; the laptop witness, edited mid-run, recorded the wrong function texts. Capture text + a co_code/co_consts hash at import and refuse a text that is not the named function. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(#568) Same interleaved control/nodedup/library A/B as the CPU submit, fp64, 20 rounds x 20 calls, JAX_PLATFORMS=cuda with a GPU-backend assertion, and the PyAutoArray feature-branch clone prepended to PYTHONPATH so the library route is the shipped fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#568) GPU regression check: nodedup 1.71-2.05x faster than control on every row, library (branch PyAutoArray 25894d10) matches nodedup, all gates bit-identical, gradients non-zero. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…587 (#568) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
Profiling evidence for point-source CPU campaign phase 2 (PyAutoArray#568). An interleaved in-process A/B cell compares the JAX
PointSolverwith thejnp.uniquevertex dedup (control) against the library change that drops it (no-dedup). This PR adds the RAL CPU and RAL A100 rows, the phase-2 section ofresults/notes/point_source_cpu_campaign.md, and a README line.Median ms/call, control → no-dedup:
All correctness gates are bit-identical on CPU and GPU: logL, solved positions, non-zero gradients and vmap. Compile time falls about 20% on CPU and about 40% for the simple cell on GPU. The GPU job imported PyAutoArray
25894d10, the head of the linked library PR.Caveats:
Scripts Changed
scripts/point_source/likelihood_breakdown/vertex_dedup_ab.py— new interleaved vertex-dedup A/B cell (control vs no-dedup body, correctness gates, HLO sort counts, body provenance captured at import time)hpc/batch_cpu/submit_breakdown_point_source_vertex_dedup_ab_ral_cpu_fp64— RALral-partition CPU submithpc/batch_gpu/submit_breakdown_point_source_vertex_dedup_ab_a100_fp64— RAL A100 fp64 submitresults/breakdown/point_source/vertex_dedup_ab_{local_cpu,hpc_ral_cpu,hpc_ral_a100}_fp64.{json,png}— laptop witness, RAL CPU (350582) and A100 (350587) rowsresults/notes/point_source_cpu_2026_09_23_ral_job_350582_vertex_dedup_ab.out,results/notes/point_source_cpu_2026_09_24_ral_job_350587_vertex_dedup_ab_a100.out— job logsresults/notes/point_source_cpu_campaign.md— phase-2 section (A/B, GPU regression check, decision)README.md— dashboard lineUpstream PR
PyAutoLabs/PyAutoArray#569 — library-first: merge that PR before this one.
Test Plan
scripts/misc/tooling/build_readme.py --checkpassesscripts/misc/wall/check_submits.py --checkpasses (9 wall-basis submits, 0 failing)image_plane_solvedprofiling pin unchangedHeart RED development override
Shipped under the
AUTONOMY.md"Human override for Heart RED (development only)"./prmwith every required check green.pyauto-heart readiness, verdict RED, score 45):release validation FAILED (stage integrate)workspace validation not passing (4 failed, cloud#35579888156: autolens notebooks/cluster/modeling.ipynb, autolens notebooks/weak/a2744.ipynb, autolens scripts/cluster/modeling.py, +1 more)manifest drift: hub organism blurb (organs present) — 7 mismatch(es) vs PyAutoMind/repos.yamlpytest test_autoarray1626 passed at25894d10(re-run at ship); +10 new JAX tests, including an HLO sort-count guard that fails on main (39 sort ops) and passes on the branch. Downstream autolens_workspace_test point-sourcejax_likelihood×4 andjax_grad/gradient.pyprint likelihoods and gradients identical to main. The autolens_profilingimage_plane_solvedpin is unchanged. A/B correctness gates are bit-identical on CPU (RAL job 350582) and GPU (RAL job 350587). Profilingbuild_readme.py --checkandcheck_submits.py --checkpass.Generated by the PyAutoLabs agent workflow.
🤖 Generated with Claude Code