Numerische Äquivalenz

Verschiedene Backends stimmen nie bitgenau überein; der Schwarm behandelt gemessene Toleranz als Vertrag erster Klasse.

CUDA, ROCm, Adreno und CPUs berechnen dieselbe Operation mit unterschiedlichen Reduktionsreihenfolgen, FMA-Fusionen, Akkumulatoren und Näherungen transzendenter Funktionen — die Ergebnisse weichen pro Operation um ~1e-6…1e-3 ab, per Design, nie bitidentisch. Ein Schwarm aus beliebig auftauchender Hardware kann keine Bitgenauigkeit verlangen, also misst Kvasir stattdessen Äquivalenz.

Backend-Paar (echtes 122B, Layer-0-Experten)max|Δ|cosine
CUDA (GB10 Blackwell) vs ROCm (MI250)3.5e-101.0000000000
ROCm (MI250) vs numpy (x86)7.9e-70.99996
Smartphone-ARM-CPU vs numpy (x86)1.4e-60.99992
CUDA (GB10 Blackwell) vs Grace ARM CPU2.6e-50.99975

Die volle Backend-Matrix ist geschlossen: die zwei GPU-Backends (CUDA, ROCm) teilen sich Kernel-Quellen und landen praktisch bitidentisch (cosine 1.0000000000), während GPU↔CPU-Paare bei ~0.9997 äquivalent bleiben. Ein CUDA-Worker und ein ROCm-Worker sind austauschbar; ein GPU-Worker und ein CPU-Worker sind numerisch äquivalent.

Warum sie abweichen

Gleitkomma-Addition ist nicht assoziativ

  • Matmul-Reduktionsreihenfolge — Tensor-Cores, MFMA-Kacheln, OpenCL-Workgroups und SIMD-Lanes akkumulieren in unterschiedlichen Reihenfolgen.
  • Akkumulationspräzision — F16/BF16-Speicherung mit F32- oder F16-Akkumulatoren: der größte Hebel der Divergenz.
  • Transzendente Näherungen — exp (Softmax), silu (SwiGLU) und rsqrt (Norms) nutzen je Backend andere Polynom-/Tabellenvarianten.
Der Vertrag

Toleranzen, Fähigkeiten, einzige Autorität

  • Verifikation ist eine Toleranz — „Top-1-Übereinstimmung ≥ 99.x %, KL ≤ ε" — nie Bitgleichheit.
  • Backends und Akkumulationspräzision werden als Node-Fähigkeiten ausgewiesen; F32-akkumulierende Nodes werden für ausgabesensible Ränge bevorzugt.
  • Nodes außerhalb der Toleranz werden für sensible Ränge als ungeeignet markiert, nicht pauschal abgelehnt.
  • Diskrete Entscheidungen (Routing, Sampling) werden an einzelne Autoritäten gepinnt, damit kontinuierlicher Fehler nie zu diskreter Divergenz werden kann.