C-Compilier-Maschine: Intel oder AMD?

jal2

Active member
Registriert
7 Sep. 2010
Beiträge
3.709
Hallo,

ich spiele mit dem Gedanken, meinen PC aufzurüsten, damit er in Zukunft grosse Übersetzer-Jobs wie z.B. den Linux-Kernel schneller durchführt. Zur Zeit ist es ein Q6600 mit 4GB RAM.

Lohnt sich dafür die Investition in ein Intel Haswell System oder sollte es eher eine AMD CPU sein? Also z.B. Core i7-4570 (geizhals: ca. 165€) vs. AMD FX-8350 (ca. 170€) vs. AMD A10-6700 (ca. 120€)

Hat jemand einen Link auf Kernel-Übersetzer-Benchmarks mit aktuellen Prozessoren? Hier finde ich keinen Haswell.

BTW, der Übersetzungslauf (Q6600, auf SSD, mit -j 4) vom 3.12rc5 hat gerade 35,5 Minuten gedauert. < 10 Minuten wären schon schön.

EDIT: Der Test oben erfolgte mit dem Konfig-File von Ubuntu 12.04, ohne ccache.

Gruss,
jal2
 
Zuletzt bearbeitet:
Das kommt mir arg langsam vor.

Als ich vor vielen Jahren Kernel selbst gebaut habe riss keiner meiner Maschinen die 1h Marke. Mit neuen PCs landete man knapp unter 10 Minuten und wenn die Compilierzeit bei ca. 40 Minuten ankam wurde ein neuer PC angeschafft der wieder knapp unter 10 Minuten blieb.

Unser IBM Server, 2CPUs, 8 Kerne, 16GB RAM, 15k rpm HDDs blieb beim letzten Test vor vielen Jahren unter einer Minute. Allerdings erinnere ich mich nicht mehr ob nur Kernel Image gebaut wurde oder alles inklusive Module.

Unter normalen Umständen hätte ich vielleicht auf Totswappen getippt weil 4GB RAM für -j 4 zu knapp sein könnte. Nur weiss ich nicht wie stark Swappen auf SSD das System verlangsamt.

Zur Frage kann ich nur ein Fazit in ct sinngemäß wiedergeben:

An der Leistungsspitze ist AMD hoffnungslos abgehängt, ansonsten gilt in etwa gleicher Preis = gleiche (Rechen)Leistung.

Stromsparen macht AMD schlechter, Grafik besser.
 
Von den 3 Genannten Prozessoren wird der FX-8350 der schnellst sein, da 8 Kerne gegenüber den 4 Kernen der anderen beiden.

Für die -j option hab ich irgendwie folgende Formel im kopf: anzahl kerne * 2
D.h. für den Q6600 könntest du bereits -j8 verwenden.
 
Das kommt mir arg langsam vor.

Als ich vor vielen Jahren Kernel selbst gebaut habe riss keiner meiner Maschinen die 1h Marke. Mit neuen PCs landete man knapp unter 10 Minuten und wenn die Compilierzeit bei ca. 40 Minuten ankam wurde ein neuer PC angeschafft der wieder knapp unter 10 Minuten blieb.
Mir kommt es auch langsam vor, vor vier Jahren, als ich den Rechner anschaffte, blieb er AFAIR ohne SSD unter 10 Minuten. Inzwischen ist die Codebasis aber auch gewachsen.


Unter normalen Umständen hätte ich vielleicht auf Totswappen getippt weil 4GB RAM für -j 4 zu knapp sein könnte. Nur weiss ich nicht wie stark Swappen auf SSD das System verlangsamt.
Ich hatte dem Lauf mit "top" zugesehen und kein Swappen festgestellt.

Von den 3 Genannten Prozessoren wird der FX-8350 der schnellst sein, da 8 Kerne gegenüber den 4 Kernen der anderen beiden.
Ja, der verbrät aber auch die meiste Leistung dafür.

Für die -j option hab ich irgendwie folgende Formel im kopf: anzahl kerne * 2
D.h. für den Q6600 könntest du bereits -j8 verwenden.
Das gilt AFAIR nur, wenn die CPU Hyperthreading unterstützt, ist beim Q6600 aber nicht der Fall.

