Gedankenspiel: R5 1600 untertakten um Preisdifferenz zum 1500x rauszuholen

replikant0815

Lt. Junior Grade
Registriert
Nov. 2006
Beiträge
316
In dieser rein hypothetischen Textaufgabe bin ich ein Klimaforscher, der jeden tag 12h lang hochparallelisierte Software laufen lässt (also Prime95 im Prinzip). Wegen Klimawandel möchte ich natürlich Strom sparen.

Jetzt könnte ich mir einen 1500x kaufen und den auf 4 Kernen die ganze zeit rechnen lassen.

Oder... Ich kaufen einen 1600 mit 6 Kernen und untervolte und untertakte so weit wie möglich.

Kurz auf einer Serviette vorgerechnet:

(Ich weiss nicht genau was ein gigaflop ist, daher summieren wir hier einfach die Taktraten)

1500x rechnet mit 4x3.5ghz, das macht 14ghz
1600 hat 6 Kerne, müsste also mit 14000/6 also 2333Mhz getaktet werden um die selbe Rechenarbeit zu verrichten.

Die Frage ist nun:

Kann man mit einem untertakteten 1600er im Vergleich zum normal getakteten 1500x strom sparen?

Wenn ja: Wie lange Muss unser Klimawissenschaftler den 1600er untertaktet laufen lassen um die Preisdifferenz (zur stunde 27 euro) durch die Stromrechnung wieder hereinzuholen (gehen wir von 0,3 €/kwh aus)

Ja ich weiss die Frage ist dämlich und theoretisch, aber sowas interessiert mich halt irgendwie:) Hat jemand Quellen um da ganz grobe Mutmaßungen anzustellen?
 
Hallo,

du hast schon mal den Denkfehler begangen, dass sich die Taktung der Kerne entsprechend multiplizieren lässt. Dies kommt soweit nicht hin. Fakt ist, dass ein Forscher bei wissenschaftlichen Berechnungen i. d. R. immer so viele Kerne wie möglich nutzen möchte (bin kein Wissenschaftler, aber meiner Meinung nach kann man in dem Bereich viele Aufgaben parallelisieren). Also stellt sich die Frage ja eher so: "Wie weit müsste ich den 1600er runtertakten und um wie viel mv müsste ich die Spannung senken, um einen geringeren Energiebedarf als ein normaler 1500x zu haben".
 
Dazu müsste man wissen, mit welcher Spannung die jeweils anliegenden Taktraten laufen und gemessene Leistungsaufnahmen wären auch praktisch.
Ansonsten müsste man viel zu sehr spekulieren und würde ein sehr unrealistisches Ergebnis herausbekommen.

Die Effizienz sinkt natürlich, je höher der takt ist. Daher findet man bei Servern auch eher zich-viele Kerne als hohe taktraten.
Geld sparst du also schonmal durch eine geringere Stromrechnung, der Gedanke geht also auf.
 
Zuletzt bearbeitet:
erstmal ist das weit komplizierter als nur spannung und takt zu reduzieren. du bist da maßgeblich auf die chipqualität angewiesen weil die entscheidet bei welcher spannung ein takt stabil läuft. dann machst du ein paar messreihen um den sweet spot zu finden. selbstverständlich sind mehr kerne von vorteil wenn die software das unterstützt aber besser wäre dann auf jeden fall eine architektur fern ab von x86. arm für den anfang oder besser powerpc oder was abgefahrenes wie crays threadstorm. natürlich nur wenn deine software entsprechend skaliert.
 
Wie schon gesagt wurde ist das nicht so einfach....Der Verbrauch ist nicht primar über die Taktrate bestimmt sondern vor allem über die Spannung....auch kann eine gute Kühlung den Verbrauch senken...muss aber nicht...Generell würde ich bei Ryzen sagen, dass mehr Kerne bei weniger Taktrate besser bei der Energieeffizienz sind.

