diff --git a/python/sglang/math_utils.py b/python/sglang/math_utils.py deleted file mode 100644 index fd0aa77f7..000000000 --- a/python/sglang/math_utils.py +++ /dev/null @@ -1,8 +0,0 @@ -# COPIED FROM DeepGEMM -def align(x: int, y: int) -> int: - return ceil_div(x, y) * y - - -# COPIED FROM DeepGEMM -def ceil_div(x: int, y: int) -> int: - return (x + y - 1) // y diff --git a/python/sglang/srt/configs/janus_pro.py b/python/sglang/srt/configs/janus_pro.py index b7bbfd71e..143ebf578 100644 --- a/python/sglang/srt/configs/janus_pro.py +++ b/python/sglang/srt/configs/janus_pro.py @@ -19,7 +19,7 @@ from transformers import ( from transformers.image_utils import to_numpy_array from sglang.srt.configs.utils import register_image_processor, register_processor -from sglang.srt.mm_utils import expand2square +from sglang.srt.multimodal.mm_utils import expand2square class DictToObject(dict): diff --git a/python/sglang/srt/layers/moe/ep_moe/kernels.py b/python/sglang/srt/layers/moe/ep_moe/kernels.py index 015c380ed..2f92223de 100644 --- a/python/sglang/srt/layers/moe/ep_moe/kernels.py +++ b/python/sglang/srt/layers/moe/ep_moe/kernels.py @@ -4,9 +4,8 @@ from typing import List, Optional import torch import triton -from sglang.math_utils import ceil_div from sglang.srt.layers.quantization.fp8_kernel import per_token_group_quant_fp8 -from sglang.srt.utils import dispose_tensor, is_cuda +from sglang.srt.utils import ceil_div, dispose_tensor, is_cuda logger = logging.getLogger(__name__) diff --git a/python/sglang/srt/layers/moe/fused_moe_triton/fused_moe.py b/python/sglang/srt/layers/moe/fused_moe_triton/fused_moe.py index b0f8d57ee..e6deeeae7 100644 --- a/python/sglang/srt/layers/moe/fused_moe_triton/fused_moe.py +++ b/python/sglang/srt/layers/moe/fused_moe_triton/fused_moe.py @@ -12,7 +12,6 @@ import torch import triton import triton.language as tl -from sglang.math_utils import ceil_div from sglang.srt.layers.moe.topk import select_experts from sglang.srt.layers.quantization.fp8_kernel import ( per_token_group_quant_fp8, @@ -25,6 +24,7 @@ from sglang.srt.layers.quantization.int8_kernel import ( sglang_per_token_group_quant_int8, ) from sglang.srt.utils import ( + ceil_div, cpu_has_amx_support, direct_register_custom_op, get_bool_env_var, @@ -32,7 +32,6 @@ from sglang.srt.utils import ( is_cpu, is_cuda, is_hip, - log_info_on_rank0, next_power_of_2, ) diff --git a/python/sglang/srt/layers/quantization/fp8_kernel.py b/python/sglang/srt/layers/quantization/fp8_kernel.py index 612b9d1bb..c28454fc4 100644 --- a/python/sglang/srt/layers/quantization/fp8_kernel.py +++ b/python/sglang/srt/layers/quantization/fp8_kernel.py @@ -23,9 +23,9 @@ import torch import triton import triton.language as tl -from sglang.math_utils import align from sglang.srt.layers.quantization import deep_gemm_wrapper from sglang.srt.utils import ( + align, direct_register_custom_op, get_device_core_count, get_device_name, diff --git a/python/sglang/srt/layers/quantization/fp8_utils.py b/python/sglang/srt/layers/quantization/fp8_utils.py index a2abf975c..405351818 100644 --- a/python/sglang/srt/layers/quantization/fp8_utils.py +++ b/python/sglang/srt/layers/quantization/fp8_utils.py @@ -1,9 +1,7 @@ from typing import Callable, List, Optional, Tuple -import einops import torch -from sglang.math_utils import align from sglang.srt.layers.quantization import deep_gemm_wrapper from sglang.srt.layers.quantization.fp8_kernel import sglang_per_token_group_quant_fp8 from sglang.srt.layers.utils import is_sm100_supported @@ -27,6 +25,7 @@ from sglang.srt.layers.quantization.fp8_kernel import ( w8a8_block_fp8_matmul_triton, ) from sglang.srt.utils import ( + align, get_bool_env_var, get_cuda_version, get_device_capability, diff --git a/python/sglang/srt/managers/io_struct.py b/python/sglang/srt/managers/io_struct.py index 9451827a9..cd11967e8 100644 --- a/python/sglang/srt/managers/io_struct.py +++ b/python/sglang/srt/managers/io_struct.py @@ -22,7 +22,7 @@ from dataclasses import dataclass, field from enum import Enum from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union -from sglang.srt.mm_utils import has_valid_data +from sglang.srt.multimodal.mm_utils import has_valid_data # handle serialization of Image for pydantic if TYPE_CHECKING: diff --git a/python/sglang/srt/managers/mm_utils.py b/python/sglang/srt/managers/mm_utils.py index 8a9cea83a..e421348b1 100644 --- a/python/sglang/srt/managers/mm_utils.py +++ b/python/sglang/srt/managers/mm_utils.py @@ -2,8 +2,6 @@ Multi-modality utils """ -import dataclasses -import logging from abc import abstractmethod from typing import Callable, List, Optional, Tuple diff --git a/python/sglang/srt/managers/multimodal_processor.py b/python/sglang/srt/managers/multimodal_processor.py index 938ddd044..3980947d7 100644 --- a/python/sglang/srt/managers/multimodal_processor.py +++ b/python/sglang/srt/managers/multimodal_processor.py @@ -5,9 +5,7 @@ import logging import pkgutil from functools import lru_cache -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor, -) +from sglang.srt.multimodal.processors.base_processor import BaseMultimodalProcessor from sglang.srt.server_args import ServerArgs logger = logging.getLogger(__name__) @@ -29,7 +27,7 @@ def get_dummy_processor(): @lru_cache() def import_processors(): - package_name = "sglang.srt.managers.multimodal_processors" + package_name = "sglang.srt.multimodal.processors" package = importlib.import_module(package_name) for _, name, ispkg in pkgutil.iter_modules(package.__path__, package_name + "."): if not ispkg: diff --git a/python/sglang/srt/models/llava.py b/python/sglang/srt/models/llava.py index 62ed1d374..051145221 100644 --- a/python/sglang/srt/models/llava.py +++ b/python/sglang/srt/models/llava.py @@ -41,16 +41,16 @@ from sglang.srt.managers.schedule_batch import ( MultimodalDataItem, MultimodalInputs, ) -from sglang.srt.mm_utils import ( - get_anyres_image_grid_shape, - unpad_image, - unpad_image_shape, -) from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.models.llama import LlamaForCausalLM from sglang.srt.models.mistral import MistralForCausalLM from sglang.srt.models.qwen2 import Qwen2ForCausalLM +from sglang.srt.multimodal.mm_utils import ( + get_anyres_image_grid_shape, + unpad_image, + unpad_image_shape, +) from sglang.srt.utils import add_prefix, flatten_nested_list, logger diff --git a/python/sglang/srt/mm_utils.py b/python/sglang/srt/multimodal/mm_utils.py similarity index 100% rename from python/sglang/srt/mm_utils.py rename to python/sglang/srt/multimodal/mm_utils.py diff --git a/python/sglang/srt/managers/multimodal_processors/base_processor.py b/python/sglang/srt/multimodal/processors/base_processor.py similarity index 100% rename from python/sglang/srt/managers/multimodal_processors/base_processor.py rename to python/sglang/srt/multimodal/processors/base_processor.py diff --git a/python/sglang/srt/managers/multimodal_processors/clip.py b/python/sglang/srt/multimodal/processors/clip.py similarity index 93% rename from python/sglang/srt/managers/multimodal_processors/clip.py rename to python/sglang/srt/multimodal/processors/clip.py index 329c14d46..18cbdc312 100644 --- a/python/sglang/srt/managers/multimodal_processors/clip.py +++ b/python/sglang/srt/multimodal/processors/clip.py @@ -1,10 +1,8 @@ from typing import List, Union -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem from sglang.srt.models.clip import CLIPModel +from sglang.srt.multimodal.processors.base_processor import BaseMultimodalProcessor from sglang.srt.utils import load_image diff --git a/python/sglang/srt/managers/multimodal_processors/deepseek_vl_v2.py b/python/sglang/srt/multimodal/processors/deepseek_vl_v2.py similarity index 97% rename from python/sglang/srt/managers/multimodal_processors/deepseek_vl_v2.py rename to python/sglang/srt/multimodal/processors/deepseek_vl_v2.py index 8b31f7304..369ab9fb8 100644 --- a/python/sglang/srt/managers/multimodal_processors/deepseek_vl_v2.py +++ b/python/sglang/srt/multimodal/processors/deepseek_vl_v2.py @@ -20,12 +20,12 @@ from typing import List, Union import torch -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.deepseek_vl2 import DeepseekVL2ForCausalLM +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.deepseek_vl2 import DeepseekVL2ForCausalLM class DeepseekVL2ImageProcessor(BaseMultimodalProcessor): diff --git a/python/sglang/srt/managers/multimodal_processors/gemma3.py b/python/sglang/srt/multimodal/processors/gemma3.py similarity index 95% rename from python/sglang/srt/managers/multimodal_processors/gemma3.py rename to python/sglang/srt/multimodal/processors/gemma3.py index 9e28284bb..3b170a31e 100644 --- a/python/sglang/srt/managers/multimodal_processors/gemma3.py +++ b/python/sglang/srt/multimodal/processors/gemma3.py @@ -4,11 +4,9 @@ from typing import Dict, List, Union from sglang.srt.managers.multimodal_processor import ( BaseMultimodalProcessor as SGLangBaseProcessor, ) -from sglang.srt.managers.multimodal_processors.base_processor import ( - MultimodalSpecialTokens, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem from sglang.srt.models.gemma3_mm import Gemma3ForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import MultimodalSpecialTokens # Copied from: https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma3/image_processing_gemma3_fast.py # will be removed in the future diff --git a/python/sglang/srt/managers/multimodal_processors/gemma3n.py b/python/sglang/srt/multimodal/processors/gemma3n.py similarity index 97% rename from python/sglang/srt/managers/multimodal_processors/gemma3n.py rename to python/sglang/srt/multimodal/processors/gemma3n.py index 319d4eb40..0ef6466b7 100644 --- a/python/sglang/srt/managers/multimodal_processors/gemma3n.py +++ b/python/sglang/srt/multimodal/processors/gemma3n.py @@ -18,10 +18,8 @@ from typing import Dict, List, Optional, Union from sglang.srt.managers.multimodal_processor import ( BaseMultimodalProcessor as SGLangBaseProcessor, ) -from sglang.srt.managers.multimodal_processors.base_processor import ( - MultimodalSpecialTokens, -) from sglang.srt.models.gemma3n_mm import Gemma3nForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import MultimodalSpecialTokens class Gemma3nSGLangProcessor(SGLangBaseProcessor): diff --git a/python/sglang/srt/managers/multimodal_processors/internvl.py b/python/sglang/srt/multimodal/processors/internvl.py similarity index 99% rename from python/sglang/srt/managers/multimodal_processors/internvl.py rename to python/sglang/srt/multimodal/processors/internvl.py index 21b4c36c7..a9ae60f5f 100644 --- a/python/sglang/srt/managers/multimodal_processors/internvl.py +++ b/python/sglang/srt/multimodal/processors/internvl.py @@ -5,12 +5,12 @@ import torch from decord import VideoReader, cpu from PIL import Image -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.internvl import InternVLChatModel +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.internvl import InternVLChatModel class InternVLImageProcessor(BaseMultimodalProcessor): diff --git a/python/sglang/srt/managers/multimodal_processors/janus_pro.py b/python/sglang/srt/multimodal/processors/janus_pro.py similarity index 96% rename from python/sglang/srt/managers/multimodal_processors/janus_pro.py rename to python/sglang/srt/multimodal/processors/janus_pro.py index c06aedbc5..e08204f11 100644 --- a/python/sglang/srt/managers/multimodal_processors/janus_pro.py +++ b/python/sglang/srt/multimodal/processors/janus_pro.py @@ -1,11 +1,11 @@ from typing import List, Union -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.deepseek_janus_pro import MultiModalityCausalLM +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.deepseek_janus_pro import MultiModalityCausalLM class JanusProImageProcessor(BaseMultimodalProcessor): diff --git a/python/sglang/srt/managers/multimodal_processors/kimi_vl.py b/python/sglang/srt/multimodal/processors/kimi_vl.py similarity index 90% rename from python/sglang/srt/managers/multimodal_processors/kimi_vl.py rename to python/sglang/srt/multimodal/processors/kimi_vl.py index 7431a2ec1..404d42458 100644 --- a/python/sglang/srt/managers/multimodal_processors/kimi_vl.py +++ b/python/sglang/srt/multimodal/processors/kimi_vl.py @@ -3,14 +3,12 @@ from typing import Any, Dict, List, Optional, Union import torch -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor as SGLangBaseProcessor, -) -from sglang.srt.managers.multimodal_processors.base_processor import ( - MultimodalSpecialTokens, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem from sglang.srt.models.kimi_vl import KimiVLForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import ( + BaseMultimodalProcessor as SGLangBaseProcessor, +) +from sglang.srt.multimodal.processors.base_processor import MultimodalSpecialTokens # Compatible with KimiVLForConditionalGeneration diff --git a/python/sglang/srt/managers/multimodal_processors/llava.py b/python/sglang/srt/multimodal/processors/llava.py similarity index 97% rename from python/sglang/srt/managers/multimodal_processors/llava.py rename to python/sglang/srt/multimodal/processors/llava.py index 15968e16d..d2ecb8260 100644 --- a/python/sglang/srt/managers/multimodal_processors/llava.py +++ b/python/sglang/srt/multimodal/processors/llava.py @@ -7,11 +7,7 @@ from transformers.models.auto.processing_auto import ( ) import sglang.srt.managers.multimodal_processor as sgl_mm_processor_utils -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.mm_utils import expand2square, process_anyres_image from sglang.srt.models.llava import ( LlavaForConditionalGeneration, LlavaLlamaForCausalLM, @@ -20,6 +16,8 @@ from sglang.srt.models.llava import ( ) from sglang.srt.models.llavavid import LlavaVidForCausalLM from sglang.srt.models.mistral import Mistral3ForConditionalGeneration +from sglang.srt.multimodal.mm_utils import expand2square, process_anyres_image +from sglang.srt.multimodal.processors.base_processor import BaseMultimodalProcessor from sglang.srt.utils import load_image, logger from sglang.utils import get_exception_traceback diff --git a/python/sglang/srt/managers/multimodal_processors/minicpm.py b/python/sglang/srt/multimodal/processors/minicpm.py similarity index 98% rename from python/sglang/srt/managers/multimodal_processors/minicpm.py rename to python/sglang/srt/multimodal/processors/minicpm.py index 95bb231c3..46b7d6246 100644 --- a/python/sglang/srt/managers/multimodal_processors/minicpm.py +++ b/python/sglang/srt/multimodal/processors/minicpm.py @@ -2,13 +2,13 @@ from typing import List, Union import torch -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor, - MultimodalSpecialTokens, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem from sglang.srt.models.minicpmo import MiniCPMO from sglang.srt.models.minicpmv import MiniCPMV +from sglang.srt.multimodal.processors.base_processor import ( + BaseMultimodalProcessor, + MultimodalSpecialTokens, +) # Compatible with both 'O' and 'V' diff --git a/python/sglang/srt/managers/multimodal_processors/mlama.py b/python/sglang/srt/multimodal/processors/mlama.py similarity index 93% rename from python/sglang/srt/managers/multimodal_processors/mlama.py rename to python/sglang/srt/multimodal/processors/mlama.py index 074bec9bd..d7bd0dfa5 100644 --- a/python/sglang/srt/managers/multimodal_processors/mlama.py +++ b/python/sglang/srt/multimodal/processors/mlama.py @@ -1,10 +1,8 @@ from typing import List, Union -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem from sglang.srt.models.mllama import MllamaForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import BaseMultimodalProcessor from sglang.srt.utils import load_image diff --git a/python/sglang/srt/managers/multimodal_processors/mllama4.py b/python/sglang/srt/multimodal/processors/mllama4.py similarity index 98% rename from python/sglang/srt/managers/multimodal_processors/mllama4.py rename to python/sglang/srt/multimodal/processors/mllama4.py index 4dadca6f8..c8507e5e1 100644 --- a/python/sglang/srt/managers/multimodal_processors/mllama4.py +++ b/python/sglang/srt/multimodal/processors/mllama4.py @@ -7,12 +7,12 @@ from transformers.models.llama4.image_processing_llama4_fast import ( get_best_fit, ) -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.mllama4 import Llama4ForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.mllama4 import Llama4ForConditionalGeneration class Mllama4ImageProcessor(BaseMultimodalProcessor): diff --git a/python/sglang/srt/managers/multimodal_processors/phi4mm.py b/python/sglang/srt/multimodal/processors/phi4mm.py similarity index 97% rename from python/sglang/srt/managers/multimodal_processors/phi4mm.py rename to python/sglang/srt/multimodal/processors/phi4mm.py index 0d8a38b96..64f51d8e2 100644 --- a/python/sglang/srt/managers/multimodal_processors/phi4mm.py +++ b/python/sglang/srt/multimodal/processors/phi4mm.py @@ -1,12 +1,12 @@ import logging from typing import List, Union -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.phi4mm import Phi4MMForCausalLM +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.phi4mm import Phi4MMForCausalLM logger = logging.getLogger(__name__) diff --git a/python/sglang/srt/managers/multimodal_processors/pixtral.py b/python/sglang/srt/multimodal/processors/pixtral.py similarity index 98% rename from python/sglang/srt/managers/multimodal_processors/pixtral.py rename to python/sglang/srt/multimodal/processors/pixtral.py index 638938097..6ca422c8a 100644 --- a/python/sglang/srt/managers/multimodal_processors/pixtral.py +++ b/python/sglang/srt/multimodal/processors/pixtral.py @@ -6,12 +6,12 @@ from transformers.models.pixtral.image_processing_pixtral import ( _num_image_tokens as _get_pixtral_hf_num_image_tokens, ) -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.pixtral import PixtralVisionModel +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.pixtral import PixtralVisionModel class PixtralProcessor(BaseMultimodalProcessor): diff --git a/python/sglang/srt/managers/multimodal_processors/qwen_vl.py b/python/sglang/srt/multimodal/processors/qwen_vl.py similarity index 97% rename from python/sglang/srt/managers/multimodal_processors/qwen_vl.py rename to python/sglang/srt/multimodal/processors/qwen_vl.py index d09b61b29..855c8bf90 100644 --- a/python/sglang/srt/managers/multimodal_processors/qwen_vl.py +++ b/python/sglang/srt/multimodal/processors/qwen_vl.py @@ -7,15 +7,13 @@ import torch from PIL import Image from sglang.srt.layers.rotary_embedding import MRotaryEmbedding -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor as SGLangBaseProcessor, -) -from sglang.srt.managers.multimodal_processors.base_processor import ( - MultimodalSpecialTokens, -) from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem from sglang.srt.models.qwen2_5_vl import Qwen2_5_VLForConditionalGeneration from sglang.srt.models.qwen2_vl import Qwen2VLForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import ( + BaseMultimodalProcessor as SGLangBaseProcessor, +) +from sglang.srt.multimodal.processors.base_processor import MultimodalSpecialTokens # Compatible with Qwen2VL and Qwen2_5VL diff --git a/python/sglang/srt/managers/multimodal_processors/vila.py b/python/sglang/srt/multimodal/processors/vila.py similarity index 97% rename from python/sglang/srt/managers/multimodal_processors/vila.py rename to python/sglang/srt/multimodal/processors/vila.py index 53f224dc7..5b4ae9a92 100644 --- a/python/sglang/srt/managers/multimodal_processors/vila.py +++ b/python/sglang/srt/multimodal/processors/vila.py @@ -10,12 +10,12 @@ from sglang.srt.managers.io_struct import ( GenerateReqInput, ImageDataItem, ) -from sglang.srt.managers.multimodal_processors.base_processor import ( +from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem +from sglang.srt.models.vila import VILAForConditionalGeneration +from sglang.srt.multimodal.processors.base_processor import ( BaseMultimodalProcessor, MultimodalSpecialTokens, ) -from sglang.srt.managers.schedule_batch import Modality, MultimodalDataItem -from sglang.srt.models.vila import VILAForConditionalGeneration from sglang.srt.server_args import ServerArgs diff --git a/python/sglang/srt/utils.py b/python/sglang/srt/utils.py index 2c0c86f37..8f3d712e6 100644 --- a/python/sglang/srt/utils.py +++ b/python/sglang/srt/utils.py @@ -2577,3 +2577,13 @@ def configure_gc_logger(): ) gc.callbacks.append(gc_callback) + + +# COPIED FROM DeepGEMM +def align(x: int, y: int) -> int: + return ceil_div(x, y) * y + + +# COPIED FROM DeepGEMM +def ceil_div(x: int, y: int) -> int: + return (x + y - 1) // y diff --git a/test/srt/test_vlm_accuracy.py b/test/srt/test_vlm_accuracy.py index 518ec8671..c83a80791 100644 --- a/test/srt/test_vlm_accuracy.py +++ b/test/srt/test_vlm_accuracy.py @@ -23,15 +23,13 @@ from sglang.srt.configs.model_config import ModelConfig from sglang.srt.conversation import generate_chat_conv from sglang.srt.entrypoints.openai.protocol import ChatCompletionRequest from sglang.srt.managers.mm_utils import embed_mm_inputs, init_embedding_cache -from sglang.srt.managers.multimodal_processors.base_processor import ( - BaseMultimodalProcessor, -) from sglang.srt.managers.schedule_batch import ( Modality, MultimodalDataItem, MultimodalInputs, ) from sglang.srt.model_executor.model_runner import ModelRunner +from sglang.srt.multimodal.processors.base_processor import BaseMultimodalProcessor from sglang.srt.server_args import ServerArgs