From 3005af09412cedb988a5871a3441ae49424a13bb Mon Sep 17 00:00:00 2001 From: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> Date: Tue, 28 Jul 2026 05:56:42 +0800 Subject: [PATCH] Fix compressed-tensors NVFP4 MoE W13 layout (#32430) --- .../quantization/compressed_tensors/compressed_tensors.py | 1 + .../compressed_tensors/schemes/compressed_tensors_scheme.py | 2 ++ .../schemes/compressed_tensors_w4a4_nvfp4_moe.py | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/python/sglang/srt/layers/quantization/compressed_tensors/compressed_tensors.py b/python/sglang/srt/layers/quantization/compressed_tensors/compressed_tensors.py index f9d3e2ea0..76e5c139e 100644 --- a/python/sglang/srt/layers/quantization/compressed_tensors/compressed_tensors.py +++ b/python/sglang/srt/layers/quantization/compressed_tensors/compressed_tensors.py @@ -1035,6 +1035,7 @@ class CompressedTensorsFusedMoEMethod(FusedMoEMethodBase): the necessary parameters for the layer. See LinearMethodBase for param details """ + self.load_up_proj_weight_first = layer.scheme.load_up_proj_weight_first layer.scheme.create_weights( layer=layer, num_experts=num_experts, diff --git a/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_scheme.py b/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_scheme.py index 25c7168e7..6f9ef0498 100644 --- a/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_scheme.py +++ b/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_scheme.py @@ -68,6 +68,8 @@ class CompressedTensorsMoEScheme(BaseMoEScheme): of different quantization schemes supported by CompressedTensors. """ + load_up_proj_weight_first = False + @classmethod def get_min_capability(cls) -> int: """ diff --git a/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_w4a4_nvfp4_moe.py b/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_w4a4_nvfp4_moe.py index 001734c96..07c11416e 100644 --- a/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_w4a4_nvfp4_moe.py +++ b/python/sglang/srt/layers/quantization/compressed_tensors/schemes/compressed_tensors_w4a4_nvfp4_moe.py @@ -42,6 +42,11 @@ class CompressedTensorsW4A4Nvfp4MoE(CompressedTensorsMoEScheme): self.group_size = 16 self.use_flashinfer_trtllm = get_moe_runner_backend().is_flashinfer_trtllm() + @property + def load_up_proj_weight_first(self) -> bool: + """Load W13 as ``[up; gate]`` for CUTLASS; TRT-LLM reorders post-load.""" + return not self.use_flashinfer_trtllm + @classmethod def get_min_capability(cls) -> int: # Requires sm100(blackwell) architecture