Devotd Github
新着推論・サービング

kindlingai/gr8 — GLM-5.3-Flash にコンテキスト並列 KV を追加

kindlingai/gr8 の最新コミットは GLM-5.3-Flash ビルドにコンテキスト並列 KV を追加し、KV キャッシュページを複数のランクに分割して保存するようにした。ただしまだ実験段階にとどまっている。

リポジトリ情報kindlingai/gr8 ↗

kindlingai/gr8 の最新コミットは GLM-5.3-Flash ビルドにコンテキスト並列 KV を追加し、KV キャッシュページを複数のランクに分割して保存するようにした。ただしまだ実験段階にとどまっている。

GitHub の説明: GLM-5.3 (full) on 3-6 DGX Sparks (GB10): a from-scratch CUDA inference engine

スター
★ 35
フォーク
9
言語
Cuda
ライセンス
MIT
原文を見る ↗GitHub で見る ↗

kindlingai/gr8 は GLM-5.3 のフルモデルを DGX Spark(GB10) 3〜6 台で動かすために最初から CUDA で書かれた推論エンジンである。2026 年 11 月 7 日のコミット e231adb("GLM-5.3-Flash: context-parallel KV (#384) (#414)")は、このエンジンの GLM-5.3-Flash ビルドにコンテキスト並列 KV(context-parallel KV)を追加した。31 個のファイルで 1,353 行が追加され、171 行が削除され、CUDA カーネルとランタイム、ドキュメントが同時に変更されている。

コンテキスト並列 KV は、KV キャッシュページ(64 行単位)を複数のランクに分割して保存し、各ランクが文脈全体を複製せずに一部だけを持つ方式である。Flash ビルドでは既定値が 0 なので EXTRA_ENV=GR8_CP=1 で有効化する必要があり、手前の R 個のトークン(GR8_CP_R)は 12 個の attention binding のすべてに複製され、その後のページは (pos / 64) % TP の規則でただ 1 つのランクに置かれる。R を超えるデコードは DSA レイヤーごとに五つの段階で進む。このランクが担当する行だけ 삽입하고、自分のプールだけを採点して行ごとに上位 512 個を残し、後から候補を all-gather して複製経路のリストとビット単位で同一になるように統合する。続いて吸収されたクエリを集め、head group ごとの部分 attention を計算し、ランク順に log-sum-exp で統合してから value projection を行う。FLASH.md は、リストとキャッシュバイトは複製経路と同じだが出力はビット単位では一致しないと記している。統合する 합의順序が異なるためである。

ただし機能はまだ実験段階にある。Flash ビルドでは CP binding に対する prefill は依然として拒否され、Flash prefill は R 未満では複製経路で動作する。m4sim は --prefill で R を超えるプロンプトを拒否する。MTP レイヤーは KV 全体をそのまま保持し、チェックポイントは各ランクが担当する 11 個の DSA レイヤーページのみを保存し、エントリ形式が 3 に上がり、旧形式(2)のエントリは破棄される。ドキュメントは、 Clustersでの測定結果がまだないことを明かしている。単一 GPU で複製経路と比較するテスト(engine/tests/test_flash_cp.cu)が追加されたが、複数ランクで動かした際のスループットと精度の差は記録されていない。Flash で長文脈をサーブするには、現時点では様子見が妥当のようです。