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。