Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion lightllm/common/kv_cache_mem_manager/qwen3next_mem_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,17 @@ def _free_linear_att_buffers(self):
def write_to_shm(self, req_manager):
self.req_to_conv_state = req_manager.req_to_conv_state
self.req_to_ssm_state = req_manager.req_to_ssm_state
return super().write_to_shm(req_manager)
# super().write_to_shm() 会用 ForkingPickler 序列化本对象,torch 在 dump 时会把
# CPU tensor 的 storage 原地迁到共享内存,使本进程大页 state cache 原本
# pinned(cudaHostAlloc) 的内存退化为普通 shm mmap,之后 Triton kernel 携带该指针
# 启动会报 "Pointer argument cannot be accessed from Triton (cpu tensor?)"。
# 跨进程消费方并不使用 cpu 侧大页 state cache,序列化期间临时剔除以保住 pinned。
big_page_buffers = self.linear_att_big_page_buffers
self.linear_att_big_page_buffers = None
try:
return super().write_to_shm(req_manager)
finally:
self.linear_att_big_page_buffers = big_page_buffers

def alloc_paged_kv_move_buffer(self, page_num, page_size) -> torch.Tensor:
kv_move_buffer = super().alloc_paged_kv_move_buffer(page_num, page_size)
Expand Down
Loading