<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>KV Cache on Hellokitty&#39;s Blog</title>
    <link>https://yangyang233333.github.io/tags/kv-cache/</link>
    <description>Recent content in KV Cache on Hellokitty&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 28 Aug 2026 17:30:00 +0800</lastBuildDate>
    <atom:link href="https://yangyang233333.github.io/tags/kv-cache/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SAC：面向稀疏注意力大模型的 CXL 解耦 KV Cache 系统</title>
      <link>https://yangyang233333.github.io/posts/sac-cxl-sparse-attention/</link>
      <pubDate>Fri, 28 Aug 2026 17:30:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/sac-cxl-sparse-attention/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;本文翻译并整理自论文 &lt;strong&gt;SAC: Disaggregated KV Cache System for Sparse Attention LLMs with CXL&lt;/strong&gt;（arXiv:2606.19746v1，2026 年 6 月 18 日）。原论文采用 CC BY 4.0 许可。为适应博客阅读，本文省略参考文献列表中的完整出版信息，但保留正文结构、关键论证、实验结果与附录要点。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;随着大模型进入长上下文与稀疏注意力时代，推理系统的主要瓶颈正从算力转向内存容量。传统 RDMA 解耦 KV Cache 系统会在解码前把完整前缀 KV Cache 搬回本地；但稀疏注意力每一步只访问少量 top-k 条目，这种“全量搬运、少量使用”的方式会同时浪费网络带宽和本地内存。&lt;/p&gt;
&lt;p&gt;SAC 的核心思路是：使用 CXL 的低延迟、缓存行粒度 load/store 语义，把 KV Cache 留在解耦内存池中，只在计算时按需读取被选中的 top-k 条目。论文在 DeepSeek-V3.2 与 SGLang 上的实验显示，相比 RDMA 基线，SAC 可实现最高约 &lt;strong&gt;2.1 倍吞吐量、9.7 倍更低的 TTFT，以及 1.8 倍更低的 TBT&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;摘要&#34;&gt;摘要&lt;/h2&gt;
&lt;p&gt;大模型向长上下文推理扩展，使服务系统的主要瓶颈从计算能力转向内存容量。面向稠密注意力模型的传统方案通常采用基于 RDMA 的解耦内存池，在解码开始前，以粗粒度方式将整个前缀 KV Cache 从远端存储取回本地内存。&lt;/p&gt;
&lt;p&gt;然而，这种方法并不适合新兴的稀疏注意力模型。解码过程中虽然只有很少一部分 KV 条目真正活跃，系统仍然要把完整 KV Cache 拉回本地，从而造成严重的传输瓶颈和本地内存浪费。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NVIDIA Dynamo 源码阅读（三）：KV-aware Router 如何选择 Worker</title>
      <link>https://yangyang233333.github.io/posts/nvidia-dynamo-kv-aware-router-source-reading/</link>
      <pubDate>Wed, 26 Aug 2026 13:50:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/nvidia-dynamo-kv-aware-router-source-reading/</guid>
      <description>从 token 分块哈希、KV 事件、Radix Tree、负载估计和选择策略出发，拆解 Dynamo KV-aware Router。</description>
    </item>
    <item>
      <title>Mini-SGLang 源码阅读（三）：Paged KV Cache 与 Radix Prefix Cache</title>
      <link>https://yangyang233333.github.io/posts/mini-sglang-source-reading-kv-cache/</link>
      <pubDate>Tue, 25 Aug 2026 20:50:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/mini-sglang-source-reading-kv-cache/</guid>
      <description>从自回归推理的 KV Cache 成本出发，分析 Mini-SGLang 的物理页池、请求页表、前缀匹配与缓存驱逐。</description>
    </item>
    <item>
      <title>vLLM 与 Mooncake 对接源码解读：Prefill/Decode 分离中的 KV Cache 如何跨节点传输</title>
      <link>https://yangyang233333.github.io/posts/vllm-mooncake-integration/</link>
      <pubDate>Mon, 24 Aug 2026 16:58:43 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/vllm-mooncake-integration/</guid>
      <description>深入分析 vLLM 内置 MooncakeConnector：从代理拆分请求、Scheduler 元数据、GPU KV Cache 注册，到 Mooncake Transfer Engine 通过 RDMA 将 Prefill KV 直接搬到 Decode 节点。</description>
    </item>
    <item>
      <title>Mooncake Store 源码阅读（三）：Get、副本选择与淘汰回收</title>
      <link>https://yangyang233333.github.io/posts/mooncake-store-source-reading-get-eviction/</link>
      <pubDate>Mon, 24 Aug 2026 10:30:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/mooncake-store-source-reading-get-eviction/</guid>
      <description>从 GetReplicaList、Replica 状态和批量 Eviction 分析 Mooncake Store 的读取与空间回收。</description>
    </item>
    <item>
      <title>Mooncake Store 源码阅读（二）：Put 写入链路与对象原子性</title>
      <link>https://yangyang233333.github.io/posts/mooncake-store-source-reading-put-path/</link>
      <pubDate>Mon, 24 Aug 2026 10:20:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/mooncake-store-source-reading-put-path/</guid>
      <description>沿 RealClient、PutStart、Transfer Engine 和 PutEnd 阅读 Mooncake Store 的完整写入链路。</description>
    </item>
    <item>
      <title>Mooncake Store 源码阅读（一）：从对象存储接口到控制面与数据面</title>
      <link>https://yangyang233333.github.io/posts/mooncake-store-source-reading-architecture/</link>
      <pubDate>Mon, 24 Aug 2026 10:10:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/mooncake-store-source-reading-architecture/</guid>
      <description>从源码目录、进程角色和一次请求的路径入手，解释 Mooncake Store 如何把元数据控制与大对象传输分离。</description>
    </item>
    <item>
      <title>Mooncake Transfer Engine 源码阅读（一）：统一传输 API 与整体架构</title>
      <link>https://yangyang233333.github.io/posts/mooncake-transfer-engine-source-reading-architecture/</link>
      <pubDate>Fri, 21 Aug 2026 11:15:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/mooncake-transfer-engine-source-reading-architecture/</guid>
      <description>&lt;p&gt;Mooncake Transfer Engine（简称 TE）是 Mooncake 数据平面的基础组件。它不负责决定 KV Cache 应该放在哪里，而是提供统一接口，把一段本地内存搬到远端 Segment，或者从远端 Segment 读取到本地内存。&lt;/p&gt;
