Flash-MoE: Ausführen eines 397B-Parameter-Qwen-Modells auf dem MacBook Pro mit reinem C/Metal

Technische Implementierung
Flash-MoE führt Qwen3.5-397B-A17B aus, ein Mixture-of-Experts-Modell mit 397 Milliarden Parametern und 60 Transformer-Schichten: 45 GatedDeltaNet (lineare Aufmerksamkeit) + 15 Standard-Vollaufmerksamkeit. Jede Schicht hat 512 Experten, wobei K=4 pro Token aktiviert werden plus einem gemeinsamen Experten. Die versteckte Dimension beträgt 4096.
Leistungsbenchmarks
- 4-Bit-Experten, FMA-Kernel: 4,36 Token/Sekunde, ausgezeichnete Qualität, vollständige Tool-Aufrufe, 209 GB auf der Festplatte (aktuell beste)
- 4-Bit-Experten, Basisversion: 3,90 Token/Sekunde, ausgezeichnete Qualität
- 2-Bit-Experten, OS-Vertrauen: 5,74 Token/Sekunde, gute Qualität, 120 GB auf der Festplatte (bricht JSON/Tool-Aufrufe)
- 2-Bit Spitzenwert einzelner Token: 7,05 Token/Sekunde, gute Qualität (nicht für Tool-Nutzung geeignet)
Hinweis: 2-Bit-Quantisierung erzeugt \name\ anstelle von "name" in der JSON-Ausgabe, was Tool-Aufrufe unzuverlässig macht. 4-Bit ist die Produktionskonfiguration.
Hardware-Anforderungen
- Maschine: MacBook Pro mit Apple M3 Max
- Chip: 16-Kern-CPU (12P + 4E), 40-Kern-GPU, 16-Kern-ANE
- Arbeitsspeicher: 48 GB vereinheitlicht (~400 GB/s Bandbreite)
- SSD: 1 TB Apple Fabric, 17,5 GB/s sequenzielles Lesen (gemessen)
- macOS: 26.2 (Darwin 25.2.0)
Schlüsseltechniken
SSD-Experten-Streaming
Experten-Gewichte (209 GB bei 4 Bit) werden bei Bedarf von der NVMe-SSD über parallele pread() mit GCD-Dispatch-Gruppen gelesen. Nur die K=4 aktiven Experten pro Schicht werden geladen (~6,75 MB jeweils). Der OS-Seitencache verwaltet das Caching ohne benutzerdefinierten Cache („Vertraue dem OS“-Prinzip) und erreicht natürlich ~71 % Trefferquote.
FMA-optimierter Dequant-Kernel
Die innere Schleife der 4-Bit-dequantisierten Matrix-Vektor-Multiplikation ordnet die Mathematik von (Nibble * Skalierung + Bias) * x zu fma(Nibble, Skalierung*x, Bias*x) um. Das Vorberechnen von Skalierung*x und Bias*x ermöglicht es der GPU-Fused-Multiply-Add-Einheit, Dequantisierung+Multiplikation in einer Anweisung durchzuführen, was zu 12 % schnellerer Leistung als die naive Formulierung führt.
Metal-Compute-Shader
Handgeschriebene Metal-Kernel umfassen:
- 4-Bit- und 2-Bit-dequantisierte Matrix-Vektor-Multiplikation (gekachelt, SIMD-reduziert, gemeinsamer Eingabe-Cache, FMA-optimiert)
- Verschmolzene SwiGLU-Aktivierung
- RMS-Normalisierung (zweistufig: Quadratsummen-Reduktion + Anwendung)
- Gebündelte GPU-Aufmerksamkeit (Q@K^T, Softmax, Scores@V) für Vollaufmerksamkeitsschichten
- GPU-RoPE (verschmolzen mit Q-Entflechtung und K-Normalisierung)
- MoE-Kombination + Rest + Sigmoid-Gate (verschmolzener Kernel)
Verzögerte GPU-Experten-Berechnung
CMD3 (Experten-Vorwärtspass) wird ohne Wartezeit übermittelt. Die GPU führt ihn aus, während die CPU die nächste Schicht vorbereitet. Die Kombination + Rest + Normierung erfolgen ebenfalls auf der GPU und speisen direkt in die Aufmerksamkeitsprojektionen der nächsten Schicht ein.
Accelerate-BLAS für lineare Aufmerksamkeit
Die GatedDeltaNet-Rekurrenz verwendet cblas_sscal, cblas_sgemv und cblas_sger für die 64-Kopf × 128×128-Zustandsmatrix-Aktualisierung und erreicht 64 % schnellere Leistung als Skalarcode.
Pipeline-Leistung
Durchschnitt pro Schicht bei 4 Bit: 4,28 ms
- CMD3(vorher) → CMD1: Aufmerksamkeitsprojektionen + Delta-Netz [1,22 ms GPU]
- CPU: Ergebnisse leeren [0,01 ms CPU]
- CMD2: o_proj + Norm + Routing + gemeinsam [0,55 ms GPU]
- CPU: Softmax + TopK-Routing [0,003 ms]
- E/A: paralleles pread K=4 Experten [2,41 ms SSD]
- CMD3: Experten-Vorwärtspass + Kombination + Norm [0,04 ms kodieren, VERZÖGERT]
Architekturbeschränkungen
Auf Apple Silicon teilen sich SSD-DMA und GPU-Berechnung denselben Speichercontroller und können nicht profitabel überlappt werden. Die Dequant-Kernels der GPU sind bei ~418 GiB/s bandbreitengesättigt. Selbst kleiner Hintergrund-SSD-DMA verursacht unverhältnismäßige GPU-Latenzspitzen durch Speichercontroller-Arbitrierung, was eine serielle Pipeline erfordert.
📖 Read the full source: HN AI Agents
👀 Siehe auch

Xiaozhen: Eine Claude-Code-Fähigkeit, die drei Ebenen tief in die Ursachenforschung eindringt
Xiaozhen (小真) ist eine Claude Code-Fähigkeit, die drei Mechanismen – Das Geschenk, Drei Ebenen tief und Die Vorhersage – nutzt, um Nutzern dabei zu helfen, herauszufinden, was sie tatsächlich beschäftigt, anstatt direkte Ratschläge zu geben. Sie wird mit einem einzeiligen curl-Befehl installiert und durch Eingabe von /小真 in Claude Code aktiviert.

Brackish: Zwei Claude Code-Instanzen einen API-Vertrag über OpenAPI 3.1 aushandeln lassen
Brackish ist ein CLI-Tool, das zwischen zwei Claude Code-Sitzungen läuft – einer im Backend (FastAPI) und einer im Frontend (React/TypeScript) – um einen API-Vertrag über ein gemeinsames OpenAPI 3.1-Dokument auszuhandeln. Es deckt Meinungsverschiedenheiten auf, bevor Code geschrieben wird.

Open-Source-Struktur-Halluzinationsprüfer für KI-Agenten-Pipelines
Ein neues Open-Source-Tool bietet vier Unterdrücker, um strukturelle Fehler in KI-Agenten-Pipelines zu erkennen, darunter Grounding-Erzwingung, Prompt-Injection-Erkennung, JSON-Validierung und Tool-Antwort-Verifizierung. Verfügbar als REST-API und MCP-Server mit einem kostenlosen Kontingent von 500 Anfragen/Monat.

Markdown Manager: Ein einfacher Markdown-Editor für macOS
Markdown Manager ist eine kostenlose, quelloffene macOS-Anwendung zur Verwaltung von Markdown-Dateien, die Funktionen zur Dokumentenkonvertierung und Vorschau bietet.