RUSTFS GPUCACHE · G3.5 开发中
G3.5 层的共享 KV 缓存。
GPUCache 是 G3.5 共享 KV 热层。当前实现使用主机内存和 TCP;RustFS 是更冷的 G4 对象层,不位于热请求路径中。
Rust · Apache 2.0 · CPU/TCP 源码已可运行
问题
上下文被逐出,GPU 就得重算。
长上下文、多轮对话和 Agent 让 KV Cache 越来越大,GPU 显存很快就装不下。被逐出的 KV 再被用到时,只能重新做一遍预填充:GPU 算的是已经算过的东西,首 token 也要多等一会儿。
现有的几层各有局限。主机内存容量有限;节点本地 SSD 只服务一台机器,难以在节点之间共享;共享存储是为持久性和容量设计的,不在推理热路径上。
方案
复用兼容块,未命中时重新计算。
BlueField-3、GDS 和真实 RDMA 仍在开发中,状态为 NOT_RUN_HARDWARE。当前路径包含主机拷贝,不宣称零拷贝或绕过 CPU。
- 01
当前可运行的路径
源码包含 CPU/TCP、内存和普通文件后端,无需 GPU 或 DPU。
- 02
单节点与多分片
有界路由、连接和 epoch fencing 支持由运维方管理的分片。
- 03
故障意味着重新计算
G3.5 不增加纠删码或持久性副本。传输完成状态未知时保持隔离,只有显式排空或更新的 fence 才能允许复用。冷数据持久性归 RustFS;这是缓存契约,不是灾备,也不是集群规模验证。
不适合的场景
- 需要持久保存的数据。G3.5 是缓存,持久数据放 G4 RustFS。
- 训练场景的 checkpoint 存储。那是 G4 的工作。
- 尚未完成生产部署验证。
架构
当前运行 CPU/TCP,硬件目标独立验证。
GPUCache 是 G3.5 共享 KV 热层。当前实现使用主机内存和 TCP;RustFS 是更冷的 G4 对象层,不位于热请求路径中。
- 主机客户端
- TCP
- G3.5 分片Rust
- CPU
- 主机内存/文件
CPU 契约已可运行
- 01
当前可运行的路径
源码包含 CPU/TCP、内存和普通文件后端,无需 GPU 或 DPU。
- 02
先验证身份,再复用
只有已提交且完整身份符合预期的块才能命中;未命中时重新计算。
- 03
单节点与多分片
有界路由、连接和 epoch fencing 支持由运维方管理的分片。
- 04
冷层独立运行
RustFS 是 G4,不进入热路径。冷层 mock 契约已有测试;真实 RustFS 为 NOT_RUN_HARDWARE。
- 05
DPU 目标
DPU/GDS/RDMA 仍为 NOT_RUN_HARDWARE。engine-spike 使用伪造块,aarch64 仅提供 CPU 证据。
BlueField-3、GDS 和真实 RDMA 仍在开发中,状态为 NOT_RUN_HARDWARE。当前路径包含主机拷贝,不宣称零拷贝或绕过 CPU。 当前可运行的路径
路线图
现在做到哪一步。
路线图区分可获取的源码、可复现的 CPU 契约与硬件验证,不承诺发布日期或实测集群容量。
| 状态 | 能力 | 边界 |
|---|---|---|
| CPU/TCP 已可运行 | 身份、生命周期、MemoryStore/FileStore、TCP ACL 与读取准入 | 使用合成数据测试;依赖可信网络边界,未实现 mTLS。 |
| CPU/TCP 已可运行 | 有界分片客户端、成员更新与 epoch fencing | 路由由运维方管理;没有分布式共识或集群规模认证。 |
| mock 契约已可运行 | G4 v3 清单、有界写入队列、回填与保留策略 | 真实 RustFS:NOT_RUN_HARDWARE;孤儿对象不自动回收。 |
| CPU 模拟已可运行 | DPU 消息、故障注入与 TCP 功能对照 | 没有设备卸载、零拷贝、吞吐或 TCO 实证。 |
| 伪造块实验已可运行 | EngineBlockContract 与 engine-spike | 真实 vLLM 导出/导入:NOT_RUN_HARDWARE;GPU/模型运行:NOT_RUN_BUDGET。 |
| 开发中 | 真实 RDMA、GDS、BlueField-3 / DOCA 与 SPDK | NOT_RUN_HARDWARE;可选特性不链接设备,并保持拒绝打开。 |
GPUCache 由 RustFS 团队打造。两者在存储分层里分工明确:GPUCache 是 G3.5 热层,追求离 GPU 近、可以复用;RustFS 是 G4 容量层,是用 Rust 编写的 S3 兼容分布式对象存储,负责模型、数据集、会话历史和推理产物的持久保存。
热层丢了可以重算,容量层的数据不能丢。两件事分开做,各自都更简单。
快速开始 开发中
构建、测试并检查 CPU 契约。
主分支已包含可运行的 Rust 代码,实现基于 CPU/TCP 的 G3.5 共享 KV 缓存。先运行软件契约测试,无需 GPU 或 DPU。
源码已可获取。目前没有可安装的发布版本,也未完成生产部署验证。
- 安装稳定版 Rust 与 Cargo、Git 和 Python 3。
- 克隆源码并运行工作区测试。
- 按完整快速开始运行演示与 CPU 回归。
git clone https://github.com/rustfs/GPUCache.git
cd GPUCache
cargo test --workspace --all-targets
cargo run -p gpucache-transport --bin share-demo
完整快速开始包含 CPU 回归命令和明确的硬件限制。 从源码构建和测试
文档
了解当前实现与验证边界。
架构、分层、状态、源码命令和扩展指南分别说明 CPU 契约与尚未验证的硬件目标。
参与
一起把 G3.5 层做出来。
GPUCache 欢迎熟悉 Rust 系统编程、RDMA/RoCEv2、NVIDIA DOCA 与 BlueField、ARM64 交叉编译,以及 vLLM、TensorRT-LLM KV Cache 机制的开发者参与。