Google Cloud 发布了 TPU Sync,这是一个开源 C++ 库,用于在 Cloud TPU 上迁移 KV 缓存和模型权重。Google TPU Sync KV 缓存传输库将 TPU HBM、主机 DRAM、共享存储和数据中心网络视为一个内存层级。它针对的是一个日益增长的瓶颈:迁移模型状态,而非计算模型状态。Google 报告称,在 235B 到 480B 参数的 MoE 模型上,KV 传输延迟降低了 90% 以上。

TL;DR

库:原生 C++ 核心,提供面向 PyTorch 和 JAX 的 Python wheel。已在 235B 到 480B 的 MoE 模型上测试。

运行于:根据 README,支持 Cloud TPU v7x(Ironwood)和 v6e。基准测试使用了 TPU v7x(2x2x1)、PCIe Gen5 和 200 Gbps 网卡。

性能:在 Google 内部实验室测试中,大幅降低了 KV 传输延迟和首 token 延迟(TTFT)。

最佳:平均 TTFT 最高降低 90%(480B P/D 服务在低并发下,以及 64K 上下文前缀缓存)。

最差:未公布 RL 数据。README 称目前尚不推荐用于一般用途。

结论:最佳:Qwen3 235B 的 KV 传输从数秒降至约 230 ms。最差:所有数字均为自报,且处于早期阶段。

什么是 TPU Sync?

TPU Sync 是 Google 推出的一个开源 C++ 库,通过异步 DMA 在内存层级之间迁移 TPU 分块张量。它处理 2 项任务:推理期间的 KV 缓存状态,以及强化学习(RL)中从训练器到采样器的权重广播。该仓库采用 Apache-2.0 许可证。

TPU Sync 如何工作?

该库覆盖 TPU HBM、固定主机 DRAM、共享存储和多主机 DCN。存储使用实验性 POSIX 后端,包括本地 SSD 和 Google Cloud Managed Lustre。Google 列出了 4 项设计选择:

保持布局的直接 DMA:它就地读取 JAX PJRT 缓冲区或 PyTorch 张量。数据保持其原生 TPU 分块布局,无需 Python 序列化或 bounce buffer。

计算重叠传输:原始 PJRT 缓冲区别名允许传输在计算期间运行。内置 DMA 节流可防止大块复制延迟内核启动。

数据路径中无 XLA 编译:传输和重新分片在 XLA 图之外的 native C++ 中运行。

高带宽 PCIe 与 DCN:每台 Ironwood 主机可达 223 GB/s,而 PCIe Gen5 的上限为 256 GB/s。DCN 流式传输在单张网卡上达到约 192 Gbps,双网卡合计约 350 Gbps。

在此之上是用于前缀查找的全局 KV 存储、传输控制器和 KV 缓存管理器。

分离式 prefill/decode 服务如何使用它?

prefill 节点通过异步 DMA 将 KV 块卸载到固定的主机 RAM。控制器将它们从主机流式传输到指定的 decode 节点。到达的块在解码继续进行的同时移入 decode 节点的 HBM。

TPU Sync 基准测试显示了什么?

Google 于 2026 年 7 月在 TPU v7x(2x2x1)上进行了内部测试。技术栈为 tpu-inference v0.24.0、JAX 0.10.2 和 libtpu 0.0.42.1。Google 团队表示实际结果会有所不同。

对于 P/D 分离式服务:

KV 传输开销下降超过 90%。Qwen3 235B 的 KV 传输延迟中位数从数秒降至约 230 ms。

在低并发下,235B 的平均 TTFT 下降 60%,480B 下降 90%。

在流量高峰期间,235B 的 token 输出吞吐量提升 30% 至 70%。

对于前缀缓存:

当 MoE 权重占据大部分 HBM 时,有效缓存容量提升了一个数量级。

在 64K 上下文工作负载上,平均 TTFT 下降最多 90%。

吞吐量提升超过 50%,P99 的 token 间延迟下降 30%。

TPU Sync 支持哪些框架?

TPU Sync 通过 TorchTPU 与 PyTorch 集成,并原生支持 JAX。在 vLLM-TorchTPU 中,它是 vLLM 的 KVConnector 接口背后的 TPU KV 连接器。在 SGLang-TorchTPU 中,它是 P/D 传输后端和分层缓存 I/O 后端。在 GKE 上,llm-d 1.0 将其用于前缀缓存亲和性路由以及向 Managed Lustre 的实验性溢出。Inferact 和 RadixArk 共同参与了 vLLM 和 SGLang 集成的工程开发。Google 表示 Meta 和 Wayfair 正在评估该架构。

TPU Sync 与 GPU 侧的替代方案相比如何?

特性Google TPU SyncNVIDIA Dynamo KVBM + NIXLLMCacheMooncake目标硬件Cloud TPU v7x、v6e(README)NVIDIA CUDA GPU;NIXL 中部分支持 ROCm(NIXL)CUDA 和 ROCm(repo)CUDA、HIP、Ascend、MUSA 等(repo)内存层级HBM、固定主机 DRAM、POSIX 存储(实验性)、DCNGPU、CPU、本地 SSD、远程存储(KVBM 文档)GPU、CPU DRAM、本地磁盘、远程后端DRAM 和 SSD/NVMe(Mooncake Store)网络传输DCN、多网卡条带化UCX、LIBFABRIC、GDS 插件NVLink、RDMA、TCPTCP、RDMA、EFA、NVMe-oF、NVLink、CXL引擎集成vLLM-TorchTPU、SGLang-TorchTPU、llm-d、JAXvLLM、TensorRT-LLM、SGLang(KVBM)vLLM、NVIDIA DynamovLLM、SGLang许可证Apache-2.0Apache 2.0(部分 wheel 模块为 NVIDIA 专有)Apache 2.0Apache-2.0核心语言C++ 及 Python 绑定C++ 及 Python 和 Rust 绑定含 C/C++ 和 Rust 代码的 Python 包未披露标称带宽每 v7x 主机最高 223 GB/s(PCIe D2H/H2D)未披露未披露在 8×400 Gbps RoCE(网络)上最高 190 GB/sRL 权重传输是(实验性)未披露未披露是,通过 SGLang(RDMA)

这些带宽数字衡量的是不同路径。TPU Sync 的数字是主机 PCIe DMA。Mooncake 的数字是 RoCE 上的网络传输。

要点

TPU Sync 是 Google 的 Apache-2.0 C++ 库,用于在 TPU 上移动 KV 缓存和权重。

它通过直接的、保持布局的 DMA,每台 Ironwood 主机最高可达 223 GB/s。

在 Google 的测试中,Qwen3 235B 的 KV 传输从数秒降至约 230 ms。

它可接入 GKE 上的 vLLM-TorchTPU、SGLang-TorchTPU 和 llm-d。

RL 和存储分层仍为实验性,且所有数字均为自报。

查看技术博客、GitHub 仓库、vLLM-TorchTPU 和 SGLang-TorchTPU。另外,欢迎在 Twitter 上关注我们,别忘了加入我们 150k+ 的 ML SubReddit 并订阅我们的 Newsletter。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们。

需要与我们合作推广你的 GitHub Repo 或 Hugging Face Page 或产品发布或网络研讨会等?联系我们

文章 Google Releases TPU Sync: Open-Source KV Cache Transfer for TPUs 首发于 MarkTechPost。