From 2bf04f3a67edf5f1c43b4f00761f19758346dcf7 Mon Sep 17 00:00:00 2001 From: Xinguo Zhu Date: Tue, 8 Sep 2026 10:56:42 +0800 Subject: [PATCH] [Diffusion][CPU] Enable MiniMax-H3 on Xeon CPU (#35147) --- .../multimodal_gen/runtime/distributed/group_coordinator.py | 5 ++++- .../model_specific_stages/minimax_h3/stages/denoising.py | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/python/sglang/multimodal_gen/runtime/distributed/group_coordinator.py b/python/sglang/multimodal_gen/runtime/distributed/group_coordinator.py index d4d502ac4..85290850d 100644 --- a/python/sglang/multimodal_gen/runtime/distributed/group_coordinator.py +++ b/python/sglang/multimodal_gen/runtime/distributed/group_coordinator.py @@ -441,7 +441,10 @@ class GroupCoordinator: if current_platform.is_cpu() and is_shm_available( input_.dtype, self.world_size, len(self.ranks) ): - return torch.ops.sgl_kernel.shm_allgather(input_, dim) + output_tensor = torch.ops.sgl_kernel.shm_allgather(input_, dim) + if separate_tensors: + return list(output_tensor.chunk(world_size, dim=dim)) + return output_tensor else: all_gather_single(output_tensor, input_, group=self.device_group) diff --git a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/denoising.py b/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/denoising.py index a0211526f..93ec9c2f2 100644 --- a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/denoising.py +++ b/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/denoising.py @@ -676,11 +676,12 @@ class MiniMaxH3DenoisingStage(DenoisingStage): if not ( current_platform.is_cuda() + or current_platform.is_cpu() or current_platform.is_mps() or current_platform.is_npu() ): raise RuntimeError( - "MiniMax H3 full-loop denoise requires CUDA, MPS, or Ascend NPU" + "MiniMax H3 full-loop denoise requires CPU, CUDA, MPS, or Ascend NPU" ) device = current_platform.get_local_torch_device()