Stromsparen mit AMD Bulldozer

Zum Turbo: AMDs TurboCore richtete sich nach aktuellen Stromverbrauch. Umso mehr Kerne tief schlafen, umso größer ist die Wirkung. Es wäre daher wünschenswert, wenn man die Kerne einzeln takten könnte, aber leider gibt cpufreq(4) das derzeit einfach nicht her. Und ich bezweifele, dass es so schnell jemand anbauen wird...

D.h. TurboCore kann man (im Moment) unter FreeBSD total vergessen?
 
Moment, moment, moment... TurboBoost (Intel) funktioniert definitiv mit FreeBSD 9.0 und höher, da die CPU wunderbar in C6 runtergeht. Er richtet sich nur nach den Schlafzuständen. Siehe dazu auch: http://lists.freebsd.org/pipermail/freebsd-hackers/2010-July/032484.html und http://lists.freebsd.org/pipermail/freebsd-current/2012-March/032434.html Allerdings ist meiner bescheidenen Beobachtung nach der Turbo auf meinem Core i7 2600k Schlangenöl. Ob man diese 400MHz mehr nun für einige Sekunden hat oder nicht, ist so relevant wie der berühmte Sack Reis in China.

Wie ich oben schon schrieb und daraus inkorrekt auf Bulldozer schloss, ist es bei dem Core i7 auch nahezu egal ob man seine CPU-Frequenz nun skaliert oder nicht. Der minimale Takt sind 1600MHz, deutlich mehr als bei Bulldozer und sogar den alten Phenoms. Ich habe es gerade noch mal nachgemessen:
- Leerlauf mit powerd: 51W
- Leerlauf ohne powerd: 52W
Davon gehen jeweils ca. 12W auf die Grafikkarte.

Intel selbst schreibt dazu:
Code:
The number of active cores at any given instant
dictates the upper limit of Intel® Turbo Boost
technology. For this discussion, a core is
considered ‘active’ if it is in the “C0” or “C1” state;
cores in the “C3” or “C6” state are considered
‘inactive’. The upper limits will vary on a per-
processor number basis. For example, one
particular processor may allow up to two
frequency steps (266.66 MHz) when just one core
is active and one frequency step (133.33 MHz)
when two or more cores are active. Therefore,
higher deep C-state residency (“C3” or “C6”) on
some cores will generally result in increased core
frequency on the active cores.
Aus: http://download.intel.com/design/processor/applnots/320354.pdf?iid=tech_tb+paper

Also anders gesagt: Intel ist die Taktfrequenz egal, auf C6 kommt es an. Und das erreicht FreeBSD 9.0 dank "tickless" problemlos.

AMD setzt hingegen mit "TurboCore" auf einen anderen Ansatz. Die CPU weiß, wie viel Strom sie aktuell verbraucht und berechnet daraus, wie sehr sie den Turbo anwerfen kann. Da der Stromverbrauch offensichtlich von der Taktrate abhängig ist, ist es zumindest negativ in Sachen Turbo, dass powerd alle Kerne gleich taktet. Ob man es deshalb nun komplett vergessen kann, weiß ich nicht, aber so toll wie unter Windows wird es nicht sein.
 
Der Grundtakt ist somit beim Core i7 auch nur minimal höher als beim AMD (1400MHz). Aber der Effekt eines Boosts dürfte ungleich höher sein, da z.B. mein FX-8120 von 3100MHz auf 4000MHz schaltet, wenn nur die Hälfte der Kerne aktiv sind. Ich konnte das unter Linux jedoch noch nicht nachweisen. :mad: Interessanter Weise werden dort aber jeweils 2 Kerne (ein Modul) zusammen getaktet.
 
Jo, 900MHz sind natürlich schon eine andere Dimension. Außerdem sollte der Bulldozer den erhöhten Takt deutlich länger halten können. Hieß es zumindest mal...
 
Ich lese hier gerade, dass angeblich ein C1-State reicht, damit der Bulldozer in den Turbo schaltet. Aber selbst unter Linux schaffe ich nur den 1en Turbo-Mode (3400MHz). Kann man denn die aktuellen Frequenzen in FreeBSd irgendwie auslesen? FreeBSD hat zumindest behauptet, dass alle anderen CPUs im C1 waren.
 
Theoretisch ginge das, die CPU kann schon mitteilen, in welchen "Hardware P-State" (anders als bei den normalerweise sichtbaren "Software P-States" beziehen sie den Turbo mit ein) sie sich befindet. Allerdings unterstützt FreeBSD es praktisch leider nicht.
 
Wieder ein Fehler weniger! Nachdem ich im BIOS den C6-Modus angestellt habe, verbraucht der Rechner nicht nur 10W weniger im Idle sonder Linux schafft auch locker die 4GHz, also den vollen Turbo. Jetzt brauche ich ein Programm unter FreeBSD mit dem ich schnell die CPU-Leistung messen kann. Damit sollte sich dann ja zeigen, ob hier auch der Turbo zündet. Hat da jemand eine Idee?
 
So, das kleine Programm flops liefert folgende Infos:

1. Lauf bei 1400MHz:
Code:
   FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime      MFLOPS
                            (usec)
     1      4.0146e-13      0.0136   1028.1082
     2     -1.4166e-13      0.0218    321.7201
     3      4.7184e-14      0.0108   1578.8552
2. Lauf bei 2800MHz:
Code:
   FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime      MFLOPS
                            (usec)
     1      4.0146e-13      0.0068   2066.5190
     2     -1.4166e-13      0.0108    646.7319
     3      4.7184e-14      0.0054   3173.4214
3. Lauf bei 3100MHz
Code:
   FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime      MFLOPS
                            (usec)
     1      4.0146e-13      0.0048   2943.6791
     2     -1.4166e-13      0.0076    920.0879
     3      4.7184e-14      0.0038   4517.5994
Der Lauf mit 2800MHz hat doppelt so viele Flops wie der bei 1400MHz. Rechnet man nun von dem Lauf bei 3100MHz anhand der Flops die Taktfrequenz aus, so landet man bei 4GHz. :D

Damit ist dann nachgewiesen, dass der Turbo auch unter FreeBSD voll zündet.
 
Damit ist dann nachgewiesen, dass der Turbo auch unter FreeBSD voll zündet.

Ui, da bekomme ich ja auch richtig Lust auf so einen schoenen 8-Core :rolleyes:

Laut Geizhals gibts die auch schon mit 95W TDP, aber nur bei einem Haendler, deswegen siehts mir eher nach nem Bug aus... WIsst ihr da Naeheres?
 
AMD hatte gleich am Anfang die 95W Versionen angekündigt (tatsächlich wurden die 125W Modelle erst kurz vor dem Start eingeschoben), kann sie bis heute aber nicht liefern. Und ganz ehrlich gesagt glaube ich auch nicht, dass sie noch in nennenswerten Stückzahlen den Markt erreichen. AMD wird kaum Geld in ein leider mehr oder weniger geflopptes Produkt investieren. Leider ist der gute Bulldozer ein zweischneidiges Schwert (die Aussagen beziehen sich auf den Opteron, nicht auf den FX):

- Um ihn wirklich ausreizen zu können, benötigt man auf mehreren Threads arbeitende Software. Da die meisten Benchmark-Parcours auf Spielen basieren und viele Spiele mieserabel gethreaded sind, schnitt er in den Tests viel schlechter ab, als er war.

- Bulldozer braucht einen guten Scheduler und Windows 7 hatte ihn zu Beginn nicht. Genauer gesagt kam er mit der Topologie nicht klar. Linux und FreeBSD schon. Daher wurde Bulldozer nach 2 Windows-Patches im Winter ca. 20% schneller. Neu getestet wurde aber oftmals nicht.

- Bulldozer profitiert sehr von Compiler-Optimierungen durch aktuelle GCC-Versionen.

- Allerdings ist und bleibt Bulldozer eine Zicke. Durch seine sehr kleinen Caches mag er vor allem speicherlastige Software nicht. Außerdem besitzt er keinen Divisor, Divisionen müssen über die ALU gerechnet werden. Das macht ihn bei stark "algorithmischen" Code langsam.

- Durch den unreifen 32nm Prozess von Global Foundries ist das Die groß und die Spannung hoch, Bulldozer brauch viel Strom. WIe relevant das ist, muss jeder für sich entscheiden.

Ich hatte mich bewusst, trotz meiner AMD-Zuneigung, gegen Bulldozer entschieden. Allerdings auch, da er Monate zu spät kam. Inzwischen gibt es neue Entwicklungen. Auf Intel-Seite ist Ivy Bridge mit nochmal mehr Leistung und besseren Stromverbrauch da, auf AMD-Seite Trinity mit Piledriver-Kernen. Piledriver ist ein verbesserter Bulldozer. Natürlich ist Trinity uninteressant für uns, da es zu wenig CPU und zu viel Radeon-GPU hat. Allerdings sind die neuen Kerne schneller und deutlich stromsparender als Bulldozer. Daher würde ich sagen, dass man mit Bulldozer nichts grundsätzliches falsch macht, aber es sich lohnen kann entweder zu Ivy Bridge zu schauen (insgesamt ein runderes Paket, aber auch teurer) oder bis zum Herbst auf Piledriver in "FX"-Fassung mit dann wahrscheinlich 5 Modulen == 10 Halbkernen zu warten. In jedem Falls sollte klar sein, dass Bulldozer mit seinen 8 Halbkernel nicht schneller als Intel mit 4 Vollkernen ist. Außnahmesituationen ausgenommen.
 
In jedem Falls sollte klar sein, dass Bulldozer mit seinen 8 Halbkernel nicht schneller als Intel mit 4 Vollkernen ist. Außnahmesituationen ausgenommen.
Heisst das real bringt der auch nicht viel mehr, als die CPU in meiner Signatur? Ich dachte das skaliert schoen weiter ueber die Cores (halt 8 statt 4), aber wenn das "Halb-Cores" sind und weniger bringen, dann ja vielleicht nicht.
 
Wieviel die 8-"Halb"-Cores wirklich bringen ist so eine Sache. Bei Integern arbeiten die Cores weitgehend eingenständig. Je 2 von ihnen bilden ja ein Modul und das hat z.B. nur eine SSE-Einheit (2 128 bittige FPUs zusammengeschaltet). Wenn man also viel paralellisiert und kein SSE benutzt, dann kann man damit schneller fahren als mit einem Phenom II. Für mich waren aber andere Dinge ausschlaggebend:
  1. AES-NI
  2. ECC-Speicher-Unterstützung
  3. Preis
Intel lässt sich diese Features teuer bezahlen. Und Dank einem Turbo von 4GHz ist die CPU auch ohne Threads nicht langsam.
 
Doch, schon. Aber vielleicht nicht so viel, wie du erwartest. Ich bin immer vorsichtig solche Fragen mit "Ja" oder "Nein" zu beantworten, da es von vielen Faktoren abhängt... Mal zum Vergleich: Ich hatte einen Phenom II 940 als Workstation, der mir aus verschiedenen Gründen zu langsam war. Er ist gleich zu deiner CPU, nur dass er kein DDR3-RAM unterstützt. Sein Nachfolger ist ein Core i7 2600k. Der Core i7 ist, wenn man alle Register zieht (Hyperthreading mit dann 8 Hardwarethreads, AVX, etc) im Schnitt ca. doppelt so schnell wie der Phenom. Oder anders gesagt "Phenom == 100% ; Core i7 == 200%".

Phoronix vergleicht nun einen Core i5 2500k (ca. 15% langsamer als mein Core i7 2600k) gegen den FX-8150: http://www.phoronix.com/scan.php?page=article&item=amd_fx8150_bulldozer&num=1

Ein späterer Test zeigt die Compilerentwicklung auf: http://www.phoronix.com/scan.php?page=article&item=amd_bulldozer_gcc47&num=6

Du hast (wenn man Phoronix mal Korrektheit unterstellt, aber zumindest die Benchmarks besser als so manche von spielelastigen Windows-Seiten) also das Potential Pi mal Daumen 50 bis 70 Prozent Mehrleistung zu bekommen. Das kann sich durchaus lohnen, aber ein Wunder wird es nicht. Wenn auf subjektive Geschwindigkeit aus bist, kaufe lieber eine SSD. Das bringt gefühlt 1000x mehr.

EDIT: Und wie jmt sagt, kann gerade AES-NI ein gutes Argument sein.
 
Phoronix zeigt sehr schön das Dilemma von CPU-Tests. Je nachdem welchen Test man wählt gewinnt man oder verliert man. ;)
 
Zurück
Oben