Skip to content

test: pin RoFormer forward-pass budget + GPU per-pass timing guard (v0.47.1) - #313

Merged
beveradb merged 2 commits into
mainfrom
feat/sess-20261019-1350-mdxc-overlap-guard
Oct 19, 2026
Merged

beveradb merged 2 commits into
mainfrom
feat/sess-20261019-1350-mdxc-overlap-guard

Conversation

@beveradb

@beveradb beveradb commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

@coderabbitai ignore

Why

v0.47.0 (#299) changed MDXC/RoFormer overlap to MSST num_overlap semantics (step = chunk / overlap, defaulted from the model YAML). That change is correct and stays. It did silently make the MelBand karaoke models, whose YAMLs set num_overlap 4/8, run 4–6× more forward passes than 0.46.x. 0.44.2–0.46.0 used a fixed 8 s step, which in practice meant almost no overlap. karaoke-gen measured 25→75s (aufr33), 26→149s (gabox_v2) and 27→157s (becruily) per 3-min track on an L4 and pinned 0.44.2. Those slowdowns match the pass-count ratios (3.9×/5.7×/5.7×). The instrumental models (num_overlap 2) were unaffected. #298 is not the cause: 0.45.0 and 0.46.0 still use the old step formula.

What

  • tests/unit/test_mdxc_roformer_pass_budget.py: pins forward passes for a 3-min track for five real model geometries, at the YAML overlap and at overlap=2. Any future chunking/step/tail change that moves compute now fails on every PR. Mutation-checked: restoring the 0.44 step formula fails all 6 tests.
  • tests/integration/test_roformer_inference_timing.py (CUDA only, added to core-models): per-forward-pass GPU time for the aufr33 karaoke model at YAML overlap and overlap=2. It prints the timings and has a generous ceiling (ROFORMER_MAX_SECONDS_PER_PASS, default 2.0s).
  • README: performance note on the 0.47 overlap semantics and how to get the speed back with overlap=2.
  • Version 0.47.1. There's no library behaviour change; this release gives the README note and guards a version to point at.

Testing

  • Unit: 557 passed. Two test_mps_native_fp16 failures (scatter(): Yet not supported for complex) also fail on untouched main on this Mac's MPS torch, so they're unrelated. CI runs Linux.
  • The GPU timing test runs in this PR's integration CI on a T4.
  • Local CodeRabbit: 1 minor finding (job timeout), fixed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Jw21syo4HizJJjYw2mg2Vp

beveradb and others added 2 commits October 19, 2026 13:53
…0.47.1)

v0.47.0 (#299) moved MDXC/RoFormer overlap to MSST num_overlap semantics.
That's correct, but it silently made the MelBand karaoke models (YAML
num_overlap 4/8) run 4-6x more forward passes than 0.46.x: karaoke-gen saw
25->75s, 26->149s and 27->157s per track on an L4 and had to pin 0.44.2.

- tests/unit/test_mdxc_roformer_pass_budget.py pins the forward passes for a
  3-minute track for five real model geometries, at the YAML overlap and at
  overlap=2, so any future chunking change that moves compute fails on every
  PR. Mutation-checked: restoring the 0.44 step formula fails all six tests.
- tests/integration/test_roformer_inference_timing.py measures per-pass GPU
  time for the aufr33 karaoke model (CUDA only; added to the core-models job).
- README: performance note on the 0.47 overlap semantics and how to opt back
  into speed with overlap=2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jw21syo4HizJJjYw2mg2Vp
@beveradb
beveradb merged commit 465b60f into main Oct 19, 2026
22 checks passed
@beveradb
beveradb deleted the feat/sess-20261019-1350-mdxc-overlap-guard branch October 19, 2026 19:59
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