Intel-C++-Compiler: Optimaler Code für den Prozessor

Auch auf AMD-Prozessoren bringt also der Intel-Compiler fast immer Performancevorteile gegenüber dem Microsoft-Compiler, jedoch fallen diese deutlich geringer aus, als auf Intel-Prozessoren. Dies liegt daran, dass Microsoft AMD64-optimierten Code erlaubt. Verwendet man AMD64-optimierten Code, so fällt Microsoft nicht ganz so weit in der Performance zurück, wie mit EM64T-optimierten Code.

Überraschend ist diesem Zusammenhang auch das Ergebnis, wenn man für den falschen Prozessortyp optimierten Code verwendet. In der Scimark-Gesamtwertung
ist AMD64-optimierter Code auf Intel-Prozessoren etwa 25 Prozent langsamer. EM64T-optimierter Code ist dagegen auf AMD-Prozessoren nur 5,5 Prozent langsamer.

Muss man sich zwischen den beiden Optimierungen entscheiden, so sollte also nicht nur wegen des höheren Marktanteils von Intel der EM64T-optimierte Code verwendet werden. Der Test zeigt, dass AMD-Prozessoren generell wesentlich besser mit schlecht optimiertem Code, der in der Praxis relativ häufig zu finden ist, umgehen können.

Deutlich wird auch, dass man sich vor „Überoptimierungen“ schützen muss. Der Scimark beinhaltet so gut wie keine Aufgabenstellung, die typisch für SSE3 und SSSE3 ist, mit dem Ergebnis dass der SSE3-Code 0,5 Prozent bis 1,4 Prozent langsamer ist. SSSE3 führt wiederum zu einer Steigerung der Geschwindigkeit von 0,32 Prozent. Der Verzicht auf SSE3 zugunsten der Kompatibilität mit allen 64-Bit-Prozessoren ist hier also dringend angeraten.

Komplexer sind die Ergebnisse in der 32-Bit-Welt. Anders als in der 64-Bit-Welt kann nicht von SSE2 als Minimum-Standard ausgegangen werden. Benötigt man Unterstützung für Intels Pentium 3, den man heute noch in vielen Tablet-PCs findet, so muss man mit SSE Vorlieb nehmen.

Für Prozessoren aus der Generation Pentium 2 und Pentium Pro gibt es die Möglichkeit auch ganz ohne SIMD-Befehle auszukommen. Macht man von dieser Möglichkeit Gebrauch, um eine möglichst hohe Kompatibilität zu erreichen, so heißt der Sieger klar Microsoft.

Bei reiner Verwendung der 80×87-FPU-Befehle liegt der Microsoft-Compiler zwischen 4,7 Prozent (Pentium 4) und 11,7 Prozent (Athlon) vor Konkurrent Intel. Dabei ist interessant, dass auf dem Athlon 80×87-FPU-Befehle schneller ausgeführt werden, als SIMD-Befehle. Zusätzlich bekommt man noch den Vorteil einer höheren Genauigkeit, da die 80×87-Register intern mit 80-Bit arbeiten, anstelle von 64-Bit bei den XMM-Registern.

Dass AMD bei den 80×87-Instruktionen schneller ist als Intel, ist kein Geheimnis. Üblicherweise erreicht man aber auch bei AMD-Prozessoren mit SSE2 eine höhere Geschwindigkeit. Der Scimark 2 stellt hier eine Ausnahme da.

Page: 1 2 3 4 5 6 7 8

ZDNet.de Redaktion

Recent Posts

Magento-Agentur für große Webshops: Was sollte die Magento-Agentur leisten können?

Magento zählt zu den führenden Shopsystemen in der Welt. Es punktet mit hoher Flexibilität und…

2 Wochen ago

Trojaner tarnt sich als AutoCAD

SteelFox gelangt über angebliche Cracks für kostenpflichtige Anwendungen auf die Rechner seiner Opfer. Betroffen sind…

2 Wochen ago

Ymir: Ransomware mit ausgeklügelter Verschleierung

Ymir nutzt fortschrittliche Verschleierungsmethoden. Sie verschlüsselt bestimmte Dateien auf einer Whitelist nicht, um einer Entdeckung…

2 Wochen ago

Fünf auf einen Streich: Baseus Nomos 5-in-1 Desktop Charger Qi2 140W

Das weltweit erste 5-in-1-Tischladegerät mit kabelloser Qi2-Aufladung und einziehbarem Kabel.

2 Wochen ago

RansomHub hebt Datenerpressung auf höhere Stufe

RansomHub kann per Fernverschlüsselung über ein einziges ungeschütztes Endgerät Daten im gesamten Netzwerk verschlüsseln.

2 Wochen ago

Shokz OpenRun Pro 2: Die perfekte Kombination aus Knochenschall und Air-Conduction Technik

Die neuen OpenRun Pro 2 von Shokz sind die neueste Weiterentwicklung der beliebten offenen Sportkopfhörer.…

2 Wochen ago