- TaskCacheRegistry -> TaskCacheManager (independent, held by scheduler) - TaskCacheState co-locates 5 parallel dicts into one dataclass - AllocationStrategy base class + PagedStrategy subclass (page_size is a parameter) - _rollback() helper for unified cleanup (no duplicate free paths) - Task._kv_len + prefill_done property (explicit, no output_tokens proxy) - Steady-state detection single-sourced in TaskCacheManager.bind() - PagePool is now pure physical layer (no task knowledge) - Removed dead _page_to_hash dict in RadixCache
36 lines
809 B
Python
36 lines
809 B
Python
"""Inference core: cache, executor, scheduler, task management."""
|
|
|
|
from astrai.inference.core.cache import (
|
|
Allocator,
|
|
KVCache,
|
|
KVStorage,
|
|
PagePool,
|
|
RadixCache,
|
|
ReqToTokenPool,
|
|
TaskCacheManager,
|
|
page_hash,
|
|
)
|
|
from astrai.inference.core.executor import Executor
|
|
from astrai.inference.core.metrics import MetricsCollector, TaskTiming
|
|
from astrai.inference.core.scheduler import InferenceScheduler
|
|
from astrai.inference.core.task import STOP, Task, TaskManager, TaskStatus
|
|
|
|
__all__ = [
|
|
"Allocator",
|
|
"KVCache",
|
|
"KVStorage",
|
|
"PagePool",
|
|
"RadixCache",
|
|
"ReqToTokenPool",
|
|
"TaskCacheManager",
|
|
"page_hash",
|
|
"Executor",
|
|
"InferenceScheduler",
|
|
"MetricsCollector",
|
|
"TaskTiming",
|
|
"STOP",
|
|
"Task",
|
|
"TaskManager",
|
|
"TaskStatus",
|
|
]
|