Einfluss des L3-Cache auf die Leistung – lohnt sich ein Dualprozessorsystem?

Einfluss des L3-Cache auf die Leistung – lohnt sich ein Dualprozessorsystem?

Ich werde ein neues High-End-System kaufen und möchte ein besseres Gefühl dafür bekommen, ob ein Dual-Prozessor-Xeon-System (ich interessiere mich für den neuen High-End-Xeon E5-2687W) aufgrund der Verdoppelung des L3-Cache (20 MB pro CPU) realistisch gesehen eine spürbare Leistungssteigerung bieten könnte.

(Zusätzlich kommt noch der gelegentliche Vorteil durch die Verdoppelung der Kerne und des RAM hinzu.)

Mein Nutzungsszenario sieht ungefähr so ​​aus: Ich habe ständig viele Anwendungen im Hintergrund laufen – 3 oder 4 Anwendungen zur Datenkomprimierung/-sicherung, einen Webserver mit geringer Auslastung, ein oder zwei virtuelle Maschinen zu einem bestimmten Zeitpunkt (normalerweise ziemlich im Leerlauf) und vielleicht 20 Dienstprogramme, die einen merklichen (aber kleinen) Teil der CPU-Kerne nutzen. Wenn ich den Computer nicht aktiv verwende, werden insgesamt etwa 25 % der gesamten CPU-Leistung in meinem aktuellen i7-970 6-Core-System (12 Threads) genutzt.

Bei Routinearbeiten liegt die CPU-Auslastung oft über 50 % und erreicht gelegentlich 75–80 %.

Der Xeon E5-2687W ist nicht nur ein i7 der zweiten Generation (sollte also die Leistung verbessern), sondern hat auch 8 Kerne (16 Threads) statt 6 Kerne. Aus diesem Grund erwarte ich, dass ich noch seltener in den 75 % CPU-Bereich stoße. Nichtsdestotrotz ist die Möglichkeit, die Kerne und den RAM zu verdoppeln, eine Überlegung wert.

Letztendlich glaube ich jedoch, dass diese Entscheidung davon abhängt, ob die Verdoppelung des L3-Cache eine spürbare Verbesserung bringt. Es gibt viele Benchmarks und viele Diskussionen zur CPU-Leistung. Ich finde jedoch sehr wenig Diskussionen zur L3-Cache-Auslastung und wie sich eine Erhöhung des L3-Cache (z. B. eine Verdoppelung mit Dual-Prozessoren) auf die Leistung auswirkt.

Beispiel: Wenn es nurzweiProzesse laufen, aber jeder profitiert von einem großen L3-Cache (wie es zum Beispiel bei Hintergrundprozessen der Fall sein kann, die das Dateisystem häufig scannen). Vielleicht könnte sich die Gesamtsystemleistung mit zwei CPUs merklich verbessern – selbst wenn auf jeder CPU nur ein einziger Kern aktiv ist –, weil jeder Prozess über den doppelten effektiven L3-Cache verfügt.

Ich hoffe, dass jemand eine Vorstellung davon hat, welche Vorteile eine Erhöhung (oder Verdoppelung) der L3-Cache-Größe mit sich bringt.

Hinweis: Die CPU, die ich in Betracht ziehe (der Xeon E5-2687W), hat 20 MB L3-Cache, ein System mit zwei CPUs hätte also 40 MB L3-Cache.

Antwort1

Wie immer bei Fragen zum Caching lautet die Antwort: „Das hängt ganz von Ihrer Arbeitslast ab.“ Der Cache ist nur dann von Nutzen, wenn Ihre laufenden Prozesse viel Zeit mit dem Zugriff auf den Speicher verbringen.Undweisen eine merkliche Referenzlokalität für die Speicheradressierung auf (und sind aus diesem Grund mit den kleineren L1/L2-Caches pro Kern nicht zufrieden).

Wenn viele Prozesse in unterschiedlichen Threads laufen, erhöht sich die Wahrscheinlichkeit einer Überlastung des gemeinsamen Caches und verringert somit Leistungssteigerungen, die möglicherweise andernfalls erzielt worden wären. Dies ist auch der Grund dafür, die Cachegröße mit einer erhöhten Kernanzahl zu erhöhen – je mehr Threads laufen, die um den Arbeitsspeicher konkurrieren, desto größer muss Ihr gemeinsamer Cache wahrscheinlich sein, um überhaupt nützlich zu sein.

Es gibt einen älteren Artikel vonToms HardwareVergleich zweier alter P4-Chips mit und ohne L3-Cache für eine Reihe von Rendering-/Grafik-Workloads. Die Zahlen sind Mist, wie auch der gesamte Benchmark, aber er enthält eine nette Erklärung der Caching-Architektur im Allgemeinen und des L3-Cachings im Besonderen.

Unterm Strich: Sie würden den Unterschied wahrscheinlich nicht bemerken, aber wenn Sie die genauen Zahlen benötigen, müssten Sie beide CPUs kaufen und Ihre Arbeitslast auf beiden ausführen, um die Laufzeiten vergleichen zu können.

Antwort2

Leute, die sagen „nur 20 MB mehr L3-Cache“, wissen einfach nicht, wovon sie reden. Eine sinnvolle Erhöhung der Cachegröße für eine bestimmte Architektur führt wahrscheinlich zu einer sinnvollen Leistungssteigerung, selbst bei durchschnittlicher Belastung. Dies gilt umso mehr, wenn man an die Turbo-Boost-Architektur denkt, die in Sandy-Bridge- und Ivy-Bridge-Prozessoren implementiert ist.

Ich hatte die Gelegenheit, dies in mehreren verschiedenen Phasen der x86/x86_64-Architektur selbst auszuprobieren: Sempron vs. Athlon, Celeron vs. Pentium 4, Pentium4 vs. Athlon, Pentium4-m vs. Pentium-m, Pentium 4 vs. Xeon, i7 vs. Xeon E5. Immer wenn der Cache größer ist (normalerweise doppelt oder fast doppelt so groß).

Ob die Kosten für eine Verdoppelung des Caches erschwinglich sind, müssen Sie selbst entscheiden. Aber Xeon bietet mehr Stabilität, da sie ECC-Speicher und solche Technologien unterstützen, die für bestimmte Anwendungen (wie 3D-Simulationen für Aluminiumdruckguss, wie in meinem Fall) offensichtlich unverzichtbar sind.

Antwort3

Aus Ihrer Beschreibung dessen, was Sie tun und wie Ihr aktuelles System damit umgeht, kann ich nur rätseln, warum Sie es ersetzen möchten. Bestenfalls würde der L3-Cache eine geringfügige Verbesserung bringen, allerdings zu einem hohen Preis. In Ihrem beschriebenen Anwendungsfall können Sie jedoch keinen Unterschied erwarten, wenn Sie den L3-Cache nur um 20 MB vergrößern.

verwandte Informationen