Files
wehub-resource-sync 7ce4c8e27e
pre-commit / pre-run-check (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:55:37 +08:00

51 lines
1.4 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
import dataclasses
from contextlib import AbstractContextManager
from typing import Protocol, TypeAlias
import torch
from vllm.platforms import current_platform
# py_device, py_size_or_aligned_size, py_ptr, py_handle
# py_handle has type list[int] on ROCm and int otherwise
HandleType: TypeAlias = tuple[int, int, int, list[int] | int]
@dataclasses.dataclass
class AllocationData:
handle: HandleType
tag: str
cpu_backup_tensor: torch.Tensor | None = None
is_asleep: bool = False
class MemAllocator(Protocol):
def use_memory_pool(self, tag: str | None = None) -> AbstractContextManager: ...
def sleep(self, offload_tags: tuple[str, ...] | str | None = None) -> None: ...
def wake_up(self, tags: list[str] | None = None) -> None: ...
def get_current_usage(self) -> int: ...
def get_mem_allocator_instance() -> MemAllocator:
if current_platform.is_cuda_alike():
from vllm.device_allocator.cumem import CuMemAllocator
return CuMemAllocator.get_instance()
if current_platform.is_xpu():
from vllm.device_allocator.xpumem import XpuMemAllocator
return XpuMemAllocator.get_instance()
raise RuntimeError(
"Sleep mode allocator is not available on platform "
f"{type(current_platform).__name__} "
f"(device_type={current_platform.device_type})."
)