Numerische Äquivalenz über heterogene Backends

CUDA, ROCm, Adreno und CPUs werden nie bitgenau übereinstimmen. Dass der Schwarm dennoch ein kohärentes Modell liefert, ist eine entworfene Eigenschaft, kein Glück.

Die Schlüsselunterscheidung

Exakt vs. äquivalent — zwei verschiedene Eigenschaften

  • Innerhalb eines Backends — exakt (3.6e-12): Experten über Knoten zu verteilen und zu kombinieren ist dieselbe gewichtete Summe, nur umgruppiert; der einzige Unterschied ist die Gleitkomma-Akkumulationsreihenfolge. Orakelverifiziert.
  • Zwischen Backends — äquivalent (1e-3…1e-6): dieselbe Operation auf anderer Hardware trägt einen relativen Fehler pro Op von ~1e-3–1e-6 und ist nie null. In diesem Regime lebt der Schwarm.

„Exakt" garantiert die Zerlegung innerhalb eines Geräts. „Äquivalent" gibt einem heterogene Hardware. Die Aufgabe des Schwarms ist, zu verhindern, dass sich Äquivalenz zu Divergenz aufschaukelt.

Gemessen · echter 122B, drei Backends

Keine Theorie — auf Hardware gemessen

Dieselbe Layer-0-Experten-FFN von Qwen3.5-122B, berechnet von linkcpp-expert-worker auf einem MI250 (ROCm), der ARM-CPU eines Smartphones (SM-S938N) und einer x86-numpy-Referenz — gleiche Eingaben, gleiche Gewichte, andere Befehlssätze und Reduktionsreihenfolgen:

Three backends feeding one comparator where their waveforms overlap within tolerance
Backend-Paarmax|Δ|cosine
ROCm (GPU) vs numpy (x86)7.9e-70.99996
Smartphone-ARM-CPU vs numpy (x86)1.4e-60.99992
ROCm-GPU vs Smartphone-ARM-CPU1.5e-60.99990

Drei Befehlssätze, eine Berechnung — jedes Paar äquivalent (cosine ≈ 0.9999), kein Paar bitidentisch (Δ ≈ 1e-6). Die Residuen sind klein, weil die Router-Autorität Eingaben und Expertenauswahl festgenagelt hat.

Ein späterer Lauf auf echter NVIDIA GB10 Grace Blackwell-Hardware schloss die Matrix auf dem letzten Backend: CUDA ↔ ROCm landete bei cosine 1.0000000000 (max abs 3.5e-10, praktisch bitidentisch, da beide GPU-Backends Kernel-Quellen teilen), und CUDA ↔ Grace ARM CPU bei cosine 0.99975 — dasselbe GPU↔CPU-Muster wie oben.

Warum Backends abweichen

Gleitkomma-Addition ist nicht assoziativ

  • Matmul-Reduktionsreihenfolge — Tensor-Cores, MFMA-Kacheln, OpenCL-Workgroups und SIMD-Lanes akkumulieren in verschiedenen Reihenfolgen und Kachelungen.
  • FMA-Fusion — a*b+c einmal (FMA) oder zweimal gerundet, je Backend anders fusioniert.
  • Akkumulationspräzision — F16/BF16-Speicherung mit F32- vs. F16-Akkumulatoren (der größte Hebel der Divergenz).
  • Transzendente Näherungen — Polynom-/Tabellenvarianten von exp (Softmax), silu/sigmoid (SwiGLU), rsqrt (Norms).
  • Dequant + Matmul-Pfad — dequantisieren-dann-multiplizieren vs. fusionierte quantisierte Kernel runden Zwischenwerte anders.
  • Nichtdeterministische Kernel — atomic/split-K-Reduktionen können auf demselben Gerät von Lauf zu Lauf variieren.

Nichts davon ist ein Bug. Es ist der Preis, den der schnelle Pfad jedes Beschleunigers zahlt.

Warum es trotzdem funktioniert

Eine Autorität für Entscheidungen, genug Präzision fürs Akkumulieren

