从零实现 LLM Inference:067. 给 roseinfer 加 FlashAttention(Prefill 三选一:naive / flashinfer / flash-attn)
在 roseinfer 的 prefill attention 上引入可插拔后端:保留原始实现,同时支持官方 flash-attn 与 flashinfer;并复用 066 的 online/offline benchmark 做自对比、自动出图。
在 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 分配和重复查表。
prefix cache hit 后,多条 session 会共享同一批 KV blocks;第一次 decode 写入时如果 last block 还没写满,就会触发 COW:先 clone block 再 append token。原实现用 index_select/index_copy 搬整块 KV;这版加...