5 points par GN⁺ 2026-03-23 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Moteur d’inférence en C/Metal capable d’exécuter un modèle Mixture-of-Experts de 397B de paramètres sur un MacBook Pro (48 Go de RAM) à plus de 4,4 tokens/s
  • Le modèle complet de 209 Go est streamé depuis le SSD, avec une implémentation uniquement en C et shaders Metal, sans Python ni framework
  • SSD Expert Streaming, noyaux optimisés FMA, Deferred GPU Compute, etc. maximisent l’efficacité parallèle GPU·SSD·CPU
  • La configuration en quantification 4-bit offre un bon équilibre entre qualité et vitesse, avec une génération de sortie de niveau production incluant la fonction d’appel d’outils
  • Un exemple d’allégement et d’optimisation qui rend possible l’inférence en temps réel de très grands modèles MoE même sur un ordinateur portable

Résultats de performance

  • En configuration experts 4-bit (noyau FMA) : 4,36 tok/s, excellente qualité, 209 Go utilisés sur disque
  • La configuration 4-bit de base atteint 3,90 tok/s, avant optimisation FMA
  • La configuration experts 2-bit (trust OS) monte à 5,74 tok/s, plus rapide mais inutilisable pour les appels d’outils à cause d’erreurs de sortie JSON
  • Le pic 2-bit sur un token unique atteint jusqu’à 7,05 tok/s, mais reste inadapté à un usage réel
  • La quantification 4-bit est la configuration la plus adaptée à une exploitation réelle

Environnement matériel

  • MacBook Pro (Apple M3 Max), CPU 16 cœurs (12P+4E), GPU 40 cœurs, ANE 16 cœurs
  • 48 Go de mémoire unifiée, bande passante d’environ 400 Go/s
  • SSD Apple Fabric de 1 To, avec une vitesse de lecture séquentielle de 17,5 Go/s
  • Environnement macOS 26.2 (Darwin 25.2.0)

Architecture du modèle

  • 60 couches Transformer au total : 45 GatedDeltaNet (attention linéaire) + 15 attention complète
  • Chaque couche possède 512 experts, avec K=4 activés par token (dont 1 expert partagé)
  • Dimension cachée 4096
  • Technologies clés

    • SSD Expert Streaming

      • Les poids des experts (209 Go en 4-bit) sont chargés à la demande depuis le SSD NVMe via des pread() parallèles
      • À chaque couche, seuls les 4 experts activés sont chargés (environ 6,75 Mo chacun)
      • Le cache de pages de l’OS gère automatiquement la mise en cache, sans cache séparé nécessaire
      • Architecture inspirée de l’article d’Apple « LLM in a Flash »
    • Noyau de déquantification optimisé FMA

      • L’opération (nibble * scale + bias) * x est réorganisée sous la forme fma(nibble, scale*x, bias*x)
      • scale*x et bias*x sont précalculés afin que les unités FMA du GPU l’exécutent en une seule instruction
      • 12 % de gain de vitesse par rapport à une implémentation simple
    • Shaders de calcul Metal

      • Les produits matrice-vecteur avec déquantification 4-bit/2-bit, l’activation SwiGLU, la normalisation RMS, l’attention GPU (Q@Kᵀ, softmax, scores@V), RoPE, ainsi que la combinaison MoE + résiduel + gate sont implémentés via des noyaux Metal écrits à la main
    • Deferred GPU Expert Compute

      • Les commandes CMD3 (passe avant des experts) sont soumises de manière asynchrone afin que le CPU prépare la couche suivante pendant que le GPU exécute
      • Les opérations de combinaison + normalisation + résiduel sont aussi effectuées sur le GPU puis transmises directement à la couche suivante
    • Utilisation d’Accelerate BLAS

      • cblas_sscal, cblas_sgemv, cblas_sger sont utilisés pour les calculs récurrents de GatedDeltaNet
      • 64 % plus rapide qu’un code scalaire
    • Trust the OS

      • Suppression du cache personnalisé, le cache de pages de l’OS (basé sur LRU, environ 35 Go) prend en charge la mise en cache des données d’experts
      • Plus rapide que leur propre LRU Metal, le cache malloc ou le cache compressé LZ4
      • Taux naturel de hit cache de 71 %
  • Contraintes de la mémoire unifiée

    • Sur Apple Silicon, le DMA du SSD et les calculs GPU partagent le même contrôleur mémoire
    • En exécution parallèle, la saturation de la bande passante GPU entraîne une forte hausse de la latence
    • Le pipeline séquentiel GPU → SSD → GPU est la forme optimale pour ce matériel

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.