main
py 26 lines 944 Bytes
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 import numpy as np
4
5 from vllm.v1.kv_offload.base import BlockIDsLoadStoreSpec
6
7
8 class CPUOffloadingMetrics:
9 STORES_SKIPPED = "vllm:kv_offload_stores_skipped"
10 CPU_CACHE_USAGE_PERC = "vllm:kv_offload_cpu_cache_usage_perc"
11 CPU_ALLOCATION_SIZE = "vllm:kv_offload_cpu_allocation_size"
12 CPU_CACHE_WRITE_USAGE_PERC = "vllm:kv_offload_cpu_cache_write_usage_perc"
13 CPU_CACHE_READ_USAGE_PERC = "vllm:kv_offload_cpu_cache_read_usage_perc"
14
15
16 class CPULoadStoreSpec(BlockIDsLoadStoreSpec):
17 """Spec for loading/storing KV chunks to/from CPU memory.
18
19 The inherited block_ids field holds chunk indices into the
20 CPU cache (not GPU block IDs). The chunk_ids alias exposes
21 the same array under the name used by the tiering layer.
22 """
23
24 @property
25 def chunk_ids(self) -> np.ndarray:
26 return self.block_ids