From 62e6a749b0638c2c50059347040df6d3b6766984 Mon Sep 17 00:00:00 2001 From: siyu Date: Fri, 23 Jan 2026 10:53:45 +0800 Subject: [PATCH] Skip mm feature pool init to avoid EPD OOM (#16388) --- python/sglang/srt/disaggregation/encode_receiver.py | 6 +++++- python/sglang/srt/managers/multimodal_processor.py | 6 ++++-- python/sglang/srt/multimodal/processors/base_processor.py | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/python/sglang/srt/disaggregation/encode_receiver.py b/python/sglang/srt/disaggregation/encode_receiver.py index 2e6fa1735..e43c66897 100644 --- a/python/sglang/srt/disaggregation/encode_receiver.py +++ b/python/sglang/srt/disaggregation/encode_receiver.py @@ -303,7 +303,11 @@ class MMReceiver: else: raise e self.mm_processor = get_mm_processor( - hf_config, server_args, _processor, transport_mode + hf_config, + server_args, + _processor, + transport_mode, + skip_mm_pool=True, ) def create_req(self, recv_req): diff --git a/python/sglang/srt/managers/multimodal_processor.py b/python/sglang/srt/managers/multimodal_processor.py index 3b15e566f..b2c9e68cb 100644 --- a/python/sglang/srt/managers/multimodal_processor.py +++ b/python/sglang/srt/managers/multimodal_processor.py @@ -41,11 +41,13 @@ def import_processors(package_name: str, overwrite: bool = False): def get_mm_processor( - hf_config, server_args: ServerArgs, processor, transport_mode + hf_config, server_args: ServerArgs, processor, transport_mode, **kwargs ) -> BaseMultimodalProcessor: for model_cls, processor_cls in PROCESSOR_MAPPING.items(): if model_cls.__name__ in hf_config.architectures: - return processor_cls(hf_config, server_args, processor, transport_mode) + return processor_cls( + hf_config, server_args, processor, transport_mode, **kwargs + ) raise ValueError( f"No processor registered for architecture: {hf_config.architectures}.\n" diff --git a/python/sglang/srt/multimodal/processors/base_processor.py b/python/sglang/srt/multimodal/processors/base_processor.py index b38231efd..f29344909 100644 --- a/python/sglang/srt/multimodal/processors/base_processor.py +++ b/python/sglang/srt/multimodal/processors/base_processor.py @@ -234,7 +234,9 @@ class BaseMultimodalProcessor(ABC): "input_features", ] - if SGL_USE_CUDA_IPC: + skip_mm_pool = kwargs.get("skip_mm_pool", False) + + if SGL_USE_CUDA_IPC and not skip_mm_pool: self.cudaipc_mmfeature_pool = MmItemMemoryPool( MM_FEATURE_CACHE_SIZE, MM_ITEM_MEMORY_POOL_RECYCLE_INTERVAL,