Repository navigation
Phase 15: re-measure parity under the finished epic (#351) - #356
Merged
neuromechanist merged 64 commits intoSep 24, 2026
Merged
neuromechanist merged 64 commits into
neuromechanist merged 64 commits into
Conversation
…-class' into feature/issue-351-phase15-final-parity # Conflicts: # AGENTS.md
…parity' into feature/issue-351-phase15-final-parity
…parity' into feature/issue-351-phase15-final-parity
3 tasks
…-class' into feature/issue-351-phase15-final-parity # Conflicts: # docs/guides/validation.md
…parity' into feature/issue-351-phase15-final-parity
neuromechanist
marked this pull request as ready for review
September 24, 2026 05:43
neuromechanist
merged commit Sep 24, 2026
880d71d
into
feature/issue-324-epic-mlx-first-class
9 checks passed
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
Re-measures every user-facing parity figure with the finished epic #324 code (09b8247 + #353; merged with Phase 17, bb22df6, before review), against the pinned v0.3.3 native binary, and updates the documents that quote them:
paper.md(Table 1, Validation, figure),docs/guides/validation.md,docs/guides/amica-differences.md,docs/guides/backends.md, ADR 0003 (new dated section),AGENTS.md,.context/progress_summary.md,benchmarks/README_dimsweep.md, the changelog, and the regenerateddocs/assets/figures/multimodel-ensemble.png. Scripts and raw outputs are under.context/issue-351/; the findings record (findings.md) is committed by the lead.No library code changes.
benchmarks/reproduce_table1.pynow pins every reference setting explicitly (REFERENCE_SETTINGS), and its ensemble'slrate, so Phase 17's default changes cannot move the Table 1 protocol. Before Phase 17 the pinned and unpinned calls wrote byte-identicalinput.paramfiles at all 8 call sites (.context/issue-351/pin_check.py). After the Phase 17 merge each pinned call writes the same settings as before, in Phase 17's key order and withdo_approx_sphere 1added, the binary's compiled value (now pinned inREFERENCE_SETTINGSas well); the binary gives byte-identical output files for both forms of the file (pin_run_check.py, bundled sample, three configurations). Without the pins, 15 settings of the native calls would have moved to Phase 17's defaults.Part of #324, closes #351 on the epic merge.
Old vs new
raw/harness_run1,raw/harness_gap_head.jsonraw/harness_run1raw/harness_gap_*.jsonraw/harness_*amicaoutfixture: dLL, corr, Amariraw/fixture_parity_head.txtraw/precision_agreement.jsonraw/table1_bundled,raw/bundled_basinsraw/table1_bundledraw/table1_bundled,multimodel_summary.jsonraw/multimodel(pre-epic refit -3.3627)raw/keep_bestraw/keep_bestraw/dimsweepraw/newtonraw/newtonshare_compse2e (300 it, thr 0.95)raw/share_compsraw/share_compsraw/table1_externalraw/table1_externalNotes
min_dllcheck (7 of 20 pre-epic fits stopped early) and partly from that code's update rule; the "convergence speed" explanation is removed.amica15_linuxbuild, which draws a new start on each unseeded run (checked on hallu), so both reference-vs-reference figures are reported side by side.Test plan
uv run ruff check .,uv run ruff format --check .,uv run ty check .,typosuv run pytest -n 8 --no-covwithCI=1: 1955 passed, 40 skipped, 3 xfailed before the Phase 17 merge; 1974 passed, 40 skipped, 3 xfailed after itAMICA_RUN_FORTRAN=1ontest_fortran_param_forwarding.pyand the two early-merge oracles: 37 passed, before and after the Phase 17 mergeuv run --extra docs mkdocs build --strictpin_check.py: byte-identicalinput.paramat all 8 native call sites before Phase 17, with a negative control; after it, the same settings at all 8 (--againstthe saved files), plusdo_approx_sphere 1pin_run_check.py: the binary's outputs are byte-identical for the pre- and post-Phase-17 forms of the pinned files (wall-clock times removed fromout.txt)validation.md, resolved with Phase 17's wording of thedo_newtondefaults