Die Autorin analysiert die Mikroarchitektur der Apple Neural Engine (ANE) des M1-Chips durch Reverse-Engineering, um Design-Entscheidungen aus der CNN-Ära aufzudecken. Die ANE nutzt 16 Rechenkerne mit insgesamt 2048 parallelen MAC-Spuren (Multiply-Accumulate), die für vorhersagbare Faltungsoperationen optimiert sind. Wegen ihrer starren Datenströme, der seriellen DMA-Ausführung und begrenzten lokalen Speicherstrukturen ist sie jedoch für moderne Transformer-Workloads strukturell ungeeignet.
Wichtigste Punkte
Rechenleistung & MAC-Einheiten: 16 Rechenkerne mit je 128 FP16- oder 256 INT8-parallel laufenden Multiply-Accumulate-Spuren, was 2048 parallelen MAC-Reduktionen entspricht. Der interne 32-Bit-Akkumulator saturiert bei $2^{15}$ (Q16.16-Festkommaformat).
Nichtlineare Aktivierung (Nonlinear Activation): Modus 2 verwendet eine stückweise lineare Lookup-Tabelle (LUT) mit 33 Einträgen für mathematische Funktionen wie $\tanh(x)$, skaliert über den Parameter $R$ für Knoteneinteilungen im Abstand von $\Delta x = 2^{-R}$. Lineare Skalierungen ($ax+b$) werden zur Kompilierzeit in die Faltung gefaltet.
Scheduler & Task-Deskriptoren: Die ANE besitzt keinen eigenständigen Befehlssatz (ISA). Die Steuerung erfolgt über Task-Deskriptoren (TDs), die als ControlDMA-Burst-Writes Konfigurationsregister per MMIO beschreiben.
Speicher-Hierarchie & Roofline: Das System erzielt 11 TOP/s bei 68 GB/s DRAM-Bandbreite, woraus ein Roofline-Ridge-Punkt von 162 OP/Byte resultiert. Der lokale Speicher teilt sich in 1 MiB Kernel-Memory (KMem, 16x 64 KiB) und 2 MiB geteilten L2-Cache auf.
DMA-Architektur: Getrennte DMA-Engines für Kernel (KernelDMASrc, max. 37,99 GB/s) und Tiles (TileDMASrc, max. 59,08 GB/s) arbeiten seriell und additiv. Diese serielle Abarbeitung verhindert das Erreichen der maximalen Unified-Memory-Bandbreite.
Diskussions-Highlights
Transformer-Portierung: Diskutanten bestätigen, dass Transformer auf der ANE als CNNs ausgeführt werden müssen, indem Sequenzen in der letzten Achse von 4D-Tensoren und 1x1-Fokussierungen statt Matrizenmultiplikationen verwendet werden.
Hardware-Evolution: Der M4 führte schnelle Pfade für INT8-Gewichte und -Aktivierungen ein (w8a8). M5+-Modelle integrierten ANE-Kerne als Neural Accelerators (NAX) in die GPU, welche Matrix-Multiplikationsbeschleuniger ähnlich wie NVIDIA Tensor-Cores darstellen. M6 und A20 verdoppeln die ANE-Blöcke.
Design-Historie: Die ANE wurde vor fast einem Jahrzehnt primär für CNNs unter unklaren zukünftigen ML-Anforderungen entworfen, was zu der heutigen Ineffizienz bei Transformer-Workloads führt.
Software-Nutzung: Kritiker bemängeln, dass Apple den Neural Engine jahrelang softwareseitig kaum auslastete, obwohl er einen signifikanten Anteil der Chipfläche beanspruchte.
Glossar
Apple Neural Engine (ANE): Apples dedizierter Hardware-Beschleuniger für maschinelles Lernen, integriert in Apple-Silicon-SoCs.
Multiply-Accumulate (MAC): Eine grundlegende Rechenoperation in Prozessoren, die zwei Zahlen multipliziert und das Produkt zu einer Akkumulatorsumme addiert.
FP16 / INT8: Gleitkommazahlen mit halber Präzision (16 Bit) beziehungsweise Integer-Werte mit 8 Bit, gängige Formate zur Quantisierung von ML-Modellen.
Convolutional Neural Network (CNN): Eine Klasse künstlicher neuronaler Netze, die primär für die räumliche Faltungs- und Bildverarbeitung optimiert sind.
Transformer: Eine auf Selbstaufmerksamkeit (Self-Attention) basierende Netzwerkarchitektur, die als Grundlage moderner Large Language Models (LLMs) dient.
Direct Memory Access (DMA): Ein Hardware-Mechanismus, der Peripheriegeräten den direkten Zugriff auf den Hauptspeicher ohne CPU-Beteiligung ermöglicht.
Lookup-Tabelle (LUT): Eine vorab berechnete Datentabelle zur schnellen Ermittlung mathematischer Funktionswerte ohne Echtzeit-Berechnung.
IOMMU (Input-Output Memory Management Unit): Eine Hardware-Einheit, die virtuelle Adressen von Peripheriegeräten auf physische Speicheradressen übersetzt.
Roofline-Modell: Ein Analysemodell zur Bestimmung von Leistungsengpässen in Prozessoren anhand von Rechenleistung, Speicherbandbreite und arithmetischer Intensität.
Neural Accelerators (NAX): In GPUs integrierte Matrix-Multiplikationsbeschleuniger (ab M5), vergleichbar mit Tensor-Cores in NVIDIA-Grafikkarten.