ROUTER-AUTORITÄT — die zentrale Invariante. Die einzige diskrete Entscheidung im Netzwerk ist das MoE-Routing (Top-8 von 256). Würde jedes Backend den Router neu ausführen, wählten Grenz-Token verschiedene Experten und würden wirklich divergieren. Kvasir führt den Router einmal, auf dem Backbone aus und schickt den Workern nur die ausgewählten Experten-IDs. Ein heterogener Schwarm mag sich in der *Größe* der Ausgabe jedes Experten unterscheiden — nie darin, *welche Experten laufen*. Das verwandelt katastrophale diskrete Divergenz in beschränkten kontinuierlichen Fehler und ist die Kohärenzregel des heterogenen Experten-Shardings.

  • Diskretes Argmax: Dekodieren ist ein Argmax über Logits. Ein 1e-3-Wackeln kippt einen Token nur, wenn zwei Kandidaten näher als 1e-3 liegen — an den meisten Positionen ist die Marge weit größer, also kommen die Tokens identisch heraus; die seltenen Kipper sind Positionen, so mehrdeutig wie ein anderer Seed.
  • Combine ist Addition: Teilergebnisse verschmelzen als wahrscheinlichkeitsgewichtete Summe. Unabhängige ~1e-4-Fehler addieren sich inkohärent — sie wachsen wie √k, nicht k — und ohne Auslöschung großer Werte bleibt das Residuum gut konditioniert.
Wo es brechen kann · und die Regeln dagegen

Divergenzmodi und Verteidigungen

DivergenzmodusMechanismusRegel
Routing-AbweichungBackends wählen bei Grenz-Token unterschiedliche Top-8Router-Autorität — einmal auf dem Backbone entschieden, IDs dispatcht
Trajektorien-GabelungDas Logit-Wackeln pro Token kippt irgendwann einen; die Sequenz gabelt wie ein neuer SeedDekodieren/Sampling an einen Knoten gepinnt
Tiefenakkumulation49 Layer × je ~1e-4 → bis zu 1e-2 an den finalen LogitsF32-Akkumulation an Grenzen und beim Combine
Selbst-NichtdeterminismusAtomic/split-K-Kernel variieren von Lauf zu LaufDeterministische Combine-Kernel; Verifikation mit Toleranzen
Präzisions-AbweichungEin Knoten akkumuliert F16, ein anderer F32Akkumulationspräzision als Fähigkeit ausgewiesen; F32-Knoten für Ausgaberänge bevorzugt
Äquivalenz ist eine Zahl

Das Messprotokoll

  • Delta pro Op — gleiche Eingaben, relativer Fehler A vs. B bei matmul, swiglu, softmax, norm.
  • Layer-Grenzdrift — Residual-Delta nach einer Layer, gestapelt, um zu sehen, ob die Tiefe wie √L oder L akkumuliert.
  • Ende-zu-Ende-Logit-Divergenz — L∞, L2 und KL-Divergenz über den vollen Forward.
  • Entscheidungsübereinstimmung — Top-1-Token-Übereinstimmung plus Top-8-Routing-Übereinstimmung (validiert, warum Router-Autorität nötig ist).
  • Generationsstabilität — greedy N Tokens; der erste Index, an dem A und B divergieren.
  • Task-Ebene — Perplexity- und Eval-Score-Deltas: die einzige Metrik, die ein Nutzer wirklich spürt.

Ein Bestehen ist eine Toleranz — „Top-1-Übereinstimmung ≥ 99.x %, KL ≤ ε". Ein Knoten außerhalb der Toleranz wird für sensible Ränge als ungeeignet markiert, nicht pauschal abgelehnt.

Warum das Kern-Schwarmtechnologie ist

Bit-Übereinstimmung ist unmöglich — und unnötig

Ein homogener Cluster kann Bitgenauigkeit annehmen; ein Schwarm nicht — seine Prämisse ist *welche Hardware auch immer auftaucht*. Also behandelt Kvasir numerische Äquivalenz genau wie Protokollkompatibilität: als erstklassigen, gemessenen Vertrag. Backends und Akkumulationspräzision werden als Knotenfähigkeiten ausgewiesen, Router-Autorität wird als Invariante erzwungen, und jede Verifikation nutzt Toleranzen statt Bitgleichheit. Gemessene numerische Äquivalenz + diskrete Entscheidungen einer einzigen Autorität — das lässt ein Modell auf jeder GPU der Erde zugleich laufen. Das ist der Schwarm.