feat(moe): select gfx950 TP A8W4 SiTU - #1139
Conversation
Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Project shared weights across M=1/2/4 while scheduling per-token AttnRes reductions, with an MFMA projection at M=4. Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Use fused Gluon for M=1/2 and the composed MFMA path from M=3 through M=16. Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Add the SiTU-v2 epilogue to the package prefill stage and preserve logical K metadata across padded weight aliases. Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Add dynamic FP8 quantization and route-direct A8W4 SiTU decode, including optional shared-down projection and package-prefill fallback. Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Register the exact Kimi TP8/EP1 shard shape, forward optional shared-down outputs, and cover selection, CUDA graph capture, and reference numerics. Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
e689319 to
bcebe08
Compare
49adbc9 to
07fded4
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bcebe08a43
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| shared_input: torch.Tensor | None = None, | ||
| shared_weight: torch.Tensor | None = None, | ||
| shared_out: torch.Tensor | None = None, |
There was a problem hiding this comment.
Document the new shared-projection API
Document these parameters in the exported tokenspeed_kernel.moe_apply docstring, including their all-or-none requirement, expected shapes, backend limitations, and the tuple return produced when shared projection is enabled. Without that contract, callers cannot safely use the newly public arguments or determine when the return type changes from a tensor to (routed, shared).
AGENTS.md reference: AGENTS.md:L45-L47
Useful? React with 👍 / 👎.
|
Hi you might already be aware but, just FYI, using the tp8ep1 (A8W4) I got accuracy issues
EP8: 8/8 correct. EP1: 3/8 terminate at all, and all three are wrong — 0/8 correct. Here is my experimental branch based on this work, that captures the state as it was yesterday, if it has changed since then, then please ignore this |
This issue is now fixed. |
Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Signed-off-by: Sanket Pandit <sanket.pandit@amd.com>
Summary
ispptraits when a kernel declares onePerformance
4K/1K TP8/EP1 CUDA graphs, median of three at head
e689319e:The exact parent does not support this Kimi SiTU TP8/EP1 configuration: it falls into the generic weight-only MXFP4 path and raises
Weight-only MXFP4 MoE supports only SwiGLU. This PR therefore enables the configuration; there is no valid parent E2E percentage comparison. The direct kernel comparison is documented in #1138.Tests
isppselector coverage: 1 passedStack