Getting 50 GB/S Back from the Apple Neural Engine
Une anomalie RTL du moteur neural M3 d'Apple réduit le débit de streaming des poids DRAM à 17–19 GB/s (au lieu de 45–60 GB/s) lorsque la taille totale des poids est un multiple entier de 1 MiB, affectant plusieurs modèles d'ANEMLL. Le profilage a montré une résonance périodique autour de D=2048 liée à la logique de prélecture speculative du KernelDMA qui opère sur une bague de lignes de 14 bits (0x4000 lignes = 1 MiB). L'analyse indique que la distance de prélecture est calculée en modulo 0x4000 et qu'un plafond de crédit à 256 lignes (16 KiB) fait que les transferts exactement multiples de 1 MiB sont identifiés comme "vides" et ne reçoivent pas suffisamment de requêtes anticipées, provoquant la chute de bande passante. Un contournement logiciel consiste à scinder ou paddder les transferts pour éviter des segments de 1 MiB (par exemple deux transferts de 512 KiB), ce qui restaure le débit normal sans modifier significativement la latence globale. En pratique ce correctif multiplie par ~2.5–3× le débit DRAM sur les cas affectés et accélère notablement les modèles (par exemple Llama 3.2 1B ≈10 → 24 tokens/s et Qwen3‑8B ≈1.36 → 2.97 tokens/s).