Numerieke equivalentie

Verschillende backends komen nooit bit-voor-bit overeen; de zwerm behandelt gemeten tolerantie als eersteklas contract.

CUDA, ROCm, Adreno en CPU's berekenen dezelfde operatie met verschillende reductievolgordes, FMA-fusie, accumulatoren en benaderingen van transcendente functies — resultaten verschillen ~1e-6…1e-3 per operatie, by design, nooit bit-identiek. Een zwerm van willekeurig opdagende hardware kan geen bit-exactheid eisen, dus meet Kvasir in plaats daarvan equivalentie.

Backend-paar (echte 122B, layer-0-experts)max|Δ|cosine
CUDA (GB10 Blackwell) vs ROCm (MI250)3.5e-101.0000000000
ROCm (MI250) vs numpy (x86)7.9e-70.99996
Telefoon-ARM-CPU vs numpy (x86)1.4e-60.99992
CUDA (GB10 Blackwell) vs Grace ARM CPU2.6e-50.99975

De volledige backend-matrix is gesloten: de twee GPU-backends (CUDA, ROCm) delen kernelbronnen en landen feitelijk bit-identiek (cosine 1.0000000000), terwijl GPU↔CPU-paren equivalent blijven op ~0.9997. Een CUDA-worker en een ROCm-worker zijn uitwisselbaar; een GPU-worker en een CPU-worker zijn numeriek equivalent.

Waarom ze verschillen

Drijvende-komma-optelling is niet associatief

  • Matmul-reductievolgorde — tensor cores, MFMA-tegels, OpenCL-workgroups en SIMD-lanes accumuleren in verschillende volgordes.
  • Accumulatieprecisie — F16/BF16-opslag met F32- of F16-accumulatoren: de grootste hefboom op divergentie.
  • Transcendente benaderingen — exp (softmax), silu (swiglu) en rsqrt (norms) gebruiken per backend andere polynoom-/tabelvarianten.
Het contract

Toleranties, capaciteiten, één autoriteit

  • Verificatie is een tolerantie — "top-1-overeenstemming ≥ 99.x%, KL ≤ ε" — nooit bitgelijkheid.
  • Backends en accumulatieprecisie worden geadverteerd als node-capaciteiten; F32-accumulerende nodes krijgen voorrang voor uitvoergevoelige rangen.
  • Nodes buiten tolerantie worden gemarkeerd als ongeschikt voor gevoelige rangen, niet botweg geweigerd.
  • Discrete beslissingen (routering, sampling) worden vastgepind op enkele autoriteiten zodat continue fout nooit discrete divergentie kan worden.