KVCache
The serving-side KV cache: per-layer storage rows over slot-indexed batches. Built once with make(); the attention ops append and attend through the tensors it hands out.
__init__
__init__(self, /, *args, **kwargs)
Initialize self. See help(type(self)) for accurate signature.
admit
admitadmit(self, batch_idx: int, prompt_ids: clika_runtime._core.Tensor, addressable_len: int = -1) -> int
admit(self, batch_idx: int, prompt_ids: clika_runtime._core.Tensor, addressable_len: int = -1) -> int
Paged only: bind the longest already-cached prefix into a fresh slot; returns the number of leading tokens whose K/V is already cached.
conv_state
conv_stateconv_state(self, layer: int, index: int = 0) -> clika_runtime._core.Tensor
conv_state(self, layer: int, index: int = 0) -> clika_runtime._core.Tensor
A state layer's i-th conv window slab [max_seqs, dim, width].
evict_batch
evict_batchevict_batch(self, batch_idx: int) -> None
evict_batch(self, batch_idx: int) -> None
Free a slot's stored K/V (its seq_lens entry returns to 0).
fill
fillfill(self, layer: int, batch_idx: int, k: clika_runtime._core.Tensor, v: clika_runtime._core.Tensor) -> None
fill(self, layer: int, batch_idx: int, k: clika_runtime._core.Tensor, v: clika_runtime._core.Tensor) -> None
Fill a CrossAttentionKV layer's K/V planes for one slot in one call ([t_enc, kv_heads, head_dim] each).
keys
keyskeys(self, layer: int) -> clika_runtime._core.Tensor
keys(self, layer: int) -> clika_runtime._core.Tensor
This layer's K storage view; bind as past AND present key into the varlen attention ops.
make
make(*args, **kwargs)
make(config: clika_runtime._core.nn.KVCacheConfig, layer_specs: collections.abc.Sequence[clika_runtime._core.nn.KVLayerSpec]) -> clika_runtime._core.nn.KVCache
Build a cache with one spec row per layer (the list's length must equal config.num_layers).
mode
modemode(self) -> clika_runtime._core.nn.KVCacheMode
mode(self) -> clika_runtime._core.nn.KVCacheMode
The serving mode this cache was built with.
paged_block_table
paged_block_tablepaged_block_table(self) -> clika_runtime._core.Tensor
paged_block_table(self) -> clika_runtime._core.Tensor
The paged block table [max_seqs, max_blocks_per_seq] Int32, or an undefined tensor for a cache with no paged rows.
prepare_step
prepare_stepprepare_step(self, cu_seqlens_q: collections.abc.Sequence[int], past_len: collections.abc.Sequence[int], slot_ids: collections.abc.Sequence[int]) -> clika_runtime._core.nn.StepIndices
prepare_step(self, cu_seqlens_q: collections.abc.Sequence[int], past_len: collections.abc.Sequence[int], slot_ids: collections.abc.Sequence[int]) -> clika_runtime._core.nn.StepIndices
Convert one step's host-side description into the device-side index tensors a varlen attention forward binds (a paged cache also reserves the step's blocks). One call per step.
recurrent_state
recurrent_staterecurrent_state(self, layer: int) -> clika_runtime._core.Tensor
recurrent_state(self, layer: int) -> clika_runtime._core.Tensor
A state layer's recurrent slab [max_seqs, heads, k_dim, v_dim].
reserve
reservereserve(self, slot_ids: clika_runtime._core.Tensor, n_new_per_seq: collections.abc.Sequence[int]) -> clika_runtime._core.Tensor
reserve(self, slot_ids: clika_runtime._core.Tensor, n_new_per_seq: collections.abc.Sequence[int]) -> clika_runtime._core.Tensor
Paged only: reserve this step's new tokens per slot; returns the per-sequence pre-advance write offsets.
reset
resetreset(self) -> None
reset(self) -> None
Drop all stored K/V across every slot and layer.
retire
retireretire(self, batch_idx: int, full_token_ids: clika_runtime._core.Tensor, addressable_len: int = -1) -> None
retire(self, batch_idx: int, full_token_ids: clika_runtime._core.Tensor, addressable_len: int = -1) -> None
Paged only: retire a finished session, keeping its blocks addressable for future admits; use evict_batch on the cancel/error path instead.
seq_lens
seq_lensseq_lens(self) -> clika_runtime._core.Tensor
seq_lens(self) -> clika_runtime._core.Tensor
Per-slot effective token counts, [max_seqs] Int32 on the cache device.
update_position
update_positionupdate_position(self, batch_idx: int, new_pos: int) -> None
update_position(self, batch_idx: int, new_pos: int) -> None
Set a slot's effective seq_len (bookkeeping only).
values
valuesvalues(self, layer: int) -> clika_runtime._core.Tensor
values(self, layer: int) -> clika_runtime._core.Tensor
The value-side sibling of keys(layer).