[Bugfix][Tests] Stabilize B12X linear kernel checks - #54996
Merged
mgoin merged 1 commit intoSep 2, 2026
Merged
Conversation
Signed-off-by: Luke Alonso <lalonso@gmail.com>
lukealonso
requested review from
AndreasKaratzas,
WoosukKwon,
mgoin,
tlrmchlsmth,
yewentao256 and
zyongye
as code owners
September 2, 2026 17:34
mgoin
approved these changes
Sep 2, 2026
Member
|
/ci run |
mgoin
enabled auto-merge (squash)
September 2, 2026 17:57
|
✅ Triggered Buildkite CI #86913 for commit |
mylibrar
pushed a commit
to tanyuqian/vllm
that referenced
this pull request
Sep 3, 2026
Signed-off-by: Luke Alonso <lalonso@gmail.com>
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
Rationale
B12X block-FP8 split-K CTAs atomically accumulate into a BF16 output. Atomic ordering is nondeterministic, so individual outputs can alternate between adjacent BF16 values one ULP apart. On the 48-SM four-slice route, the normalized mean absolute difference was
0.00240-0.00252, while cosine similarity remained0.9999935-0.9999940across ten seeds. This changes the normalized-error limit from0.002to0.003and tightens the cosine floor from0.9999to0.99999.The W4A16 fallback test previously depended on the complete CUDA NVFP4 registry. #53014 registered
FlashInferCuteDslNvFp4W4A16LinearKernelahead of Marlin, so SM12x CI selected FlashInfer even though the test had explicitly made Marlin available. The test now installs a minimal B12X/Marlin registry withmonkeypatch, directly exercising its intended contract. Future backend registrations therefore cannot change its result; adding W4A16 support to the B12X linear kernel will still invalidate the fallback test as intended.Duplicate-work check
I searched open PRs for B12X block-FP8 tolerance and W4A16 fallback changes. #43929 concerns NVFP4 MoE W4A16 routing and does not modify these tests or the dense linear selector. No open PR addresses these two CI failures.
Validation
The tests used
b12x==1.3.0and source at605c3ddcba. The precompiled extension carrier was from3b45d053b4because the wheel for the newly published main SHA was not yet available; the two intervening commits only add documentation annotations and update the CUTLASS source revision. These test paths use Python selection logic and the separately installed B12X kernel.Model evaluation is not applicable because this changes test acceptance and isolation only; runtime code is unchanged.
AI assistance
AI assistance was used for failure investigation, implementation, validation, and PR drafting. The submitter reviewed every changed line and the validation results.