&lt;p&gt;本文基于 Mooncake 官方仓库：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit: 777cc7782417b6e554cf7c2d53210d0d8f89f5cc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit date: 2026-08-21
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当前仓库同时保留经典 Transfer Engine 和下一代 TENT。前三篇先阅读经典实现，第四篇再分析 TENT 如何重构控制面、调度和传输后端。&lt;/p&gt;
&lt;h2 id=&#34;一源码布局&#34;&gt;一、源码布局&lt;/h2&gt;
&lt;p&gt;核心目录为 &lt;code&gt;mooncake-transfer-engine/&lt;/code&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;路径&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;include/transfer_engine.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;对外 C++ API&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;include/transfer_engine_impl.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;经典实现内部接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;include/transport/transport.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Transport 抽象、请求和状态&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;include/transfer_metadata.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Segment、Buffer 与元数据接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;src/transfer_engine.cpp&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;公共 API 转发层，同时兼容经典 TE 与 TENT&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;src/transfer_engine_impl.cpp&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;初始化、内存注册、Segment 与批次管理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;src/multi_transport.cpp&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;安装和选择具体 Transport&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;src/transport/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;RDMA、TCP、NVLink、NVMe-oF、EFA 等后端&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;tent/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Transfer Engine Next 实现&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;TE 的经典架构可以概括为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;应用 / Mooncake Store
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        │
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TransferEngine
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        │
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TransferEngineImpl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   ┌────┼──────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   ▼    ▼              ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Metadata  MultiTransport  Batch 生命周期
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          │
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   ┌──────┼───────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   ▼      ▼       ▼       ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  RDMA   TCP    NVLink   NVMe-oF ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;二公共-api-是一层门面&#34;&gt;二、公共 API 是一层门面&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;TransferEngine&lt;/code&gt; 类本身很薄，大多数函数转发给 &lt;code&gt;TransferEngineImpl&lt;/code&gt;：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
