前缀缓存命中 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.
从因果注意力的三角计算量出发,逐层推导前缀缓存命中后的剩余注意力计算量、完整预填充的理想加速上限,以及它与真实 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 存储使用。
沿着旧主节点、网络分区、提案编号、任期、日志匹配和隔离令牌,说明一致性协议如何阻止过期节点继续写入。