# SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project import types from importlib.util import find_spec from vllm.logger import init_logger logger = init_logger(__name__) HAS_TRITON = ( find_spec("triton") is not None or find_spec("pytorch-triton-xpu") is not None # Not compatible ) if not HAS_TRITON: logger.info("Triton not installed or not compatible; certain GPU-related" " functions will not be available.") class TritonPlaceholder(types.ModuleType): def __init__(self): super().__init__("triton") self.jit = self._dummy_decorator("jit") self.autotune = self._dummy_decorator("autotune") self.heuristics = self._dummy_decorator("heuristics") self.language = TritonLanguagePlaceholder() logger.warning_once( "Triton is not installed. Using dummy decorators. " "Install it via `pip install triton` to enable kernel" " compilation.") def _dummy_decorator(self, name): def decorator(*args, **kwargs): if args and callable(args[0]): return args[0] return lambda f: f return decorator class TritonLanguagePlaceholder(types.ModuleType): def __init__(self): super().__init__("triton.language") self.constexpr = None self.dtype = None self.int64 = None