Edit: zu spät^^
 
falls das noch nicht so klar war: der takt geht in den verbrauch linear ein, die spannung aber quadratisch. man könnte also bei minimalem takt die spannung auf ein minimum absenken und dann bei minimaler spannung den takt wieder erhöhen. ( bringt jetzt nicht wirklich den sweet spot aber das einfachste was mir grad so einfällt)

anderes problem: mangelnde kontrolle über die spannung. aktuelle cpus sind da verflucht komplex und ein einfaches einstellen eines vcore offset muss nicht unbedingt das erhoffte ergebnis bringen.
 
Schlecht für den 6 Kerner ist bei deinem Vergleich der Ansatz auf die gleiche Leistung kommen zu wollen...Ich habe irgendwo gelesen, dass bei den Ryzen CPUs, der "sweetspot" im Bereich um 3 GHz liegt...also hier können die Ryzen Kerne besonders gute Leistung pro Watt erreichen.
Taktest du den 6 Kerner zu niedrig sparst du weniger Strom im Verhältniss zum Leistungsverlust....
Es wäre meiner Meinung nach sinnvoller entweder ein zu erreichendes Tagespensum festzulegen und der 6 Kerner ist dann früher fertig....oder einen festen Verbrauch vorgeben und sehen wie viel jede CPU am ende des Tages geschafft hat....aber das müsste man alles real testen und kann es nicht berechnen.
 
den verbrauch vorgeben ist aber sogar ein feature. zumindest aktuelle intel prozessoren können das. wird aber wohl nur im server umfeld genutzt. dann lässt sich auch gut sehen wie sich die chipgüte auswirkt.
 
Ja Ryzen macht bei der Spannung was er will^^. Egal ob Festwert oder offset...was man bekommt ist nur tendenziell vorherzusehen.
Ich habe keine Tests mit niedriger Taktung gemacht, aber während 3,8GHz bei meinem R7 noch mit 1,264V(unter Last) gingen, brauchte ich für 3,9GHz schon 1,352V...das reichte dann aber auch für 4GHz....aber für 4,05Ghz mussten es 1,417V sein...weiter ging es nicht primestable....eventuell mit noch mehr Spannung, aber dann ist es nicht mehr zu kühlen und die Temperatur verhindert ein weiterkommen....Vergleich 3,8Ghz zu 4,05Ghz sind 70W unter Prime95 small FFT....und 75W imit large FFT
 
Ich schrieb halt "Oder... Ich kaufen einen 1600 mit 6 Kernen und untervolte und untertakte so weit wie möglich."

@Ichthys Also ein Denkfehler liegt glaube ich nicht vor, nur ein sehr unrealistisches Szenario. Man kann ja parallelisiert programmieren und die 7000 parallelen tasks auf 1, 4 oder 8 oder 42,5 kerne verteilen. Ich meine einfach volle CPU Auslastung. Mein Beispiel ist ja deshalb auch prime95.

@evilnear Natürlich sind nicht alle CPUs genau gleich. Aber wäre doch interessant das mal abzuschätzen ob das überhaupt geht und wie lange das dauern würde? Sooo ungleich sind die CPUS dann ja doch wieder nicht.
 
replikant0815 schrieb:
@Ichthys Also ein Denkfehler liegt glaube ich nicht vor, nur ein sehr unrealistisches Szenario. Man kann ja parallelisiert programmieren und die 7000 parallelen tasks auf 1, 4 oder 8 oder 42,5 kerne verteilen. Ich meine einfach volle CPU Auslastung. Mein Beispiel ist ja deshalb auch prime95.

Doch liegt leider schon vor. Die Konsolidierung der Kerne und Threads kostet zusätzlich Leistung und macht das ganze wieder ineffizienter. Wenn du schon ein Gedankenspiel machst, dann kannst du nich einfach ein paar Parameter ausblenden die essentiell sind.
 
rg88 schrieb:
Doch liegt leider schon vor. Die Konsolidierung der Kerne und Threads kostet zusätzlich Leistung und macht das ganze wieder ineffizienter. Wenn du schon ein Gedankenspiel machst, dann kannst du nich einfach ein paar Parameter ausblenden die essentiell sind.

Threads müssen immer konsolidiert werden. Ich verstehe nicht warum hier ein signifikanter Overhead entstehen würde.

Wenn du einen solchen Overhead für realistisch hältst, wie gross könnte der sein wenn wir einen 6 Kerner mit einem 4 Kerner vergleichen? 0.1% 1%? 5%?

Können wir ja mit einberechnen wenn du magst:) Aber ich glaube die Schätzung wird es nicht beeinflussen. Wäre aber interessant wenn es sehr knapp würde.


Sagen wir mal so: Wir tunen den 1600er so dass er den selben cinebench score bekommt wie der 1500x. Wäre das fair?
 
Zuletzt bearbeitet:
Wieso den 1600 undervolten?

Wenn man bei der (sehr einfachen) Rechenweise bleibt:
1500X: 4x3.5GHz = 14GHz @ 107W
1600: 6x3.2GHz = 19.2GHz @ 125W
(Wattzahlen vom CB-Test)

d.h. der 1600 rechnet 37% schneller bei 16% mehr Leistungsaufnahme.
Was der 1500X in einer Stunde rechnet, schafft der 1600 in 44min

Der Verbrauch in einer Stunde:
1500X: 107Wh
1600: 91Wh (125*14/19.2) (Wird nach 44min "ausgeschaltet", da er die Arbeit für diese Zeit erledigt hat.)
-> Pro Stunde sparst du 26Wh, was bei einem Strompreis von 28.5Ct/kWh (= 0.0285Ct/Wh) 0.75Ct bzw. 0.0075€.
Um die 30€ über den Strompreis wieder reinzuholen, müsstest du den PC gemäss dieser Rechnung 4000 Stunden (entspricht ~166 Tagen) laufen lassen.
 
Zuletzt bearbeitet:
jumpin bringt es auf den Punkt.
Der 1600 braucht zwar mehr Leistung, ist aber schneller fertig und spart dadurch Strom.
:daumen:

Es wäre noch schön zu wissen wo sich in dem Vergleich ein 1700 einordnet.
Setzt sich dieser Verlauf fort?
 
Genau, Takt senken um strom zu sparen bringt nichts, denn die CPU muss diese "Takte" nämlich länger rechnen um ein Ergebnis zu bekommen.

Außerdem sollte man auch in betracht ziehen das mann ein 1500X ebenfalls undervolten kann(könnte)
 
Zuletzt bearbeitet:
Wie lange es tatsächlich dauert, kann dir keiner sagen da sich jeder Chip unterschiedlich verhält.
Hier ist eine Grafik, die zeigt wie sich der Verbrauch beim 8-Kerner verhält
verbrauch.png Quelle


Baal Netbeck schrieb:
Schlecht für den 6 Kerner ist bei deinem Vergleich der Ansatz auf die gleiche Leistung kommen zu wollen...Ich habe irgendwo gelesen, dass bei den Ryzen CPUs, der "sweetspot" im Bereich um 3 GHz liegt...also hier können die Ryzen Kerne besonders gute Leistung pro Watt erreichen.
Hast du dafür einen Beleg? Nur weil es immer wieder im Forum (ohne Beweis) wiederholt wird, ist es noch lange nicht wahr.


Hanni2k schrieb:
Genau, Takt senken um strom zu sparen bringt nichts, denn die CPU muss diese "Takte" nämlich länger rechnen um ein Ergebnis zu bekommen.
Das ist ungefähr so richtig wie zu behaupten: "mit 200Km/h zu fahren ist sparsamer, weil man früher den Motor wieder ausstellen kann".
Schau dir mal die Verbrauchswerte an. Für den 6% höheren Takt eines 1800x im Vergleich zum 1700x (3,4 auf 3,6 Ghz) steigt der Verbrauch um 26% an
 
Zuletzt bearbeitet:
Ja, man müsste eben erst den sweetspot bei beiden CPUs suchen, das geht aber nur durch Ausprobieren, daher muss man sich mit den Standardwerten behelfen
Zur Abschätzung finde ich jumpins Rechnung völlig in Ordnung

Wenn wir aber mal bei oben erwähnte, cinebench Multicore Test bleiben hat der 1600 40% mehr Leistung als der 1500X.
Stromverbrauch beim cinebench multicore Test:
102W 1500X
119W 1600

Ausrechnen kann das sicherlich jeder selber das alleine schon mit den Standardwerten ein 1600 effizienter ist als ein 1500X.
Für eine Aufgabe für die der 1500X eine Stunde braucht und somit 102 Watt braucht der
1600 rund 42 Minuten und somit 83,3 W
 
Zuletzt bearbeitet:
Energieeffizienz ist alles Andere als eine "dämliche" Frage :)
Allerdings finde ich das Szenario im Moment nicht sonderlich plausibel bzw habe es nicht richtig verstanden. Es gibt verschiedene denkbare Szenarien:
1. Es fällt täglich eine bestimmte Arbeit an, die berechnet werden muss
2. Der Rechner läuft im Dauerbetrieb und bekommt über den Tag verteilt immer neue Aufgaben

Nr1 hört sich eigentlich für den hier vorliegenden Fall wahrscheinlicher an. Dann ist aber die Rechendauer von 12h nicht fix, sondern hängt von der Geschwindigkeit der eingesetzten CPU ab.

Autovergleiche wie von
@zett0
sind in diesem Fall nicht wirkllich hilfreich. Energieeffizientes rechnen beinhaltet nunmal neben der Effizienz der CPU auch wie lange das Gesamtsystem Strom benötigt. Bei einem 1 Prozessorsystem sollte das aber eher der kleinere Anteil sein und der Fokus sollte auf dem sweetspot der CPU liegen. Wenn ein 1600x im Sweetspot jedoch 50% weniger Zeit beansprucht, als ein 1500 im Sweetspot, so wird der 1600x für die gegebene Aufgabe wesentlich weniger Strom benötigen, obwohl er vermutlich pro Stunde mehr Strom zieht. Das Rechnen nach Zeit ergibt hier also meiner Meinung nach nicht viel Sinn. Das wäre eher was für 24/7 Arbeit wie in Szenario 2.


Ein paar Messwerte haben wir ja hier tatsächlich schon bekommen, die anschaulich machen, dass der Einfluss des Taktes auf den Strombedarf signifikant ist (was sich ja auch mit der Theorie deckt). Spannend wäre es jetzt natürlich so etwas auch für die 4 und 6 Kerner zu sehen. Dann hätte man schonmal eine erste (vermutlich eher schlechte) Abschätzung, wie das Ergebnis ausfällt. Den unteren Taktbereich (2.5 - 3 ghz) habe ich glaube ich noch nie in Messungen gesehen :)

Aber egal wie die genauen Zahlen ausfallen ist meine Prognose: die teureren Anschaffungskosten könnten sich durchaus in recht kurzer Zeit rentieren, falls die anfallenden Aufgaben denn auch tatsächlich gut parallelisierbar sind.

Was den Overhead angeht bei schlecht paralleliserbaren Problemen: bei 6 Kernen kann der zwischen 0 und 6 liegen :)
Bestcase: Problem ist extrem lokal und lässt sich ohne jegliche Probleme Parallelisieren -> Overhead nahe 0.
Worstcase: Das Problem ist zu 100% sequentiell und kann nur auf einem einzelnen Kern rechnen. Overhead liegt hier also bei 6.
 
Zurück
Oben