Conversation
…shape Every existing MXFP6 spec test runs with sensitive_layers_enabled=False, so the enabled path had no coverage. An off-by-one there is silent: the model builds, trains and converges while a different set of blocks than the one disclosed runs in BF16. Uses Flux 12B's real 19 + 38 shape because the boundary is the thing under test, checks the start and end counters independently, and asserts the retained blocks reach a BF16 backend rather than merely a non-MXFP6 one -- sensitive_layer_precision also accepts tw_fp8.
Note: CI cannot execute these tests yet, and the lint failure is pre-existingAuthor review of the full diff. No blocking findings in the change itself; two CI facts are worth recording before anyone reads the red X. The That pre-existing failure is also what blocks execution. Plan: run them directly with |
Result: the five routing tests pass on real hardwareRan them inside the v26.5 MXFP6 dev container on an MI355X node — That closes the gap the PR was opened for. Before this run, the claim that No code changes since the last push. The code-lint failure is pre-existing on the base branch, which fails the same check on the same four files. |
Summary
Every existing MXFP6 spec test runs with
sensitive_layers_enabled=False, so the enabled path — the one that keeps trailing transformer blocks in BF16 while the rest run MXFP6 — has no coverage at all. An off-by-one there is silent: the model builds, trains, and converges while a different set of blocks than the one disclosed is running in BF16.This adds
TestMXFP6SensitiveLayerRouting, which exercises that path at Flux 12B's real 19 + 38 block shape, because the boundary is the thing being tested.What it covers
sensitive_layers_startandsensitive_layers_endroute independently of each other.sensitive_layer_precisionalso acceptstw_fp8, so asserting "not MXFP6" alone would pass on a config that quietly retained those blocks in FP8.Test plan
tests/unit_tests/backends/megatron/test_primus_turbo_mxfp6_local.py, guarded byrequires_mxfp6and following theSimpleNamespacespec-test pattern already used in that fileblacksettingblack/pre-commitrun (unavailable on the authoring node)Written while planning a precision-placement experiment that depends on this routing being correct, so the coverage gap is worth closing regardless of that experiment's outcome.