Benchmark Flash-MOE sur M5 Max : 12,99 tok/s avec Qwen3.5-397B

Résultats de performance
Un utilisateur a testé l'implémentation flash-moe sur un MacBook Pro M5 Max avec 128 Go de mémoire unifiée, exécutant le modèle mlx-community/Qwen3.5-397B-A17B-4bit. Le benchmark original de Dan Woods sur un M3 Max avec 48 Go de RAM avait atteint 4,36 tokens par seconde. Sur le M5 Max, la configuration de base avec quantification 4 bits et sans cache-io-split a atteint 12,48 tok/s. Avec le paramètre optimal --cache-io-split 4, la performance est passée à 12,99 tok/s, soit trois fois plus rapide que le benchmark original.
Analyse Cache-IO-Split
L'utilisateur a effectué un balayage complet des valeurs cache-io-split en utilisant le fork Anemll de flash-moe, qui ajoute le support Metal 4 NAX pour les puces M5+. Les résultats montrent que les splits 2 et 3 dégradent les performances, tandis que le split 4 fournit la meilleure optimisation :
- cache-io-split 1 (aucun) : 12,48 tok/s, 28,4 ms d'E/S expert par token
- cache-io-split 2 : 9,94 tok/s, 28,2 ms d'E/S expert par token
- cache-io-split 3 : 9,99 tok/s, 36,1 ms d'E/S expert par token
- cache-io-split 4 : 12,99 tok/s, 25,9 ms d'E/S expert par token
- cache-io-split 5 : 12,64 tok/s, 27,5 ms d'E/S expert par token
- cache-io-split 8 : 12,90 tok/s, 26,4 ms d'E/S expert par token
L'analyse suggère que le split 4 correspond au parallélisme interne du contrôleur SSD du M5 Max, tandis que des valeurs plus élevées ajoutent une surcharge de planification. La recommandation est d'utiliser --cache-io-split 4 ou aucun split, en évitant les splits 2 et 3.
Comparaison de quantification
Le test de quantification 2 bits contre 4 bits a révélé que le 2 bits n'offre aucun avantage de vitesse sur le M5 Max, la vitesse du SSD rendant les fichiers plus petits inutiles et la surcharge de déquantisation annulant tout gain. La qualité souffre considérablement avec 2 bits :
- 4 bits : 12,99 tok/s, 3,64 perplexité sur WikiText-2
- 2 bits : ~12,65 tok/s, 5,71 perplexité sur WikiText-2 (57 % pire)
La conclusion est d'utiliser la quantification 4 bits pour une meilleure qualité sans sacrifier la vitesse.
Détails techniques
Le benchmark a utilisé le fork Anemll disponible à https://github.com/Anemll/flash-moe. La performance soutenue est restée stable à 11,23 tok/s sur 1000 tokens sans dégradation. L'utilisateur a noté que les processus en arrière-plan utilisant Metal/GPU, comme LM Studio, peuvent affecter significativement les performances et devraient être fermés pendant les tests.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Lore : Serveur MCP partageant l'historique des sessions d'agents IA entre outils
Lore est un serveur MCP qui indexe les sessions d'agents IA dans une base SQLite locale, permettant à n'importe quel agent—quel que soit l'outil—d'accéder à l'historique d'un autre. Des sessions fraîches, sans contexte partagé, mais les agents peuvent consulter les conversations passées à la demande.

Envoyer les agents OpenClaw comme participants à une réunion avec voix, chat et partage d'écran
Une nouvelle compétence permet aux agents OpenClaw de participer à Google Meet, Teams et Zoom avec voix (STT/TTS), chat, avatar vidéo et partage d'écran.

Exécuter deux agents Claude Code sur le même dépôt avec Git Worktrees
Un utilisateur de Reddit explique comment exécuter plusieurs agents Claude Code en parallèle sur la même base de code en utilisant git worktrees, évitant ainsi les conflits de fichiers et permettant des sessions d'agents indépendantes.

L'outil d'automatisation de flux de travail Symphony fonctionne avec Claude Code.
Un développeur a réussi à faire fonctionner la spécification Symphony avec Claude Code pour automatiser les flux de travail de tickets vers PR, utilisant initialement Node/TypeScript mais notant qu'Elixir pourrait être meilleur. L'outil nécessite une configuration séparée de clé API et une facturation au-delà des abonnements Claude.