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 は計算済みの仕事にサイクルを使い、最初のトークンも長く待ちます。

今ある各層には限界があります。ホストメモリの容量は有限です。ノードローカル SSD は一台のマシンにしか仕えず、ノード間で共有しにくい。共有ストレージは永続性と容量のためにあり、推論のホットパス上にはありません。

方針

適合するブロックを再利用し、ミスなら再計算。

BlueField-3、GDS、実際の RDMA は開発目標であり、NOT_RUN_HARDWARE です。現在の経路はホストコピーを伴い、ゼロコピーや CPU の迂回を主張しません。

  1. 01

    現在動く経路

    CPU/TCP、メモリ、通常ファイルのバックエンドをソースで利用できます。GPU や DPU は不要です。

  2. 02

    単一ノードと複数シャード

    有界の経路、接続、epoch フェンシングで運用者管理のシャードを支えます。

  3. 03

    障害時は再計算

    G3.5 は消失訂正符号や永続性のためのレプリカを追加しません。転送完了が不明なら隔離を維持し、明示的なドレインまたは新しいフェンスで再利用を許可します。コールドデータの永続性は RustFS が担います。これはキャッシュ契約であり、災害復旧や大規模運用の検証ではありません。

向かない用途

  • 永続して残すデータ。G3.5 はキャッシュです。永続データは G4 の RustFS に置きます。
  • 学習のチェックポイント保管。それは G4 の仕事です。
  • 本番導入はまだ検証していません。

アーキテクチャ

現在は CPU/TCP。実機の目標は別に検証。

GPUCache は G3.5 の共有 KV ホット層です。現在の実装はホストメモリと TCP を使います。RustFS はホットリクエスト経路から独立した G4 オブジェクト層です。

  1. ホストクライアント
  2. TCP
  3. G3.5 シャードRust
  4. CPU
  5. ホストメモリ/ファイル

CPU 契約を実行可能

  1. 01

    現在動く経路

    CPU/TCP、メモリ、通常ファイルのバックエンドをソースで利用できます。GPU や DPU は不要です。

  2. 02

    再利用の前に識別情報を確認

    コミット済みで完全な識別情報が一致するブロックのみヒットします。ミスなら再計算します。

  3. 03

    単一ノードと複数シャード

    有界の経路、接続、epoch フェンシングで運用者管理のシャードを支えます。

  4. 04

    独立したコールド層

    RustFS はホット経路外の G4 です。コールド mock 契約をテストし、実際の RustFS は NOT_RUN_HARDWARE です。

  5. 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 フェンシング運用者が経路を管理。分散合意や実運用規模の認証は未実施。
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、SPDKNOT_RUN_HARDWARE。オプション機能は機器をリンクせず、オープンを拒否。

このロードマップの読み方

RUSTFS との関係

G3.5 は熱いものを置く。G4 は残すものを置く。

GPUCache は RustFS チームが作っています。ストレージ階層での分担は明確です。GPUCache は G3.5 のホット層で、GPU の近くにあり、再利用するためのものです。RustFS は G4 の容量層で、Rust で書いた S3 互換の分散オブジェクトストレージです。モデル、データセット、セッション履歴、推論の成果物を永続して保管します。

ホット層を失っても再計算できます。容量層のデータは失えません。二つの仕事を分けると、それぞれが単純になります。

クイックスタート 開発中

CPU 契約をビルドし、テストする。

main ブランチには、CPU/TCP による G3.5 共有 KV キャッシュの実行可能な Rust コードがあります。まずソフトウェア契約テストを実行してください。GPU や DPU は不要です。

ソースコードは利用できます。インストール可能なリリースや本番導入の検証はまだありません。

  1. 安定版 Rust と Cargo、Git、Python 3 を用意する。
  2. ソースを取得し、ワークスペースのテストを実行する。
  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 回帰コマンドと実機に関する制限があります。 ソースからビルドしてテスト

参加

G3.5 層を、一緒に作る。

GPUCache は、Rust のシステムプログラミング、RDMA/RoCEv2、NVIDIA DOCA と BlueField、ARM64 クロスコンパイル、そして vLLM と TensorRT-LLM の KV Cache の仕組みに詳しい人の参加を歓迎します。