Vielleicht sollte ich mir die Arbeit machen und die Konfiguration des Kernels "ausmisten", ich weiss ja, für welche Maschinen ich übersetze und welche Treiber ich dort brauche. Die Konfiguration von Ubuntu 12.04 zu übernehmen war ja nur die faule Variante.
 
Zuletzt bearbeitet:
Ich hab zuletzt 3.10 und 3.9 mit der Config von Ubuntu 12.04 und 13.04 compiliert. Auf IvyBridge Xeon brauchte ich mit j8 und 32GB RAM gut 20 Minuten, wenn ich mich richtig erinnere.
 
Ich hab zuletzt 3.10 und 3.9 mit der Config von Ubuntu 12.04 und 13.04 compiliert. Auf IvyBridge Xeon brauchte ich mit j8 und 32GB RAM gut 20 Minuten, wenn ich mich richtig erinnere.
Das ist ja auch nicht viel schneller. Welcher der Ivy-Bridge Xeon war das? Ich frage mich auch, ob das Kernel übersetzen eher CPU, IO oder RAM Last erzeugt. Da meine 4GB Maschine nicht swappt, würde ich RAM erst einmal ausschliessen, wobei natürlich mehr Filesystem Buffer den IO hilft. Aber das ist fast einen anderen Thread wert.
 
Der Xeon E3-1275v2 war das.

Wenn ich Zeit habe, probiere ich es demnächst mal mit einem Haswell Xeon (E3-1275v3) aus.
 
Ich frage mich auch, ob das Kernel übersetzen eher CPU, IO oder RAM Last erzeugt.
Da wirst du wohl noch eine Folge top schauen müssen. ;)
Aus dem Bauch heraus würde ich sagen, dass es anfangs IO-lastig zugeht, in der Masse aber eher die ALU gefordert ist.
 
Da wirst du wohl noch eine Folge top schauen müssen. ;)
Aus dem Bauch heraus würde ich sagen, dass es anfangs IO-lastig zugeht, in der Masse aber eher die ALU gefordert ist.

top und iostat. Ich habe sie noch mal beobachtet. Die SSD scheint sich zu langweilen, der Swapbereich wird mit "-j 4" ganz leicht angeknabbert (ca. 50MByte) , obwohl der grösste Teil des RAM für Buffer benutzt wird und die 4 Kerne laufen auf Volllast und verbringen die meiste Zeit im Userspace.
 
Zahl lieber nen paar € mehr für den Xeon auf 1155er Basis der eigentlich nen Core i7 ist ;)

Da zahlste 210€ für oder so und läuft auf allen 1155ern Boards soweit.

http://www.pcgameshardware.de/CPU-Hardware-154106/Tests/Xeon-E3-1230-v2-im-Test-907778/

Dazu nen schickes 1155er Board, 16gb 2133er Ram und das Dingen rockt :)

ICH würde mir zum compilen keinen AMD kaufen .. nicht für diese Kosten.

Meine Compile-Kiste hat 16GB (2133er)-Ram, 8 davon sind im TempFS, darauf compilier ich halt. Zusätzlich rennt der Corei7 zwischen 4,8-5Ghz (je nach Tagesform)

Kostet, gebraucht ggf, nicht die Welt, und schlägt den AMD um längen.

Grüße
 
Zuletzt bearbeitet:
dann hast du doch auch bestimmt aussagekräftige zahlen für uns, oder?
 
Die Erfahrung :)

(zudem gibt es genug Benchmark-Seiten die das aufzählen)

Ich hatte vom AMD K6-2 und dem passenden Intel-Pedanten beidseitig alle Kisten hier.

Über nen Dualcore, zum Core2Duo zum Core2Quad zum Corei7, auf AMD Seite vom Pentium, zum den ersten +-Kisten, über Opterons hin zu x2, Phenoms, PhenomsII und nun auch nen recht aktuellen AMD.

Außer den Opterons, die die Kraft schlichtweg aus bis zu 16 Cores + Hohen Takt, rausholen, ist kein AMD beim Compilen so schnell wie ein Intel.

