Skip to content

[sgl-kernel][test] Skip dsv3_fused_a_gemm test on consumer Blackwell (sm120/sm121) - #31366

Closed
layahaasini wants to merge 1 commit into
sgl-project:mainfrom
layahaasini:fix/sm121-test-skip-guards
Closed

layahaasini wants to merge 1 commit into
sgl-project:mainfrom
layahaasini:fix/sm121-test-skip-guards

Conversation

@layahaasini

@layahaasini layahaasini commented Jul 15, 2026

Copy link
Copy Markdown

Motivation

On consumer Blackwell (sm120/sm121, e.g. GB10), test_dsv3_fused_a_gemm fails instead of skipping. The kernel requests ~192KB of dynamic shared memory, but consumer Blackwell caps at ~100KB per block, so the launch returns cudaErrorInvalidValue. Its only device guard is TORCH_CHECK(sm >= 90), which accepts sm12x. This is a hard architectural limit (not a missing dispatch), so the test should skip on these GPUs.

Modifications

  • test_dsv3_fused_a_gemm.py: gate the test on is_sm90_or_sm100_supported so it skips on consumer Blackwell.

This PR was originally broader; the other two hunks were dropped after review:

Accuracy Tests

N/A — test-only change; no kernel/model-forward code or output changes.

Speed Tests and Profiling

N/A — same reason.

Checklist

  • Format code with pre-commit
  • Add unit tests — N/A: test-infrastructure only, no product code
  • Update documentation — N/A: no public API / user-facing behavior change
  • Provide accuracy and speed benchmark results — N/A
  • Follow the SGLang code style guidance

Part of #31365.


CI States

Latest PR Test (Base): ❌ Run #29870545071
Latest PR Test (Extra): ❌ Run #29870544904

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@waynehacking8

Copy link
Copy Markdown

One thing on the test_fp8_blockwise_moe.py hunk: sm12x isn't unsupportable there, it's just unimplemented, and #28125 adds the sm120/sm121 dispatch and turns exactly those 10 cases green - independently reproduced today on an RTX 6000D on top of my own RTX PRO 6000 runs. So narrowing is_blackwell_supported to == 10 would skip cases that are about to start passing.

I just backed the same change out of my #29902 for that reason, and dropped my is_blackwell_supported rename so we're not both touching that file. Our flashmla prefill guards still overlap - happy to drop mine if you'd rather carry it, since yours also covers test_dsv3_fused_a_gemm.py which I don't touch.

…(sm120/sm121)

On consumer Blackwell (sm120/sm121, e.g. GB10), test_dsv3_fused_a_gemm fails
instead of skipping: the kernel requests ~192KB of dynamic shared memory but
consumer Blackwell caps at ~100KB per block, so the launch returns
cudaErrorInvalidValue. Its only device guard is TORCH_CHECK(sm >= 90). Gate the
test on is_sm90_or_sm100_supported so it skips where the required shared memory
is unavailable.
@layahaasini
layahaasini force-pushed the fix/sm121-test-skip-guards branch from c004b25 to cf14c37 Compare July 21, 2026 21:35
@layahaasini layahaasini changed the title [sgl-kernel][test] Skip datacenter-only kernel tests on consumer Blackwell (sm120/sm121) [sgl-kernel][test] Skip dsv3_fused_a_gemm test on consumer Blackwell (sm120/sm121) Jul 21, 2026
@layahaasini

Copy link
Copy Markdown
Author

Thanks for pointing this out. I've dropped the fp8 hunk so it doesn't skip cases #28125 turns green.

On flashmla — since #29902 already gates it, I dropped my flashmla hunk too so we're not both touching that file. Happy for #29902 to carry it.

That leaves this PR as just the test_dsv3_fused_a_gemm.py guard, which doesn't overlap.

@layahaasini

Copy link
Copy Markdown
Author

Closing: the AOT test this patched was removed in #30280, and the JIT replacement works on sm121 (verified on a GB10).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants