From 83d09d36b5951a8de5205438d0742768ad191c4d Mon Sep 17 00:00:00 2001 From: rasmith Date: Tue, 7 Apr 2026 11:37:16 -0500 Subject: [PATCH] [CI][Bugfix][AMD][ Ensure weights created when using emulating OCP MXFP4 (#36993) Signed-off-by: Randall Smith --- .../quark/schemes/quark_ocp_mx.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/vllm/model_executor/layers/quantization/quark/schemes/quark_ocp_mx.py b/vllm/model_executor/layers/quantization/quark/schemes/quark_ocp_mx.py index 0b0a224f3..e96bc7c58 100644 --- a/vllm/model_executor/layers/quantization/quark/schemes/quark_ocp_mx.py +++ b/vllm/model_executor/layers/quantization/quark/schemes/quark_ocp_mx.py @@ -267,20 +267,26 @@ class QuarkOCP_MX(QuarkScheme): def get_min_capability(cls) -> int: return 70 + def process_dynamic_mxfp4_weights_after_loading( + self, layer: torch.nn.Module + ) -> None: + w_q, w_s = dynamic_mxfp4_quant(layer.weight) + layer.weight_scale = torch.nn.Parameter(w_s.T.contiguous(), requires_grad=False) + layer.weight = torch.nn.Parameter(w_q, requires_grad=False) + def process_weights_after_loading(self, layer: torch.nn.Module) -> None: layer.weight = torch.nn.Parameter(layer.weight.data, requires_grad=False) if self.emulate: - layer.weight_scale = torch.nn.Parameter( - layer.weight_scale.data, requires_grad=False - ) + if self.dynamic_mxfp4_quant: + self.process_dynamic_mxfp4_weights_after_loading(layer) + else: + layer.weight_scale = torch.nn.Parameter( + layer.weight_scale.data, requires_grad=False + ) else: if self.dynamic_mxfp4_quant: - w_q, w_s = dynamic_mxfp4_quant(layer.weight) - layer.weight_scale = torch.nn.Parameter( - w_s.T.contiguous(), requires_grad=False - ) - layer.weight = torch.nn.Parameter(w_q, requires_grad=False) + self.process_dynamic_mxfp4_weights_after_loading(layer) elif self.rocm_use_aiter_fp4_asm_gemm: # shuffle weight scale weight_scale_shuffle = layer.weight_scale.data