Die C++-Compiler von Microsoft und Intel leisten ihre Dienste vor allem hausintern beim Hersteller. Microsoft C++ wird für die Entwicklung von Microsofts gesamter Produktpalette eingesetzt und Intel C++ für Tests und Benchmarks von neuen Prozessoren. Dementsprechend unterschiedlich sind die Zielsetzungen der beiden Compiler.
Microsoft ist im Wesentlichen daran interessiert, dass der generierte Code auf allen Systemen im Markt performant läuft. Diese erstrecken sich heute hauptsächlich vom Pentium-III-basierten Tablet-PC bis zum 32-Core-Multiprozessorsystem der Xeon-7300-Serie.
Intel kommt es in erster Linie darauf an, die Leistungsfähigkeit neuer Prozessoren zu optimieren und zu demonstrieren. Der Compiler spielt eine wichtige Rolle im Entwicklungsprozess für neue Prozessor-Modelle.
In der Regel läuft x86- und x64-Code auf jedem Intel- oder AMD-Prozessor. Doch die Performance ein und desselben Codes hängt stark vom Prozessormodell ab.
Allein das Verändern der Prozessor-Taktrate über den Multiplikator bei ansonsten identischen Prozessoren kann dazu führen, dass Code verändert werden muss, um optimale Performance zu erzielen. Denn bei einer höheren Taktrate wird zwar der Cache, aber nicht der RAM schneller, und damit fällt die Penalty eines Cache-Miss höher aus.
Ein einfaches Beispiel hierfür ist schnell gefunden. Benötigt man die Quadratwurzel einer Zahl zweimal, so kann es schneller sein, sie zweimal zu berechnen, als sie einmal zu berechnen und dann im RAM abzulegen und später wieder auszulesen. Liegt zum Beispiel die Taktrate bei 1,8 GHz, ist möglicherweise die zweite Methode besser, da die Berechnung länger dauert, als das Ablegen und wieder Auslesen aus dem RAM. Ist die Taktrate bei 3,6 GHz, halbiert sich die Berechnungszeit, während die Zeit für das Speichern und Auslesen aus dem RAM konstant bleibt.
Neueste Kommentare
Noch keine Kommentare zu Intel-C++-Compiler: Optimaler Code für den Prozessor
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.