M1: Wie schnell sind eigentlich die Energiesparkerne?
Schon seit Längerem setzt Apple bei den Apple-A-Chips auf asymmetrische Kerne (AMP, Asymmetric Multiprocessing). Dies bedeutet, dass mehrere Prozessoren oder Kerne zusammenarbeiten, welche nicht identisch sind. Bis zu der Einführung der M1-Macs waren alle Macs mit identischen Kernen oder Prozessoren ausgestattet – der M1 war der erste Chip in einem Mac, welcher mit unterschiedlichen Kernen daher kam.
Feuer und EisMacs und iOS-Geräte erledigen im Hintergrund viele Aufgaben, welche nicht zeitkritisch sind – so zum Beispiel der Upload und Download von iCloud-Daten oder das Abrufen von neuen E-Mails. Der M1 bringt zwei unterschiedliche Kern-Arten mit: Die vier Firestorm-Kerne sind auf Performance getrimmt, die vier Icestorm-Kerne auf Energieeffizienz. Erledigt der Mac nun eine nicht zeitkritische Hintergrundaufgabe, verwendet er hierfür die Icestorm-Kerne. Wartet der Nutzer auf die Erledigung einer Aufgabe, kommen die schnelleren Firestorm-Kerne zum Einsatz.
Apple dokumentiert nichtsLeider lässt sich Apple weder bei den A- noch bei den M-Chips in die Karten schauen: Nur durch geschicktes Reverse-Engineering wurde Genaueres bekannt – wie zum Beispiel
Details zur Mikroarchitektur, welche Dougall Johnson veröffentlichte. Johnson erklärt hier, wie sich einzelne Instruktionen auf den Firestorm- oder Icestorm-Kernen verhalten.
Wie schnell sind die Icestorm-Kerne?Doch wie sehr unterscheiden sich die Firestorm- von den Icestorm-Kernen – und besonders: Wie schnell sind sie? Dieser Frage ging
eclecticlight.co nach und hat mit einem recht simplen Test gemessen, um wie viel Prozent die Icestorm-Kerne hinterherhinken. Dazu verwendete die Webseite vier Ansätze zur Errechnung des Skalarprodukts/Punktprodukts: "Von Hand" in Assembler programmiert mit SIMD-Befehlen (Single-Instruction, Multiple-Data), in Swift mit Apples SIMD-Bibliothek, einfache und unoptimierte Schleife in Swift und einen optimierteren Ansatz in Swift mit
map und
reduce. Relativ zu den Firestorm-Kernen arbeiteten die Energiesparkerne um folgende Prozentangaben langsamer (100 Prozent würde bedeuten, die Kerne wären gleich schnell – 200 Prozent bedeutet doppelt so langsam/halb so schnell):
- 190 Prozent beim Ausführen der Assembler-Variante
- 330 Prozent beim Ausführen mittels der SIMD-Bibliothek in Swift
- 280 Prozent beim Ausführen der einfachen und umoptimierten Swift-Schleife
- 550 Prozent beim Ausführen des optimierten Swift-Ansatzes mit map/reduce
In einem vorherigen Test hat eclecticlight.co bereits gemessen, wie sich die Firestorm- und Icestorm-Kerne beim Komprimieren von Daten schlagen: Hier war die relative Performance mit 717 Prozent schlechter Errechnen des Skalarproduktes.
Deutlich weniger EnergieSchaut man sich die obigen Werte an, hat es den Anschein, als seien die Icestorm-Kerne lahme Schnecken. Doch betrachtet man die Performance in Relation zum Energieverbrauch, wird deutlich, dass der Einsatz dieser Kerne sehr lohnend ist:
Maynard Handley berichtete, dass die Icestorm-Kerne nur 25 Prozent der Energie der Firestorm-Kerne benötigen. Für nicht zeitkritische Hintergrundprozesse oder kontinuierliche Aufgaben, welche nicht die Geschwindigkeit der Firestorm-Kerne benötigen, sind die Icestorm-Kerne eine sehr gute Wahl, da deutlich weniger Energie benötigt wird und somit auch weniger Abwärme entsteht.