前缀缓存命中 50%,预填充为什么没有快 2 倍?
从因果注意力的三角计算量出发,逐层推导前缀缓存命中后的剩余注意力计算量、完整预填充的理想加速上限,以及它与真实 TTFT 之间的差距。
Engineering notes on SGLang, KV cache management, Mooncake Store, Transfer Engine, and related performance work. Articles are currently written in Chinese.
Choose a topic to follow, or open a runbook when you need a command reference.
A selection of in-depth code walkthroughs and systems notes.
从因果注意力的三角计算量出发,逐层推导前缀缓存命中后的剩余注意力计算量、完整预填充的理想加速上限,以及它与真实 TTFT 之间的差距。
从 Kimi Linear 的 KDA 状态出发,追踪 SGLang、vLLM 与 Mooncake Store 的混合缓存流程,并解释细粒度检查点、写时复制、部分分组命中与远端复用。
沿着一次 KV Cache 的写入与读回,说明 SGLang 如何根据缓存页标识生成 Mooncake Store 对象,以及主机端 KV 缓冲区为何是两套系统的数据交接点。
沿着前缀匹配、存储预取和主机内存到 GPU 的回载过程,梳理 HiCache 如何确认并提交一次缓存命中。
Every article, newest first.
Starting from an out-of-process HiCache L2 split, this design note follows TreeCore, ReqToTokenPool, the KV allocator, CUDA Graph, and the transfer path to refine the ownership boundary between logical cache control and GPU execution.
从因果注意力的三角计算量出发,逐层推导前缀缓存命中后的剩余注意力计算量、完整预填充的理想加速上限,以及它与真实 TTFT 之间的差距。
从 Kimi Linear 的 KDA 状态出发,追踪 SGLang、vLLM 与 Mooncake Store 的混合缓存流程,并解释细粒度检查点、写时复制、部分分组命中与远端复用。
沿着一次 KV Cache 的写入与读回,说明 SGLang 如何根据缓存页标识生成 Mooncake Store 对象,以及主机端 KV 缓冲区为何是两套系统的数据交接点。
沿着前缀匹配、存储预取和主机内存到 GPU 的回载过程,梳理 HiCache 如何确认并提交一次缓存命中。
沿着 GPU 到主机内存的备份和主机内存到外部存储的写入,说明 write_backup、PoolTransfer 与 batch_set 如何协作。
从 GPU KV 池、主机内存池、存储后端和基数树节点的状态变化出发,理解 HiCache L1/L2/L3 的整体结构。
从 config.json 中的 hidden_size、head_dim、KV 头数、sliding_window、kv_lora_rank、Indexer 和 KDA 状态出发,估算常见模型的注意力缓存大小。
梳理 MultiTransport 的安装与后端选择流程,说明 TCP、RDMA 和设备传输如何接入统一接口。
梳理 pybind11、张量与对象 API,以及 SGLang、vLLM 和 LMCache 接入 Mooncake 时各自负责的部分。
从内存段、内存注册、传输请求和批次编号出发,建立 Mooncake Transfer Engine 的数据搬运模型。
沿着副本状态机、元数据租约和本地热缓存的校验令牌,说明 Mooncake Store 如何维护读写可见性并防止旧写覆盖。
沿着 GetReplicaList、副本选择和本地热缓存,梳理一次 Store 读取如何从元数据查询进入数据传输。
沿着 PutStart、TransferSubmitter 和 PutEnd,梳理一次 Store 写入如何完成副本分配、数据搬运与可见性提交。
梳理对象、切片、副本、Segment,以及 Master 与 Client 的职责,作为理解 Mooncake Store 读写流程的入口。
从 SGLang HiCache、Mooncake Store 和 Transfer Engine 的职责边界出发,说明一段 KV 缓存如何成为可跨节点复用的系统资源。
梳理块表、物理块、写时复制和调度流程,说明 PagedAttention、HiCache 与 Mooncake 分别负责什么。
沿着一次服务 p99 抖动的排查过程,串起 CPU 执行与等待分析、perf、火焰图、假设验证和基准测试。
从 QKV、掩码和 KV 缓存出发,理解 Transformer 的模型结构为什么会影响推理服务的内存与调度设计。
kubectl 日常使用速查,涵盖 kubeconfig、常用查询与执行命令、资源发布、服务排查和输出格式。
命令行文本处理速查,涵盖搜索、批量执行、替换、列处理、JSON/YAML 查询和管道组合。
Docker 日常使用手册,涵盖镜像、容器、运行与日志命令、数据卷、网络、Compose 和常见故障排查。
借助 redis-benchmark、memtier_benchmark 和 sysbench,说明测试负载、预热、数据规模、p99、性能拐点和资源隔离为什么比平均值更重要。
Git 日常使用手册,涵盖 clone、branch、commit、diff、stash、rebase、cherry-pick、reflog 和团队协作。
pyenv 日常使用手册,涵盖安装配置、Python 版本切换,以及配合 venv 管理项目环境。
沿着 WAL 追加、内存表刷盘、版本清单更新、压缩结果安装和恢复流程,说明存储系统如何确认崩溃前的写入历史。
沿着一个键的写入与压缩过程,梳理 WAL、MemTable、SSTable、墓碑标记和写入停顿如何共同影响后台开销。
沿着监听中断、修订记录压缩、租约过期和选主隔离,说明协调服务为什么不能当作普通 KV 存储使用。
沿着旧主节点、网络分区、提案编号、任期、日志匹配和隔离令牌,说明一致性协议如何阻止过期节点继续写入。