NVIDIA Blackwell a rejoint l'essaim

Un GB10 Grace Blackwell a calculé de vraies tranches de FFN d'experts du 122B en CUDA et a égalé AMD ROCm au bit près (cosine 1.0000000000), et le Grace ARM CPU dans la tolérance. La matrice inter-backends est complète.

La prémisse d'un essaim est *le matériel qui se présente*. L'équivalence numérique — la preuve que les workers CUDA, ROCm, Adreno et CPU émettent tous le même token — avait déjà été mesurée sur ROCm, ARM de téléphone et numpy. NVIDIA est la voie par défaut et la mieux optimisée dans le ggml/moteur d'inférence d'origine, mais c'était le seul backend sur lequel la matrice n'avait pas été close. Faire tourner du vrai matériel Blackwell la clôt.

GB10 Blackwell CUDA ↔ MI250 ROCm gfx90a : cosine 1.0000000000 — max abs diff 3.5×10⁻¹⁰. Sur la même vraie tranche d'experts de layer-0 du Qwen3.5-122B, les deux backends GPU sont effectivement bit-identiques.

A new GPU docking into an almost-complete matrix of backend-comparison cells, its waveform snapping into overlap with a red GPU's
Mesuré · vrai Qwen3.5-122B-A10B, tranche d'experts de layer-0

La matrice inter-backends

ComparaisonMatérielcosinemax 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

Les deux backends GPU (CUDA, ROCm) partagent leurs sources de kernel, ils atterrissent donc effectivement bit-identiques (10⁻¹⁰). GPU↔CPU porte une perturbation d'environ 10⁻³ par op due à un ordre d'accumulation différent, mais reste équivalent à cosine 0.99975 — le même motif que le précédent ROCm↔ARM-de-téléphone 0.99992. Le principe d'autorité du routeur tient de nouveau sur NVIDIA : les décisions discrètes (argmax, sélection d'experts) sont invariantes sur cette perturbation continue.

Configuration

Ce qui a tourné, sur quoi

  • Appareil — NVIDIA GB10 (Grace Blackwell), aarch64, compute 12.1 / sm_121a, 124,5 Go de mémoire unifiée.
  • Toolkit — CUDA 13.0.88 · gcc 13.3 · ggml 0.15.3 ; l'expert-worker ggml/gguf pur compilé avec les kernels Blackwell.
  • Modèle — Qwen3.5-122B-A10B-Q4_K_M, tous les experts de layer-0 (256 experts, n_embd 3072, n_ff 1024, Q4_K/Q6_K).
  • Méthode — la tranche L0 de 1,58 Go transmise MI250 → GB10 (comparaison sans perte) ; la même entrée (h/ids) passée par CUDA, CPU et ROCm ; vecteurs de sortie float32 (36 864) comparés par cosine, L2 relative et max-abs.

Un piège matériel réel : le GPU intégré du GB10 est classé par ggml comme type d'appareil ACCEL, pas GPU — si bien que init_by_type(GPU) ne trouvait rien. Corrigé en sélectionnant le premier appareil non-CPU au lieu de coder en dur le type GPU.

Pourquoi c'est important

La matrice est close

Pour que des workers hétérogènes servent un même modèle, une machine CUDA et une machine ROCm doivent être interchangeables, et un GPU et un CPU doivent être numériquement équivalents. Blackwell mesuré, les deux tiennent sur toute la matrice de backends : les workers CUDA↔ROCm peuvent se remplacer, et les workers GPU↔CPU concordent dans une tolérance bornée et bien conditionnée. L'accélérateur le plus répandu sur terre est désormais un citoyen vérifié de l'essaim.