[mem_cache] Move req_pool_idx into ReqKvInfo (#37094)
This commit is contained in:
@@ -292,7 +292,7 @@ class ReqToTokenPool:
|
||||
def alloc(self, reqs: list[Req]) -> Optional[List[int]]:
|
||||
# Indices of reqs that already have a req_pool_idx and will reuse
|
||||
# their existing slot (e.g. chunked prefill continuing across chunks).
|
||||
reusing = [i for i, r in enumerate(reqs) if r.req_pool_idx is not None]
|
||||
reusing = [i for i, r in enumerate(reqs) if r.kv.req_pool_idx is not None]
|
||||
# NOTE: this check is relaxed temporarily
|
||||
# https://github.com/sgl-project/sglang/pull/20476
|
||||
# if not any(r.is_dllm() for r in reqs):
|
||||
@@ -309,10 +309,10 @@ class ReqToTokenPool:
|
||||
return None
|
||||
offset = 0
|
||||
for r in reqs:
|
||||
if r.req_pool_idx is None:
|
||||
r.req_pool_idx = select_index[offset]
|
||||
if r.kv.req_pool_idx is None:
|
||||
r.kv.req_pool_idx = select_index[offset]
|
||||
offset += 1
|
||||
return [r.req_pool_idx for r in reqs]
|
||||
return [r.kv.req_pool_idx for r in reqs]
|
||||
|
||||
def alloc_rows(self, need_size: int) -> Optional[List[int]]:
|
||||
"""Take need_size rows and bump their generation, with no Req bound to
|
||||
@@ -338,9 +338,9 @@ class ReqToTokenPool:
|
||||
self.free_slots.extend(indices)
|
||||
|
||||
def free(self, req: Req):
|
||||
assert req.req_pool_idx is not None, "request must have req_pool_idx"
|
||||
self.free_rows([req.req_pool_idx])
|
||||
req.req_pool_idx = None
|
||||
assert req.kv.req_pool_idx is not None, "request must have req_pool_idx"
|
||||
self.free_rows([req.kv.req_pool_idx])
|
||||
req.kv.req_pool_idx = None
|
||||
|
||||
def clear(self):
|
||||
self.free_slots = list(range(1, self._alloc_size))
|
||||
@@ -1493,7 +1493,7 @@ class HybridReqToTokenPool(ReqToTokenPool):
|
||||
set_mamba_track_indices_from_reqs reads correct slot indices.
|
||||
"""
|
||||
req.mamba_ping_pong_track_buffer[idx] = value
|
||||
self.req_index_to_mamba_ping_pong_track_buffer_mapping[req.req_pool_idx] = (
|
||||
self.req_index_to_mamba_ping_pong_track_buffer_mapping[req.kv.req_pool_idx] = (
|
||||
req.mamba_ping_pong_track_buffer
|
||||
)
|
||||
|
||||
@@ -1530,7 +1530,9 @@ class HybridReqToTokenPool(ReqToTokenPool):
|
||||
|
||||
if self.enable_mamba_extra_buffer:
|
||||
mamba_ping_pong_track_buffer_to_free = (
|
||||
self.req_index_to_mamba_ping_pong_track_buffer_mapping[req.req_pool_idx]
|
||||
self.req_index_to_mamba_ping_pong_track_buffer_mapping[
|
||||
req.kv.req_pool_idx
|
||||
]
|
||||
)
|
||||
if mamba_ping_pong_track_buffer_to_keep is not None:
|
||||
assert mamba_ping_pong_track_buffer_to_keep in [
|
||||
|
||||
Reference in New Issue
Block a user