Warum hat der A12X-Prozessor von Apple bessere Benchmark-Ergebnisse als der i7-4790T?

1213
John Rennie

In meiner Workstation habe ich einen Intel i7-4790T, von dem ich immer dachte, dass er eine ziemlich schnelle CPU ist. Laut Geekbench 4 schlägt der Apple A12X-Prozessor im neuen iPad Pro jedoch bequem. Wenn ich Geekbench 4 betreibe, bekomme ich eine Single-Core-Geschwindigkeit von etwa 4.000, aber beim neuen iPad Pro erzielt der A12X-Prozessor etwa 5.000, dh 25% schneller. Tatsächlich erzielen sogar die A12 und A11 mehr Punkte als mein i7-4790T . Beim Multicore-Test erzielt meine CPU einen Farbwert von über 11.000, während der A12X 18.000 erreicht, was um 60% schneller ist.

Eine vorläufige Frage ist, ob Geekbench ein zuverlässiger Indikator für die Geschwindigkeit in der realen Welt ist. Zum Beispiel betone ich bei meiner CPU wirklich nur das Video-Resampling mit Handbrake . Handbrake ist nicht für IOS verfügbar. Wenn man jedoch davon ausgeht, dass es portiert wurde, würde Handbrake die Videos auf dem A12X tatsächlich um 60% schneller verarbeiten, oder ist der Geekbench-Wert nicht repräsentativ für die Leistung der realen Welt?

Aber meine Hauptfrage lautet: Abgesehen davon, wie der A12X und meine CPU miteinander verglichen werden, wie hat Apple es geschafft, einen ARM-basierten RISC-Chip so schnell zu machen? Welche Aspekte der Architektur sind für die hohe Geschwindigkeit verantwortlich?

Ich verstehe RISC-Architekturen so, dass sie weniger pro Taktzyklus ausführen, aber aufgrund ihres einfachen Designs mit höheren Taktraten arbeiten können. Der A12X läuft jedoch mit 2,5 GHz, während mein i7 eine Basisgeschwindigkeit von 2,7 GHz hat und bei Single-Core-Lasten auf 3,9 GHz ansteigen wird. Wenn mein i7 mit 50% höheren Taktgeschwindigkeiten als der A12X läuft, wie schafft es der Apple-Chip, ihn zu schlagen?

Von dem, was ich im Internet finden kann, hat der A12X für meinen i7 viel mehr L2-Cache, 8 MB vs. 256 KB (pro Kern), also ist das ein großer Unterschied. Aber macht dieser zusätzliche L2-Cache wirklich einen großen Unterschied für die Leistung?

Anhang: Geekbench

Der Geekbench-CPU-Test beansprucht nur die CPU und die CPU-Speichergeschwindigkeiten. Die genaue Vorgehensweise von Geekbench ist in diesem PDF (136KB) beschrieben . Die Tests scheinen genau die Dinge zu sein, die wir tun, die viel CPU erfordern, und es scheint, als wären sie tatsächlich repräsentativ für die Leistung der Handbremse, die ich als Beispiel vorgeschlagen habe.

Die detaillierte Aufschlüsselung der Geekbench-Ergebnisse für meinen i7-4790T und den A12X ist:

Test i7-4790T A12X Crypto 3870 3727 Integer 4412 5346 Floating Point 4140 4581 Memory Score 3279 5320 
6

2 Antworten auf die Frage

11
harrymc

Der A12X ist eine enorme CPU, die auf der neuesten Technologie basiert und den älteren i7-4790T von 2014 weit hinter sich lässt.

Der erste Unterschied ist der Herstellungsprozess: Der A12X ist ein 7-nm-Chip, während der Haswell-DT i7-4790T auf älteren 22-nm-Sensoren basiert. Kleinere Transistoren bedeuten weniger Platz, weniger Betriebsleistung und schnellere Signale über kürzere Chippfade.

Der A12X hat satte 10 Milliarden Transistoren, während der i7-4790T nur 1,4 Milliarden hat.

