iX 9/2018
S. 70
Review
Serverprozessoren
Aufmacherbild

Dells PowerEdge R7415 mit AMDs Epyc

Underdog

Dells PowerEdge R7415 ist einer der ersten Server mit AMDs neuer Epyc-CPU. Er glänzt mit hoher I/O-Leistung, bleibt im SPEC-Benchmark aber hinter Intels Xeon zurück.

Nur einmal konnte der ewige Zweite AMD dem Marktführer Intel ernsthaft Paroli bieten. Am 5. Oktober 1999, nur einen Tag nachdem der Itanium als 64-Bit-Nachfolger des x86 das Licht der Welt erblickte, kündigte AMD seine Befehlssatzerweiterung x86-64 an. Opteron und Athlon waren so erfolgreich, dass Intel auf den x86-64-Zug aufspringen musste. Itanium fristet mittlerweile ein Nischendasein, während Intels Xeon auf Basis des einst konkurrierenden Befehlssatzes den Servermarkt dominiert – ein Markt, in dem AMD-Prozessoren kaum eine Rolle spielen. Mit Epyc soll sich das ändern. Die Serverprozessoren basieren auf der Zen-Architektur und erscheinen inzwischen in ersten Servern. Als Testmaschine dient Dells PowerEdge R7415, ein Rack-Einschubserver in doppelter Höhe, der mit einer Epyc-7551P-CPU ausgestattet ist und zeigen soll, ob er AMDs Versprechungen einlösen kann.

AMD argumentiert mit drei Vorteilen gegenüber der Xeon-Konkurrenz: mehr Kerne und Interfaces auf dem Chip, sodass teure 2-Sockel-Systeme überflüssig sind, höhere Leistung und mehr Sicherheit, unter anderem durch ein Verschlüsseln des Hauptspeichers. Die 7551P-CPU beherbergt 32 Kerne, 64 Threads und bietet eine Basisfrequenz von 2 GHz. Das System-on-a-Chip-Design (SoC) beeindruckt, denn es vereint eine dreistufige Cache-Architektur mit 64 MiB L3-Cache, acht DDR4-, 128 PCIe-3.0- und 16 USB-3.1-Kanälen auf einem Chip. Dell nutzt die vielen PCIe-Kanäle und bietet neben dem hauseigenen RAID-Controller die Option, NVMe-SSDs direkt mit der CPU zu koppeln und so Höchstwerte beim I/O zu erzielen.

Alles auf einem Chip

Mit Zen hat AMD den x86-64-Kern komplett neu entwickelt. Herausgekommen ist ein Design, das über einen L2-Cache mit 512 KiB mit der Außenwelt kommuniziert. Das Frontend nutzt 64 KiB Level-1-Cache für Instruktionen, die ein Vierwege-Decoder auf sechs Integer- und vier FP/SIMD-Einheiten verteilt und so 168 Integer-Register und 160 FP-Register bedient. Nicht alle Recheneinheiten sind gleichwertig. So stehen auf Integer-Seite zwei Branch-, eine IMUL-, eine IDIV-Einheit zur Verfügung. Zwei FPUs addieren, zwei weitere multiplizieren. Zwei Load/Store-Einheiten bedienen einen L1-Write-Back-Daten-Cache von 32 KiB.

Wie im Legoland: Vier Kerne bilden einen Knoten mit L3-Cache, zwei Knoten teilen sich Speicher und PCIe. Vier davon bilden eine 7551P-CPU, genannt Naples (Abb. 1).
Einige NUMA-Knoten müssen mehr als andere arbeiten. P#2 treibt Ethernet-Adapter und Erweiterungskarten, P#3 die SSDs (Abb. 2).

Vier Zen-Kerne teilen sich einen acht MiB großen Level-3-Cache. Zwei dieser Vierereinheiten bilden einen Knoten und sprechen via Datenbus, Scalable Data Fabric genannt, wahlweise über zwei DDR4-, vier PCIe-x8- oder vier USB-3.1-Kanäle mit der Peripherie. Vier dieser Knoten finden sich auf dem Chip der 7551P-CPU wieder (siehe Abbildung 1). Dieses Non-Uniform-Memory-Access-Design (NUMA) zieht nach sich, dass ein gewünschter Speicherinhalt eventuell nicht direkt zugreifbar oder die gewünschte I/O-Einheit nicht direkt adressierbar ist. In diesem Fall tauschen sich die Knoten über jeweils drei Global-Memory-Interconnect-Verbindungen (GMI) aus, was jedoch der Leistung nicht dienlich ist und was das Betriebssystem möglichst vermeiden sollte. Im Fall der Testmaschine bedient NUMA Node#2 die Netzwerkadapter und PCI-Karten-Slots und Node#3 die SSDs, wahlweise direkt oder über den RAID-Controller (siehe Abbildung 2).

Zum Bau eines Servers reicht es im Prinzip aus, der Epyc-CPU reichlich DDR4-Steckplätze zur Seite zu stellen, einige PCIe-Kanäle mit NVMe-SSDs zu verbinden, einen Broadcom-Chip in der Nähe der RJ45-Buchse an einen PCIe-Kanal zu hängen und für Lüfter und Netzteil ins Regal der Standardbauteile zu greifen. Dell geht mit der PowerEdge R7415 diesen einfachen Weg nicht – die Kunden haben sich im Laufe der Jahre an bestimmte Komfortdetails der Server des Herstellers gewöhnt. Dazu gehören der Wartungs-Controller iDRAC und optional der RAID-Controller, genannt PERC P740H.

VerSPECuliert

Auf der Epyc-Webseite wirbt der Hersteller mit der Meldung „AMD Epyc x86 SoC stellt Weltrekord bei SPEC CPU Benchmarks auf“. Bei der Vorstellung des Prozessors versprach CEO Lisa Su eine um 47 Prozent höhere SPEC-Integer-Leistung auf Basis des GCC-6.3-Compilers mit -O2-Optimierung – und dem kleinen Zusatz „estimated“. Inzwischen liegen die ersten Ergebnisse für die 7551P-CPU unter spec.org vor und dürften AMD nicht in Jubelstimmung versetzen.

Im Wartungsmonitor iDRAC kann man die SPEC-Benchmarks am Stromverbrauch identifizieren (Abb. 3).

SPEC-Benchmarks muss das System kompilieren, daher machen sie prinzipiell jede Hardware vergleichbar. In der Praxis wenden Entwickler jedoch viele Optimierungstricks an. Man unterscheidet zwischen Integer- und Floating-Point-Messungen sowie nach rate und speed. Im Fall rate startet die Software mehrere Kopien des Benchmarks parallel, simuliert also einen Multiuser-Betrieb. speed bildet per Multiprocessing einen rechenintensiven Einzelnutzerbetrieb ab. Wird ein Einheitssatz an Optionen verwendet, gelten die Ergebnisse als base. peak zeigt Werte an, bei denen spezielle Compiler-Tricks angewendet werden.