http://www.hardware.fr/articles/847-8/configurations-tests-logiciels-spec.html

http://www.hardware.fr/articles/847-15/moyennes.html

Auf der letzten Seite sieht man, wenn man gcc base nutzt, das der corei7, bei dem getesteten C++-Code einige % schneller war.

Das deckt sich mit meiner Erfahrung, mein Kernel hier auf der Kiste ist nach wenigen Minuten fertig (normale Arch-Linux .config), auf dem AMD FX den ich hier hatte, war es bedeutend länger (+-10-15minuten, ich hab die Zahlen nicht aufgeschrieben, da es eigentlich nur für mich war um zu schauen ob en Umstieg inzwischen lohnt, und ich die Kiste eh hier hatte).

Dazu gibt es u.A. noch diese Seite

http://leaf.dragonflybsd.org/mailarchive/users/2011-05/msg00062.html

Es wurde da zwar "nur" ein 6-Kern-Phenom2 getestet, gegen den 2600er, aber der große AMD ist zur Zeit nur ein paar %-Schneller.

Zudem verbraucht der Intel einfach weniger, auch unter Vollast, als der AMD (das ist Fakt) .. d.h. wenn das Mopped auch nur nen paar Minuten eher fertig ist, spart es Geld, nicht viel, Aber die Masse macht es.

D.h wenn die Kohle für den Strom egal ist, und das ergebnis zählen soll, ist ein DualProzessor Opteron definitiv vorzuziehen. Der ist relativ günstig umzusetzten, und nen 12-24Kerner von AMD schlägt da natürlich auch nen Intel ;)

Grüße

**EDIT SAGT*

https://forums.gentoo.org/viewtopic-t-906030-start-0.html

Der Core I7 (etwas weiter unten) braucht ca 9 Minuten für GCC, der passende AMD 8 Kerner (der erste Post) braucht 13

Gerne stell ich meinen Corei7, mit klar definitierten Umgebungsvariablen (gleiches Linux etc pp), für nen Benchmark-Test zur Verfügung, weil zur Zeit habe ich kein Zugriff mehr auf den AMD.
 
Zuletzt bearbeitet:
auf der französichen seite versteh ich nur bahnhof. ist eine höhere zahl bei dem vergleich jetzt besser oder schlechter?:confused:
von einem phenom2 mit seinen "vollwertigen" kernen auf einen amd fx mit mehr, aber dafür abgespeckten kernen zu schließen, ist schon recht gewagt. durch die hohe zahl an kernen ist der fx für parallele threads/prozesse einfach prädestiniert, während der phenom die höhere single thread-leistung haben wird.

beim verbrauch ist amd leider seit langem im nachteil.
 
Weniger ist mehr auf der FR-Seite ;) Hab sie mir damals, das mir gedachte relevante, von meiner Frau übersetzten lassen ^^

Mein Französisch hört bei "oui" auf :D

Naja .. natürlich ist es gewagt, da gebe ich dir recht, auch gebe ich dir recht das das multithreading der AMD (leicht) im Vorteil ist, WENN GCC nur immer richtig schönes MutliThreading machen würde ;)

http://www.cpu-world.com/Compare/439/AMD_FX-Series_FX-8150_vs_Intel_Core_i7_i7-2600K.html

Hier sieht man auch das der AMD wirklich gut ist, gerade im Multithreading, aber der Core i7/Xeon ist überall nen Ticken schneller und sparsamer. Und da lohnen sich die Mehrkosten. Auch wenns wirklich nur ein paar Minuten sind die man jedesmal spart.

Wie gesagt, in Kombination mit RamDisk (>2133mhz) rockt das Mopped :)

ICh sach ja nicht das der AMD grundsätzlich total schlecht ist, aber wenn es sich hier um ein paar € (vllt 30-50€) geht, sollte man sich zumindest den Intel mal anschauen :) Spielt natürlich auch die eigene Liebe ein wenig mit :) Nachdem AMD damals so "schlecht" wurde bin ich einfach nen Intel-FanBoi geworden :)
 
Zuletzt bearbeitet:
Danke für Eure Beiträge!
Ich tendiere jetzt doch mehr zu Intel, zumal ich gesehen habe, dass die 8 Kerne des AMD FX nicht komplett unabhängig sind.
Und der Stromverbrauch ist nicht völlig unwichtig, ausserdem würde ich gern mein altes Netzteil (350W) und Gehäuse weiter verwenden.

Zahl lieber nen paar € mehr für den Xeon auf 1155er Basis der eigentlich nen Core i7 ist ;)
Da zahlste 210€ für oder so und läuft auf allen 1155ern Boards soweit.

Was bringt mir das ausser ECC Support im Vergleich zu einem Core i7? Die Speichergrenze bspw. beim Xeon E3-1240v2 ist ebenfalls 32GB.

blafoo schrieb:
Meine Compile-Kiste hat 16GB (2133er)-Ram, 8 davon sind im TempFS, darauf compilier ich halt
Hat TempFS einen Vorteil ggü. der Nutzung des RAM als Filebuffer, was Linux ja automatisch macht?
Ich hatte 32GB RAM im Auge, in 8GB passt der Kernel inkl. Objektfiles nicht hinein.

blafoo schrieb:
Zusätzlich rennt der Corei7 zwischen 4,8-5Ghz (je nach Tagesform)
Aber nur übertaktet, oder?
 
Hey,

Ja erstmal hat das Teil ECC-Support .. was ggf. ganz interessant ist, wären da nicht astronomische Speicherpreise ;)

Sonst sind die Kisten identisch, okay der i7 hat noch die HD-Grafikkarte an board, der Xeon nicht, er ist halt einfach billiger, aber lässt sich dafür nicht übertakten.

TempFS kann halt nen Verzeichnis in den Ram legen, hauptsächlich halt für /tmp wird es genutzt. Wenn du dann noch deinen Compiler-Cache auf /tmp legst, schreibt der der komplett in den Ram. Somit hast du keinerlei IO-Engpässe mehr. Was du mit FileBuffer meinst weiß ich gerade ehrlich gesagt nicht. Mir ist es, bisher, nicht bekannt das der Kernel automatisch Dateien in den Ram schreibt außer halt beim TempFS.

Grundsätzlich wird erstmal 50% des Rams für TempFS freigegeben, dies kann man aber mit passenden /etc/fstab einstellungen steuern. Bei 32GB kannst du locker 8GB als TempFS nehmen und 24Gb fürs System. Das dürfte eigentlich für so alles reichen ;)

Jo .. bei mir ist nichts unübertaktet ;)
 
okay der i7 hat noch die HD-Grafikkarte an board, der Xeon nicht

Aber der Xeon E3-1245v2 hat auch eine P4000 iGPU mit am Board, wie der i7 Ivybridge mit der HD4000 iGPU auch, ansonsten ist der E3-1245v2 aber quasi identisch zum E3-1240v2 ohne P4000 iGPU. P4000 und HD4000 unterscheiden sich nur im Treibersupport meines Wissen nach, denn der Treiber fü die P4000 iGPU Variante ist wohl auch für CAD-Kram und so zertifiziert.

Das wollte ich hier nur kurz mal gesagt haben, da ich selbst eine Xeon E3-1245v2 CPU in meinem Desktoprechner Marke Selbstzusammenbau habe. Und mein Xeon E3-1245v2 war für mich sogar was preiswerter als ein vergleichbarer Ivybridge i7 gewesen, als ich den im April 2013 im Netz bestellt habe.
 
Bei den neuen Intel CPUs kann es Probleme mit alten Netzteilen geben.
Die CPUs brauchen im C6 state so wenig Strom, dass manches altes Netzteil ins straucheln kommt.
Abhilfe schafft dann das Abschalten des C6 state im Bios.

FileBuffer heißt, dass Daten nur beim 1. mal von der Platte gelesen werden danach aus dem RAM.
Der FileBuffer belegt den kompletten ungenutzen RAM und wird automatisch freigegeben wenn etwas anderes RAM braucht.
Wie es bei schreibzugriffen aussieht bin ich mir nicht sicher.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben