Skip to content

MiniMax-Music3: the DiT device arm's production SWITCH is unreachable from any test — disabling the call site and the arm refusal both stay GREEN (#672) #1131

Description

@localai-bot

Found by fresh review of #1121. Not a defect in the device arm itself — the
kernels and the staging are genuinely gated. The gap is the wiring that turns
them on in production.

The evidence

Two mutations applied to the shipped code, built, and run against the full suite:

mutation result
on_device = false in Music3DenoiseChunksthe production call site disabled test_minimax_music3_acoustic 32/283, _speech 9/223, test_speech_engine 11/38 — all GREEN, unchanged
half_set() → falsethe arm refusal disabled same three suites — all GREEN, unchanged

Per .agents/verification.md, a gate that survives deleting its production call
site "is measuring a class rather than a capability, and that is a finding."

What IS covered, so this is scoped honestly

DitForwardDevice and StageMusic3DitWeights are covered by a reduced-dim unit
gate and a full-scale parity gate on both arms. Eight other mutations against
them all go RED (causal attention, half-swap removal, rope sin/cos order,
is_neox_style, zeroed conditioning, the stage-size guard, the release-host
capacity check, the merged-gemm allowlist entry).

What is NOT covered

  • Music3DenoiseDeviceArm — the production selection path
  • its half-set refusal, minimax_music3_speech.cpp:200-205
  • the engine's release_host=true staging, minimax_music3_speech.cpp:579-585

So a change that silently stopped the DiT reaching the device — or that removed
the refusal protecting a partially-staged arm — would be invisible to every gate
in the tree. The arm would quietly run on the host and every number would still
look right, which is the same shape as the dequant-fallback and mute-skip traps
this row has already hit twice.

Owed

A gate that drives the engine through Music3DenoiseDeviceArm and asserts the
device path was actually taken — an invocation count or resident-dtype assertion,
not just output equality, since the host and device arms agree numerically by
design and output alone cannot distinguish them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions