Knockout: Intel Xeon 5160 deklassiert AMD Opteron

Analyse Floating-Point

Die Floating-Point-Anwendungen der SPEC-CPU2000-Benchmark-Suite sind wesentlich speicherintensiver als die Integer-Tests. Je größer der Cache, desto besser können „langsame“ Speicherzugriffe abgepuffert werden. Bei einigen sehr speicherintensiven Programmen nutzen allerdings selbst große Caches nur noch wenig – dann zählt die Speicherbandbreite. Dies wird bei der sehr speicherintensiven Flachwasser-Simulation 171.swim zur Berechnung finiter Wasserelemente deutlich. Der Xeon 5160 mit 4 MByte L2-Cache arbeitet hier kaum schneller als der Xeon 5080 mit 2 MByte L2-Cache (der Cache des zweiten Core bleibt hier ungenutzt).

Beide CPUs profitieren aber von den vier FB-DIMM-Channels der Bensley-Plattorm. Bei der Anwendung 171.swim liest die CPU in einem 1335 x 1335 großen Daten-Array eine Vielzahl von Datenblöcken im Burst-Modus aus dem Speicher. Hohe Latenzzeiten fallen hier kaum ins Gewicht, es zählt die Speicherbandbreite. Die Opterons ziehen aus ihrem schnellen integrierten Speicher-Controller ebenfalls Gewinn, müssen Dempsey und Woodcrest aber dennoch ziehen lassen.

In Fällen wie der Bilderkennung 179.art arbeitet der Xeon 5160 sogar 126 Prozent schneller als der 3,73-GHz-Dempsey. Der Workload der Anwendung passt hier überwiegend in den 4 MByte großen Shared L2-Cache – der 2 MByte große Puffer des Xeon 5080 reicht nur noch partiell aus. Die Opterons mit ihrer L2-Cache-Größe von 1 MByte (pro Core) fallen noch weiter zurück.

Bei allen Floating-Point-Anwendungen der CPU2000-Benchmark-Suite wird aber unabhängig von der Workload-Größe die hohe SSE-Performance des Woodcrest deutlich. So wird bei NetBurst eine 128 Bit breite SSE-Instruktion beim Dekodieren in zwei 64-Bit-Micro-Ops aufgeteilt. Der Datenpfad in die SSE-Execution-Unit besitzt ebenfalls eine Datenbreite von nur 64 Bit. Somit werden für die Ausführung eines 128-Bit-SSE-Befehls zwei Taktzyklen benötigt.

Die Core-Architektur des Woodcrest besitzt dagegen einen durchgehenden 128-Bit-Ausführungspfad. Damit muss nur ein einziger Micro-Op erzeugt, geordnet und ausgeführt werden. Die Berechnung eines SSE-Befehls in der entsprechenden Ausführungseinheit erfolgt in einem Taktzyklus. Damit verdoppelt sich die SSE-Performance. Beispielsweise kann Core auch einen 128-Bit Packet Multiply, 128-Bit Packed Add, 128-Bit Packet Load, 128-Bit Packed Store und einen Macro-Fusion-Befehl „cmp & jcc“ zusammen in einem Taktzyklus berechnen.