Qwen3.6-35B lokal auf dem M1 Max — 3 Tage Dauertest mit oMLX
Hardware: MacBook Pro M1 Max, 64 GB Unified Memory
Software: oMLX v0.3.8, mlx-lm (ed1fca4)
Modell: Qwen3.6-35B-A3B-UD-MLX-4bit (21,2 GB)
Usecase: Coding / Claude Code (agentic, lange Kontexte)
Mein MacBook Pro mit M1 Max ist inzwischen ein paar Jahre alt — aber ich wollte wissen, was noch drinsteckt, wenn man es mal richtig arbeiten lässt. Also habe ich einen systematischen Modell-Vergleich gemacht und das beste Ergebnis dann einfach 3 Tage durchlaufen lassen. Was dabei herauskam, teile ich hier — vielleicht ist es für den einen oder anderen nützlich, der ähnliche Hardware hat oder sich fragt, ob sich lokale Inferenz auf Apple Silicon lohnt.
Benchmark-Vergleich (oMLX Bench-Tab)
Getestet wurden pp1024, pp4096 und pp8192 mit je 128 Output-Tokens. Alle Modelle liefen auf demselben System ohne sonstige Last. (Prompt Processing mit 1024, 4096 und 8192 Input-Tokens — entspricht etwa einer kurzen Frage, einem mittleren Dokument bzw. einer größeren Codedatei)
| Modell | tg TPS pp1024 | tg TPS pp4096 | RAM | Anmerkung |
|---|---|---|---|---|
| Qwen3-30B-A3B-MLX-4bit | 43,2 | 35,3 | 17 GB | Solide Allroundwahl |
| Qwen3.6-35B-A3B-UD-4bit | 40,9 | 39,8 | 21 GB | Besser bei langen Kontexten |
| Qwen3-30B-A3B-MLX-8bit | 34,5 | 28,9 | 31 GB | Mehr RAM, langsamer |
| Qwen3-30B-A3B-MLX-6bit | 30,8 | 28,1 | 24 GB | Schlechteste Wahl |
| Qwen3-4B-4bit | 45,4 | 36,5 | 2,2 GB | Schnell, aber zu schwach |
| Qwen3-14B-4bit | 13,3 | 12,6 | 8,1 GB | |
| Qwen2.5-Coder-32B-Instruct-4bit | 7,0 | 6,2 | 18 GB |
Wichtig: Die Quantisierungsquelle macht einen riesigen Unterschied! Qwen3-14B und Qwen2.5-Coder-32B liefen in der lmstudio-community-Version mit nur 7–13 tok/s — kein Hardware-Problem, sondern ein MLX-Kompatibilitätsproblem der jeweiligen Quantisierung. Immer mlx-community-Versionen bevorzugen.
Warum Qwen3.6-35B statt Qwen3-30B?
Bei kurzen Kontexten gewinnt der 30B knapp (43 vs. 41 tok/s bei pp1024). Aber bei pp4096 dreht sich das Bild: der 35B läuft mit 39,8 tok/s, der 30B fällt auf 35,3 tok/s ab. Bei Coding-Workflows mit langen Datei-Kontexten ist das der entscheidende Unterschied. Dazu kommt die neuere Architektur. Die 4 GB mehr RAM (21 vs. 17 GB) sind bei 64 GB gut verschmerzbar.
3-Tage-Dauertest
Das Modell lief ohne Unterbrechung durch einen langen agentic Coding-Job über Claude Code.
| Zeitpunkt | TG tok/s | Cache-Effizienz | SSD-Cache | Tokens gesamt |
|---|---|---|---|---|
| Start | 32,5 | 0% | — | 12k |
| +2h | 21,5 | 63% | 38 GB | 1,24M |
| +12h | 21,1 | 64,6% | 52 GB | 4,26M |
| +24h | 21,0 | 64,6% | 66 GB | 6,96M |
| +48h | 21,6 | 65,8% | 79,5 GB | 9,52M |
Die TG-Speed sinkt anfangs durch den wachsenden Kontext (Attention über 80k+ Tokens), stabilisiert sich dann aber bei konstant ~21 tok/s — und bleibt da für über 48 Stunden. Kein Throttling, kein Degradieren. Das hat mich ehrlich gesagt überrascht.
GPU-Verhalten
GPU HW active frequency: ~820 MHz (max. 1296 MHz)
GPU HW active residency: ~80%
GPU Power: ~15W
GPU idle residency: ~20%
Kein thermisches Throttling nach dem initialen Aufwärmen. Der M1 Max läuft bei ~15W GPU-Power — weit unter dem Maximum, was die Langzeit-Stabilität erklärt. Das bekannte P6 = 100% im SW requested state ist ein MLX-spezifisches Verhalten des GPU-Schedulers und hat keinen negativen Effekt in der Praxis.
Cache-System
oMLX nutzt einen SSD-basierten Response-State-Cache mit 2048-Token-Blöcken. Nach 48h:
- 1279 gecachte Blöcke ≈ 2,6 Millionen Tokens im SSD-Cache
- 65,8% Cache-Effizienz — fast zwei Drittel aller Prompt-Tokens kommen aus dem Cache
- 79,5 GB SSD-Cache — wächst bei intensivem Betrieb mit ~13 GB/Tag
Gelegentlich leeren über den Clear-Button im Dashboard, wenn der Speicherplatz knapp wird.
Fazit
Für Coding mit langen Kontexten auf dem M1 Max 64GB:
Qwen3.6-35B-A3B-UD-MLX-4bit ist meine klare Empfehlung
Stabile ~21 tok/s auch bei 80k+ Token Kontext — über Tage hinweg
65%+ Cache-Effizienz spart massiv Rechenzeit
21 GB RAM lässt noch Luft für andere Apps
SSD-Cache wächst stark — gelegentlich leeren nicht vergessen
Das alte MacBook hat mich positiv überrascht. Für einen lokalen Coding-Assistenten mit langen Kontexten braucht es sich nicht zu verstecken.
Hängt gerne eure eigenen Ergebnisse und Benchmarks dran — mich würde besonders interessieren, wie sich das auf anderen M1/M2/M3-Varianten oder mit anderen Modellen schlägt. Je mehr Vergleichsdaten, desto besser!
Setup: oMLX v0.3.8 · mlx-lm ed1fca4 · macOS 26 (25E253) · MacBook Pro 18,4 · M1 Max 64 GB