NEON, Matrix, GPU- und Neuralkerne: Koprozessoren sparen Energie
Seitdem Apple die in Eigenentwicklung entstandenen Prozessoren in Laptops und Desktops verbaut, dürfen sich Mac-Anwender über einen deutlichen Leistungssprung gegenüber den bisherigen Rechnern mit Intel-Prozessoren freuen. Nutzer mobiler Macs begeistert obendrein die Effizienz: Die neue Prozessorarchitektur führt dazu, dass Macs mit einer Akkuladung viel länger durchhalten. Das MacBook Air, Verkaufsschlager und Einstiegsgerät, kommt seit dem Umstieg auf M-Prozessoren sogar ohne Lüfter aus. Wie Apple das aber hinbekommt, blieb bisher Betriebsgeheimnis. Howard Oakley, Apple-Veteran und unabhängiger Entwickler, analysierte in einer Artikelreihe die einzelnen Komponenten. Seine
neueste Erkenntnis: Apple Silicon nutzt Koprozessoren, um den durchschnittlichen Stromverbrauch gering zu halten.
Je nach Prozessormodell und -Generation verfügen die M-SoCs über eine unterschiedliche Zahl an Koprozessoren. Eine Recheneinheit für Vektorberechnungen (NEON) etwa sitzt in jedem Prozessorkern. Die für KI-Berechnungen prädestinierten Neuralkerne (ANE) und die Grafikkerne (GPU) sind separat auf dem SoC angeordnet. Über einen weiteren Rechenspezialisten verliert der Hersteller hingegen kaum ein Wort: den Matrix-Koprozessor (AMX). Er ist, ebenso wie der L2-Cache, einer Prozessorkerngruppe zugeordnet. Somit enthalten M-Prozessoren einen AMX pro vier Prozessorkernen (beziehungsweise sechs in M3 Pro & Max). Ein Vorteil von Koprozessoren ist ihr Ruhezustand, so Oakley: Ungenutzt verbrauchten sie sehr wenig bis gar keine Energie.
Der Mac entscheidet selbst, wohin die Reise gehtEs ist nicht leicht, Koprozessoren direkt eine Aufgabe zuzuweisen. Im Allgemeinen entscheidet ein Apple-Silicon-Mac, welche Berechnung wo am besten aufgehoben ist. App-Entwickler können die Auswahl nur bedingt beeinflussen: Um NEON-Koprozessoren anzusprechen, ist Assembly-Code notwendig; einfacher, aber indirekter gelingt es über Apples Accelerate-Bibliothek. Über diese führt auch der einzige Weg zum AMX. Um Aufgaben direkt an die GPU-Kerne zu delegieren, muss man eigene Metal-Shader programmieren. Die Neuralkerne erreichen Entwickler über CoreML.
Selbst beobachten per powermetricsUm den Energieverbrauch zu beobachten, nutzte Oakley das Kommandozeilen-Tool "powermetrics". Führt man es mit vorangestelltem sudo aus, zeigt das Fenster aktuelle Energieaufnahme- und Frequenzwerte an. Alternativ lassen sich die aktuellen Messwerte in eine Datei schreiben, beispielsweise im plist-Format. Versierte Kommandozeilennutzer installieren das Kommandozeilen-Tool "
asitop" über die Paketverwaltung
Homebrew (sie lädt eigenständig die notwendigen Pakete, unter anderem Python 3.12). Ruft man es danach mit dem Befehl "asitop" in der Kommandozeile auf, füllen Balkengrafiken und Verlaufsdiagramme das Terminal-Fenster.
Ausgabe des Kommandozeilen-Tools "powermetrics" beim Ausführen einer Audiotranskription (links) und ohne besondere Aufgaben (Mitte), daneben das optionale Tool "asitop" (rechts).