Equivalencia numérica

Los backends distintos nunca coinciden bit a bit; el enjambre trata la tolerancia medida como un contrato de primera clase.

CUDA, ROCm, Adreno y las CPU computan la misma operación con distintos órdenes de reducción, fusión FMA, acumuladores y aproximaciones de funciones trascendentes — los resultados difieren ~1e-6…1e-3 por operación, por diseño, nunca de forma bit-idéntica. Un enjambre hecho del hardware que aparezca no puede exigir exactitud de bits, así que Kvasir mide la equivalencia en su lugar.

Par de backends (122B real, expertos de layer-0)max|Δ|cosine
CUDA (GB10 Blackwell) vs ROCm (MI250)3.5e-101.0000000000
ROCm (MI250) vs numpy (x86)7.9e-70.99996
ARM CPU de teléfono vs numpy (x86)1.4e-60.99992
CUDA (GB10 Blackwell) vs Grace ARM CPU2.6e-50.99975

La matriz completa de backends está cerrada: los dos backends de GPU (CUDA, ROCm) comparten fuentes de kernel y caen efectivamente bit-idénticos (cosine 1.0000000000), mientras que los pares GPU↔CPU se mantienen equivalentes en ~0.9997. Un worker CUDA y un worker ROCm son intercambiables; un worker GPU y un worker CPU son numéricamente equivalentes.

Por qué difieren

La suma en coma flotante no es asociativa

  • Orden de reducción del matmul — tensor cores, tiles MFMA, workgroups OpenCL y lanes SIMD acumulan en órdenes distintos.
  • Precisión de acumulación — almacenamiento F16/BF16 con acumuladores F32 o F16: la palanca más grande de la divergencia.
  • Aproximaciones trascendentes — exp (softmax), silu (swiglu) y rsqrt (norms) usan variantes polinómicas/de tabla distintas por backend.
El contrato

Tolerancias, capacidades, autoridad única

  • La verificación es una tolerancia — "acuerdo top-1 ≥ 99.x%, KL ≤ ε" — nunca igualdad de bits.
  • Los backends y la precisión de acumulación se anuncian como capacidades del nodo; los nodos que acumulan en F32 se prefieren para rangos sensibles a la salida.
  • Los nodos fuera de tolerancia se marcan como no aptos para rangos sensibles, no se rechazan de plano.
  • Las decisiones discretas (enrutamiento, muestreo) se fijan a autoridades únicas para que el error continuo nunca pueda volverse divergencia discreta.