Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,38 @@ permissions:
contents: 'read'

jobs:
benchmark-smoke:
name: 'Hierarchical comparison correctness (3.12)'
runs-on: 'ubuntu-latest'
steps:
- name: 'Checkout repository'
uses: 'actions/checkout@v6'
with:
persist-credentials: false
- name: 'Setup uv'
uses: 'astral-sh/setup-uv@v7.2.0'
with:
python-version: '3.12'
- name: 'Install optional comparison dependencies explicitly'
run: 'uv sync --dev --extra benchmark'
- name: 'Check tiny trajectory and reverse-mode comparisons'
run: >-
uv run --no-sync python -m scripts.benchmark_hierarchical
--groups 1 --local-dimensions 1 --steps 4 --solvers core external
diffrax-fixed diffrax-adaptive numpy scipy --derivatives trajectory grad-rev
--repeats 1 --timeout 180 --require-success --output /tmp/hierarchical-smoke.jsonl
- name: 'Check supported Diffrax higher-order configuration'
run: >-
uv run --no-sync python -m scripts.benchmark_hierarchical
--groups 1 --local-dimensions 1 --steps 4 --solvers diffrax-fixed
--derivatives hessian logdet-grad --repeats 1 --timeout 180
--require-success --output /tmp/hierarchical-higher-order.jsonl
- name: 'Retain correctness/protocol evidence'
if: 'always()'
uses: 'actions/upload-artifact@v7'
with:
name: 'hierarchical-comparison-correctness'
path: '/tmp/hierarchical-*.jsonl'
backend:
name: 'Solver qualification (${{ matrix.backend }}, 3.12)'
runs-on: 'ubuntu-latest'
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ versioning while the project remains pre-1.0.

### Added

- Opt-in serial hierarchical measurements emit correctness-gated JSON with
dimensions, accepted steps, cold tracing/compilation, warm execution, memory
and provenance. Matched-mesh comparisons use public native/external loops
and supported Diffrax AD; adaptive Tsit5/Kvaerno5 and concrete SciPy/NumPy
references are identified separately. Tiny CI comparisons reject failures;
timeout records remain censored without fabricated speedups (#204).

- Required NumPy/JAX/CPU Torch solver jobs reject missing or skipped selected
qualification. A structured trait-coupled model verifies every deterministic
fixed method against independent matrix-exponential solutions in both
Expand Down
Loading
Loading