从零实现 LLM Inference:068. Chunked Prefill(给 roseinfer 加增量 Prompt Ingestion)
实现业界常见的 chunked prefill:把长 prompt 按 chunk 增量写入 paged KV cache,并与 decode 交错调度;提供可选开关与 online/offline benchmark,对比 chunked on/off 的延迟与吞吐。
实现业界常见的 chunked prefill:把长 prompt 按 chunk 增量写入 paged KV cache,并与 decode 交错调度;提供可选开关与 online/offline benchmark,对比 chunked on/off 的延迟与吞吐。
在 roseinfer 的 prefill attention 上引入可插拔后端:保留原始实现,同时支持官方 flash-attn 与 flashinfer;并复用 066 的 online/offline benchmark 做自对比、自动出图。
给 roseinfer 加一套可回归的 benchmark:同一套 trace / 参数,分别启动 roseinfer/vLLM/SGLang 的 OpenAI server 压测在线延迟(TTFT/TPOT/ITL/E2E),再做 offline throughput 对比,并自动生成论文风格图表。
KVBlockManager 的 block 元数据原来用 dict 做 global_id -> info/refcount 映射,decode 热路径会频繁查表。这里把两张表改成定长 list(按 global_id 直接索引),减少 Python dict 开销。
KV append 的热路径里,每层每 token 都要更新一次 block length。之前用 NamedTuple 需要不断创建新对象并回写 dict;这版改成 slots dataclass,length 原地自增,减少 Python 分配和重复查表。