異種バックエンド間の数値的等価性
CUDA、ROCm、Adreno、CPU がビット単位で一致することは決してない。それでもスウォームが一つの整合したモデルを生むのは、運ではなく設計された性質だ。
厳密(exact)vs 等価(equivalent)——異なる二つの性質
- 同一バックエンド内 — 厳密(3.6e-12):エキスパートをノードに分割して結合するのは同じ加重和の再グループ化で、違いは浮動小数点の累積順序のみ。オラクルで検証済み。
- バックエンド間 — 等価(1e-3…1e-6):同じ演算でもハードウェアが違えば演算ごとに約 1e-3–1e-6 の相対誤差を伴い、決してゼロにならない。スウォームはこの領域に生きている。
「厳密」は一台のデバイス内で分解が保証するもの。「等価」は異種ハードウェアが与えるもの。スウォームの仕事は、等価性が発散へ積み上がらないようにすることだ。
理論ではない——ハードウェアで測定
同一の Qwen3.5-122B layer-0 エキスパート FFN を、linkcpp-expert-worker が MI250(ROCm)、スマートフォンの ARM CPU(SM-S938N)、x86 の numpy リファレンスで計算——同じ入力、同じ重み、異なる命令セットと縮約順序:

| バックエンド対 | max|Δ| | cosine |
|---|---|---|
| ROCm (GPU) vs numpy (x86) | 7.9e-7 | 0.99996 |
| スマホ ARM CPU vs numpy (x86) | 1.4e-6 | 0.99992 |
| ROCm GPU vs スマホ ARM CPU | 1.5e-6 | 0.99990 |
三つの命令セット、一つの計算——どの対も等価(cosine ≈ 0.9999)、どの対もビット同一ではない(Δ ≈ 1e-6)。残差が小さいのはルーター権威が入力とエキスパート選択を固定したからだ。
その後、実物の NVIDIA GB10 Grace Blackwell ハードウェアでの実行が最後のバックエンドで行列を閉じた:CUDA ↔ ROCm は cosine 1.0000000000(max abs 3.5e-10、二つの GPU バックエンドがカーネルソースを共有するため事実上ビット同一)、CUDA ↔ Grace ARM CPU は cosine 0.99975——上で見た GPU↔CPU と同じパターンだ。
浮動小数点加算に結合則はない
- matmul の縮約順序 — tensor core、MFMA タイル、OpenCL ワークグループ、SIMD レーンがそれぞれ異なる順序・タイリングで累積。
- FMA 融合 —
a*b+cを 1 回丸め(FMA)か 2 回か、バックエンドごとに融合が異なる。 - 累積精度 — F16/BF16 格納に F32 か F16 のアキュムレータ(発散幅への最大のレバー)。
- 超越関数近似 — exp(softmax)・silu/sigmoid(swiglu)・rsqrt(norm)の多項式/テーブル変種の違い。
- 逆量子化 + matmul 経路 — 逆量子化してから乗算 vs 融合量子化カーネルで、中間の丸めが異なる。
- 非決定的カーネル — atomic/split-K 縮約は同一デバイスでも実行ごとに変わりうる。
これらはバグではない。各アクセラレータの高速経路が払う代償だ。
決定は単一の権威に、累積は十分な精度で
ルーター権威——中核の不変条件。ネットワーク内で唯一の離散的決定は MoE ルーティング(256 中 top-8)だ。各バックエンドがルーターを再実行すれば、境界トークンで異なるエキスパートが選ばれ、本物の発散が生じる。Kvasir はルーターをバックボーンで一度だけ実行し、ワーカーには選ばれたエキスパート id だけを送る → 異種スウォームは各エキスパート出力の*大きさ*が僅かに違うだけで、*どのエキスパートが動くか*は決して割れない。壊滅的な離散発散を有界の連続誤差へ変える、異種エキスパートシャーディングの整合性規則である。
- 離散 argmax:デコードはロジットに対する argmax だ。1e-3 の揺らぎがトークンを反転させるのは、二候補がその範囲まで接近しているときだけ——ほとんどの位置でマージンははるかに大きく、トークンは同一に出る。稀な反転は、別のシードと区別できないほど曖昧な位置に限られる。
- combine は加算:部分結果は確率加重の和で結合される。独立した約 1e-4 の誤差は非干渉的に加わり——k 倍でなく √k で育ち——大きな値の相殺(cancellation)がないため残差は良条件のまま保たれる。
発散モードと防御
| 発散モード | メカニズム | 規則 |
|---|---|---|
| ルーティング不一致 | 境界トークンの top-8 をバックエンドごとに違えて選ぶ | ルーター権威——バックボーンで一度決定、id をディスパッチ |
| 軌跡の分岐 | トークンごとのロジット揺らぎがやがてトークンを反転させ、以後のシーケンスが新しいシードのように割れる | デコード/サンプリングを一つのノードに固定 |
| 深さ累積 | 49 層 × 各約 1e-4 → 最終ロジットで最大 1e-2 | 境界と combine で F32 累積 |
| 自己非決定性 | atomic/split-K が実行ごとに変わる | combine は決定的カーネル、検証は許容誤差で |
| 精度不一致 | 一方は F16 累積、他方は F32 | 累積精度を capability として公示、出力ランクは F32 ノード優先 |
測定プロトコル
- 演算ごとのデルタ — 同じ入力で A vs B の matmul・swiglu・softmax・norm 相対誤差。
- レイヤー境界ドリフト — 一層通過後の residual デルタを積み上げ、深さ累積が √L か L かを見る。
- エンドツーエンドのロジット発散 — 全フォワードの L∞・L2・KL ダイバージェンス。
- 決定一致率 — top-1 トークン一致率と top-8 ルーティング一致率(ルーター権威の必要性の検証)。
- 生成安定性 — greedy N トークンで A と B が最初に分岐するインデックス。
- タスクレベル — perplexity・評価スコアのデルタ:ユーザーが実際に感じる唯一の指標。
合格は許容誤差だ——「top-1 一致率 ≥ 99.x%、KL ≤ ε」。許容誤差を外れたノードは敏感なランクに不適とマークされるだけで、丸ごと拒否はされない。
ビット一致は不可能で、不要でもある
同種クラスタはビット厳密を仮定できるが、スウォームはできない——前提が*来るハードウェアをそのまま使う*だからだ。だから Kvasir は数値等価性をプロトコル互換性とまったく同じ一級の、測定される契約として扱う:バックエンドと累積精度をノード capability として公示し、ルーター権威を不変条件として強制し、すべての検証をビット一致でなく許容誤差で行う。測定された数値等価性 + 単一権威の離散的決定——それが地球上のあらゆる GPU で一つのモデルを同時に走らせるものであり、すなわちスウォームである。