Dies ermöglicht dem A12X, sechs ganzzahlige Ausführungspipelines zu haben, darunter zwei komplexe Einheiten, zwei Lade- und Speichereinheiten, zwei Zweigports und drei FP / Vektor-Pipelines, was insgesamt geschätzte 13 Ausführungsports ergibt, die weit über den acht liegen Ausführungsports der Haswell-DT-Architektur.

Für die Cachegröße haben wir pro A12 einen Kern: Jeder Big-Core hat einen L1-Cache von 128kB und einen L2-Cache von 8MB. Jeder Little-Core hat 32 kB L1 und 2 MB L2. Es gibt auch zusätzliche 8 MB SoC-weite $ (auch für andere Zwecke verwendet).

Die Haswell-Architektur verfügt über einen L1-Cache von 64 KB pro Kern, einen L2-Cache von 256 KB pro Kern und einen L3-Cache von 2–40 MB (gemeinsam genutzt).

Es ist ersichtlich, dass der A12X den i7-4790T in allen Punkten und mit großem Abstand übertrifft.

Was die Architektur von RISC im Vergleich zu CISC angeht, ist dies bei modernen Prozessoren ein umstrittener Punkt. Beide Architekturen haben sich so weit entwickelt, dass sie nun die Merkmale des jeweils anderen nachahmen, um Schwächen abzumildern.

Ich zitiere hier das Vergleichsdiagramm zu Xeon 8192, i7 6700k und AMD EPYC 7601-CPUs, zusammengestellt von Reddit (Link unten), wobei der A12 selbst mit Desktop-Prozessoren gut vergleichbar ist:

Bild

Quellen:

