Skip to content

vllm.v1.attention.backends.mla.prefill.registry

Registry for MLA prefill backends.

This module provides an enumeration of all available MLA prefill backends and utilities for loading them.

MLAPrefillBackendEnum

Bases: Enum

Enumeration of all supported MLA prefill backends.

Source code in vllm/v1/attention/backends/mla/prefill/registry.py
class MLAPrefillBackendEnum(Enum, metaclass=_MLAPrefillBackendEnumMeta):
    """Enumeration of all supported MLA prefill backends."""

    FLASH_ATTN = (
        "vllm.v1.attention.backends.mla.prefill.flash_attn.FlashAttnPrefillBackend"
    )
    FLASHINFER = (
        "vllm.v1.attention.backends.mla.prefill.flashinfer.FlashInferPrefillBackend"
    )
    CUDNN = "vllm.v1.attention.backends.mla.prefill.cudnn.CudnnPrefillBackend"
    TRTLLM_RAGGED = (
        "vllm.v1.attention.backends.mla.prefill.trtllm_ragged."
        "TrtllmRaggedPrefillBackend"
    )

    def get_path(self) -> str:
        """Get the fully qualified class path for this backend."""
        return self.value

    def get_class(self) -> "type[MLAPrefillBackend]":
        """Lazy load and return the backend class."""
        return resolve_obj_by_qualname(self.get_path())

get_class

get_class() -> type[MLAPrefillBackend]

Lazy load and return the backend class.

Source code in vllm/v1/attention/backends/mla/prefill/registry.py
def get_class(self) -> "type[MLAPrefillBackend]":
    """Lazy load and return the backend class."""
    return resolve_obj_by_qualname(self.get_path())

get_path

get_path() -> str

Get the fully qualified class path for this backend.

Source code in vllm/v1/attention/backends/mla/prefill/registry.py
def get_path(self) -> str:
    """Get the fully qualified class path for this backend."""
    return self.value

_MLAPrefillBackendEnumMeta

Bases: EnumMeta

Metaclass for MLAPrefillBackendEnum to provide better error messages.

Source code in vllm/v1/attention/backends/mla/prefill/registry.py
class _MLAPrefillBackendEnumMeta(EnumMeta):
    """Metaclass for MLAPrefillBackendEnum to provide better error messages."""

    def __getitem__(cls, name: str):
        try:
            return super().__getitem__(name)
        except KeyError:
            members = cls.__members__.keys()
            valid_backends = ", ".join(members)
            raise ValueError(
                f"Unknown MLA prefill backend: '{name}'. "
                f"Valid options are: {valid_backends}"
            ) from None