Mission 1
TODO 1 / TODO 2
PagedAttention:逻辑连续,物理可以不连续
先补的知识
- KV Cache 会随序列长度增长。
- 直接连续分配容易产生显存碎片。
- PagedAttention 用固定大小 block 管理缓存。
图解原理
像操作系统分页:请求看到的是连续的 token 序列,底层实际由一块块物理页拼起来。
逻辑 token 0-3block 7逻辑 token 4-7block 2
语法热身:向上取整算 block 数
needed = (seq_len + block_size - 1) // block_size
for _ in range(needed):
block_id = free_blocks.pop(0)
block_table.append(block_id)闯关题
seq_len=17,block_size=8,需要多少个 block?
回到 notebook 的作业
这里不直接写答案。你已经拿到足够输入,最后用 notebook 的 TODO 做举一反三。