TSMCs 7 nm ist vergleichbar mit Intels 10 nm, so dass "nur" ein Vorsprung von zwei Prozessen ist. RISC / CISC macht einen merklichen Unterschied in der Mikroarchitektur. Ein RISC hätte keinen Mikrocode-Cache mit wesentlich verbrauchten Befehlen (~ 90 Bit pro Operation vs. ~ 38 Bit pro Befehl mit signifikanter Vordecodierung in einem RISC-Icache), um die Dekodierlatenz / Energie zu reduzieren. Die zusätzlichen Register können die Leistung um 1-2% steigern. Diese RISC-Vorteile sind im Vergleich zur Mikroarchitektur klein und im Vergleich zur Prozesstechnologie klein, aber nicht Null. Paul A. Clayton vor 5 Jahren 1
@ PaulA.Clayton Die moderne Debatte über RISC / CISC ist nutzlos. ARM-CPUs verwenden seit langem Mikrocode. RISCs haben mehr Register, nur weil sie nicht auf Speicher in normalen Anweisungen zugreifen können. CISC-CPUs können aufgrund des Umbenennens von Registern intern Hunderte von Registern enthalten. Und woher bekommst du die 90 und 38 Bits? Die durchschnittliche Länge von x86-Befehlen (https://www.strchr.com/x86_machine_code_statistics) beträgt nur [mehr als 2 Byte] (http://lkml.iu.edu/hypermail/linux/kernel/0507.3/1736). html) phuclv vor 5 Jahren 0
@phuclv, Intel-Prozessoren haben Mikrocode verwendet, seitdem die ARM-Architektur in Benutzergeräten vorhanden war. Der Mikrocode wurde nach dem Pentium-Fehler implementiert. Wie beim CISC / RISC verarbeitet der Intel-Mikrocode die CISC-Anweisungen intern zu mehreren RISC-Anweisungen und leitet sie weiter. Strom vor 5 Jahren 0
Danke für das Hinzufügen der Quellen! Albin vor 5 Jahren 0
0
Claris

Sie vergleichen sehr unterschiedliche Architekturen zwischen dem A12X und dem Haswell (Intel i7-4790T), und die Benchmark-Zahlen sind nicht direkt vergleichbar, da die beiden Prozessoren nicht direkt vergleichbar sind.

Zu verstehen, was ein bestimmter Test testet, ist hilfreich, wenn Sie versuchen zu verstehen, was die Zahlen bedeuten. Beginnen wir mit Ihrem Geek-Bench-Test in der letzten Zeile.

Nach Ihren GeekBench-Tests ist die Speicherbandbreite zwischen dem A12X und dem haswell-Chip stark verzerrt. Der A12X hat ungefähr die doppelte Speicherleistung. Während Speichertests normalerweise zwei nicht miteinander verwandte Elemente, Latenz und Bandbreite, miteinander verbinden, ist der A12X der klare Gewinner.

Der nächste Punkt ist die Gleitkomma-Leistung. Dieser Test versucht, handoptimierten Code zwischen verschiedenen Architekturen zu vergleichen. Die Anzahl kann durch die Qualität der Optimierungen verzerrt sein, sollte aber der Gesamtleistung der FPU einen guten Platz einräumen und ist direkt vergleichbar. Hier haben die beiden Prozessoren ähnliche Ergebnisse.

Der am wenigsten hilfreiche Test ist der als Ganzzahl bezeichnete Test. Es ist keine ganzzahlige Leistung im arithmetischen Sinne, es ist vielmehr eine Sammlung allgemeiner Workloads, die nicht zu FPUs gehören. Diese Tests sind insofern von Bedeutung, als sie die Anwendungsleistung auf einer Plattform zeigen. Sie sagen jedoch nicht, dass Prozessor A besser ist als Prozessor B, da er etwas von der Speicherleistung abhängt.

Der letzte ist die Crypto-Arbeitslast. Dies ist abstrakt sinnvoll, auch wenn der jeweilige Test wahrscheinlich nicht so nützlich ist. Hochleistungs-Krypto sollte AES-GCM verwenden, nicht AES-CTR. Letzteres eignet sich nicht für die Hardwarebeschleunigung. Dies ist auch ein domänenspezifischer Benchmark.

Wenn ich versuchen würde, etwas Scharfes über diese Zahlen zu sagen, versuchen wir es einmal.

  • Der A12X hat die Speicherbandbreite erheblich verbessert. Dies liegt zum Teil daran, dass der Desktop-Speicher hinter den damaligen Speichertechnologien zurückbleibt, aber auch, weil sich die Speicherleistung in fünf Jahren verbessert hat.
  • Der A12X hat eine etwas bessere FPU-Leistung pro Kern als der i7-4790T.
  • Der A12X führt generische Arbeitslasten aus, die denen des i7-4790T ähneln oder schneller sind.
  • Der A12X ist bei domänenspezifischen Arbeitslasten viel besser, da er Hardwareunterstützung für neue und andere Anweisungen bietet, die den Anforderungen eines Tablets / Zellgeräts besser entsprechen.

Aufgrund dieser Zahlen größere Schlussfolgerungen zu ziehen oder architektonische Ansprüche basierend auf diesen Zahlen zu machen, ist wahrscheinlich unklug.

Bei einem Vergleich der generischen Architektur ist RISC vs. CISC nicht mehr von Bedeutung, da beide Befehlssätze in Micro-Ops dekodiert werden, die die Verteilung der Arbeitslast bestimmen. Ein Vergleich von rein auf Ausführungsports basierenden Vergleichen ist wahrscheinlich nicht besonders sinnvoll, da es sich hierbei um Bausteine ​​auf hoher Ebene handelt, die nicht direkt vergleichbar sind.

Cache ist eine wichtige Größe, die direkt zur Prozessorleistung beiträgt, ist aber auch sehr kompliziert. Wie der Cache von der Intel-Architektur und dem A12X gemeinsam genutzt wird, ist völlig anders. Im Allgemeinen ist mehr Cache besser, aber ebenso wichtig ist die Cache-Kohärenz, die sich darauf auswirkt, wie Thread-Anwendungen Daten zwischen Cores gemeinsam nutzen können.

Schließlich muss der Prozessor für Ihre Workload arbeiten. Während der A12X möglicherweise in der Lage ist, Desktop-Workloads zu einem späteren Zeitpunkt zu unterstützen, wird dies vom i7 v4 jetzt unterstützt. Dies macht ihn zu einer überlegenen Wahl für einen Desktop-Prozessor, auch wenn er vier bis fünf Jahre älter ist als der A12X.