NVIDIA Blackwell sloot zich aan bij de zwerm

Een GB10 Grace Blackwell berekende echte 122B-expert-FFN-plakken in CUDA en evenaarde AMD ROCm bit voor bit (cosine 1.0000000000), en de Grace ARM CPU binnen tolerantie. De cross-backend-matrix is compleet.

De premisse van een zwerm is *welke hardware er ook opduikt*. Numerieke equivalentie — het bewijs dat CUDA-, ROCm-, Adreno- en CPU-workers allemaal hetzelfde token uitzenden — was al gemeten op ROCm, telefoon-ARM en numpy. NVIDIA is het standaard en best geoptimaliseerde pad in de standaard-ggml/inferentie-engine, maar was het ene backend waarop de matrix niet gesloten was. Echte Blackwell-hardware draaien sluit hem.

GB10 Blackwell CUDA ↔ MI250 ROCm gfx90a: cosine 1.0000000000 — max abs diff 3.5×10⁻¹⁰. Op dezelfde echte Qwen3.5-122B-layer-0-expertplak zijn de twee GPU-backends feitelijk bit-identiek.

A new GPU docking into an almost-complete matrix of backend-comparison cells, its waveform snapping into overlap with a red GPU's
Gemeten · echte Qwen3.5-122B-A10B, layer-0-expertplak

De cross-backend-matrix

VergelijkingHardwarecosinemax abs
CUDA ↔ ROCmGB10 Blackwell ↔ MI250 gfx90a1.00000000003.5e-10
CUDA ↔ CPUGB10 Blackwell ↔ Grace ARM0.99975258252.6e-05
CPU ↔ ROCmGrace ARM ↔ MI250 gfx90a0.99975258232.6e-05

De twee GPU-backends (CUDA, ROCm) delen kernelbronnen, dus landen ze feitelijk bit-identiek (10⁻¹⁰). GPU↔CPU draagt een verstoring van ~10⁻³ per op door een andere accumulatievolgorde, maar blijft equivalent op cosine 0.99975 — hetzelfde patroon als het eerdere ROCm↔telefoon-ARM 0.99992. Het router-autoriteitsprincipe houdt opnieuw stand op NVIDIA: de discrete beslissingen (argmax, expertselectie) zijn invariant over deze continue verstoring.

Opstelling

Wat draaide, waarop

  • Apparaat — NVIDIA GB10 (Grace Blackwell), aarch64, compute 12.1 / sm_121a, 124,5 GB unified memory.
  • Toolkit — CUDA 13.0.88 · gcc 13.3 · ggml 0.15.3; de pure ggml/gguf-expert-worker gebouwd met Blackwell-kernels.
  • Model — Qwen3.5-122B-A10B-Q4_K_M, layer-0 alle experts (256 experts, n_embd 3072, n_ff 1024, Q4_K/Q6_K).
  • Methode — de 1,58 GB L0-plak MI250 → GB10 gestreamd (verliesloze vergelijking); dezelfde invoer (h/ids) door CUDA, CPU en ROCm; float32-uitvoervectoren (36.864) vergeleken op cosine, relatieve L2 en max-abs.

Eén echte-hardware-valkuil: de geïntegreerde GPU van de GB10 wordt door ggml geclassificeerd als apparaattype ACCEL, niet GPU — dus init_by_type(GPU) vond niets. Opgelost door het eerste niet-CPU-apparaat te kiezen in plaats van het GPU-type hard te coderen.

Waarom het ertoe doet

De matrix is gesloten

Om heterogene workers één model te laten serveren, moeten een CUDA-bak en een ROCm-bak uitwisselbaar zijn, en moeten een GPU en een CPU numeriek equivalent zijn. Met Blackwell gemeten gelden beide over de volledige backend-matrix: CUDA↔ROCm-workers kunnen elkaar vervangen, en GPU↔CPU-workers komen overeen binnen een begrensde, goed geconditioneerde tolerantie. De meest voorkomende versneller ter wereld is nu een geverifieerde zwermburger.