NVIDIA Blackwell se unió al enjambre
Una GB10 Grace Blackwell computó rebanadas reales de FFN de expertos del 122B en CUDA e igualó a AMD ROCm bit a bit (cosine 1.0000000000), y a la Grace ARM CPU dentro de tolerancia. La matriz entre backends está completa.
La premisa de un enjambre es *el hardware que aparezca*. La equivalencia numérica — la prueba de que los workers CUDA, ROCm, Adreno y CPU emiten todos el mismo token — ya se había medido en ROCm, ARM de teléfono y numpy. NVIDIA es la ruta por defecto y mejor optimizada en el ggml/motor de inferencia de serie, pero era el único backend en el que la matriz no se había cerrado. Correr hardware Blackwell real la cierra.
GB10 Blackwell CUDA ↔ MI250 ROCm gfx90a: cosine 1.0000000000 — max abs diff 3.5×10⁻¹⁰. Sobre la misma rebanada real de expertos de layer-0 del Qwen3.5-122B, los dos backends de GPU son efectivamente bit-idénticos.

La matriz entre backends
| Comparación | Hardware | cosine | max abs |
|---|---|---|---|
| CUDA ↔ ROCm | GB10 Blackwell ↔ MI250 gfx90a | 1.0000000000 | 3.5e-10 |
| CUDA ↔ CPU | GB10 Blackwell ↔ Grace ARM | 0.9997525825 | 2.6e-05 |
| CPU ↔ ROCm | Grace ARM ↔ MI250 gfx90a | 0.9997525823 | 2.6e-05 |
Los dos backends de GPU (CUDA, ROCm) comparten fuentes de kernel, así que caen efectivamente bit-idénticos (10⁻¹⁰). GPU↔CPU arrastra una perturbación de ~10⁻³ por operación por un orden de acumulación distinto, pero se mantiene equivalente en cosine 0.99975 — el mismo patrón que el anterior ROCm↔ARM-de-teléfono 0.99992. El principio de autoridad del router se sostiene de nuevo en NVIDIA: las decisiones discretas (argmax, selección de expertos) son invariantes sobre esta perturbación continua.
Qué corrió, sobre qué
- Dispositivo — NVIDIA GB10 (Grace Blackwell), aarch64, compute 12.1 / sm_121a, 124.5 GB de memoria unificada.
- Toolkit — CUDA 13.0.88 · gcc 13.3 · ggml 0.15.3; el expert-worker de ggml/gguf puro compilado con kernels Blackwell.
- Modelo — Qwen3.5-122B-A10B-Q4_K_M, todos los expertos de layer-0 (256 expertos, n_embd 3072, n_ff 1024, Q4_K/Q6_K).
- Método — la rebanada L0 de 1.58 GB transmitida MI250 → GB10 (comparación sin pérdidas); la misma entrada (h/ids) corrida por CUDA, CPU y ROCm; vectores de salida float32 (36.864) comparados por cosine, L2 relativa y max-abs.
Un tropiezo en hardware real: la GPU integrada del GB10 se clasifica como tipo de dispositivo ggml ACCEL, no GPU — así que init_by_type(GPU) no encontró nada. Arreglado seleccionando el primer dispositivo no-CPU en vez de codificar el tipo GPU.
La matriz está cerrada
Para que workers heterogéneos sirvan un modelo, una caja CUDA y una caja ROCm deben ser intercambiables, y una GPU y una CPU deben ser numéricamente equivalentes. Con Blackwell medido, ambas cosas se cumplen en toda la matriz de backends: los workers CUDA↔ROCm pueden sustituirse entre sí, y los workers GPU↔CPU concuerdan dentro de una tolerancia acotada y bien condicionada. El acelerador más común de la tierra es ahora un ciudadano verificado del enjambre.