Conversation
Widen the cuTile MoE arch gates to cover SM100 (B200) and SM103 (B300) for both BF16 and NVFP4 W4A4. The kernels are architecture-agnostic cuda.tile DSL, so this is a runner/config-layer extension only: - api.py: add 100/103 to _CUTILE_BF16_ARCHS and _CUTILE_NVFP4_ARCHS - runners.py: seed SM100/103 entries in the two arch-keyed BF16 tables (_CUTILE_BF16_DEFAULT_GEMM_CONFIGS default-tile map, prefill_threshold); seeds mirror the SM90 datacenter profile and are refined by autotune - tests: widen the skip-guard reason strings; the guards auto-activate the existing test matrix on the new arches via Config.supported(cc) NVFP4 has no arch-keyed table, so it needs only the tuple widen. The runtime is_cuda_tile_available() gate already probes tileiras/NVRTC per device. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
📌 Description
Extend the cuTile fused MoE backend (added in #4646) to datacenter Blackwell — SM100 (B200) and SM103 (B300) — for both BF16 and NVFP4 W4A4.
The cuTile MoE kernels (
flashinfer/fused_moe/cutile/moe.py,fp4.py) are architecture-agnosticcuda.tileDSL — there is no SM branching or arch intrinsic in the kernels;tileiras+NVRTC lower them per target SM. Adding datacenter Blackwell is therefore a runner/config-layer change only, no kernel work:flashinfer/fused_moe/api.py: add100, 103to_CUTILE_BF16_ARCHSand_CUTILE_NVFP4_ARCHS.flashinfer/fused_moe/runners.py: add SM100/103 entries to the two arch-keyed BF16 tables (_CUTILE_BF16_DEFAULT_GEMM_CONFIGSdefault-tile map, and theprefill_thresholdin_candidate_non_gated_block_sizes). Seeds mirror the SM90 datacenter profile and are refined by autotuning (the full config set is still searched when autotune is on). NVFP4 has no arch-keyed table, so it needs only the tuple widen.tests/moe/test_unified_moe_cutile.py: widen the human-readable skip-guard reason strings. No new parametrization is needed — the guards gate onConfig.supported(cc), so the existing BF16/NVFP4 test matrix auto-activates on the new arches.The runtime
is_cuda_tile_available()gate (flashinfer/cutile/cutile_common.py) already probestileiras/NVRTC per device, so an env whose toolchain lacks SM100/103 still fails closed.🔍 Related Issues
Follow-up to #4646 (cuTile fused MoE backend).
🚀 Pull Request Checklist
✅ Pre-commit Checks
pre-commitby runningpip install pre-commit(or used your preferred method).pre-commit install.pre-commit run --all-filesand fixed any reported issues.🧪 Tests
tests/moe/test_unified_moe_cutile.pymatrix auto-covers SM100/103 via the supported-arch skip guards.)unittest, etc.). Pending on-hardware B200/B300 run — see Description.Reviewer Notes
Kept the change strictly additive so it cannot affect the already-shipped SM89/90/120/121 paths. The one thing worth a close look is the NVFP4 W4A4 path on datacenter Blackwell: it has no arch-keyed config table (its heuristics are shape-driven), so correctness should carry over, but the FP4 MMA path on SM100/103 will get an explicit numeric-parity run before this leaves Draft. Perf headroom on
_CUTILE_W4A4_GEMM_CONFIGSre-tuning for datacenter is noted as a follow-up.