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-10 | 1.0000000000 |
| ROCm (MI250) vs numpy (x86) | 7.9e-7 | 0.99996 |
| Smartphone-ARM-CPU vs numpy (x86) | 1.4e-6 | 0.99992 |
| CUDA (GB10 Blackwell) vs Grace ARM CPU | 2.6e-5 | 0.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.
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.
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.