Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Effizienz der Kerne/Threads Anzahl bzw. Bedenkzeit und Elo-Zuwachs
- - By Lothar Jung Date 2022-12-21 12:32 Edited 2022-12-21 12:34 Upvotes 1
Vielleicht haben nicht alle den Blog vollständig gelesen!?

Hier nochmal: https://github.com/official-stockfish/Stockfish/wiki/Useful-data#elo-cost-of-using-multipv

Der interessanteste Teil ist dieser:

„Threading efficiency and Elo gain“

Eher ernüchternd der jeweilige Elo-Zuwachs für Hardware und/oder Bedenkzeit.

Lothar
Parent - - By Reinhold Stibi Date 2022-12-21 12:48 Upvotes 1
Das Thema ist interessant.

Könntest du in Kurzform mit Worten die wichtigsten Ergebnisse zusammenfassen.

Mir ist es zu mühsam mich durch die vielen Diagramme und Informationen durchzuackern,
Anderen wahrscheinlich auch.
Parent - - By Benno Hartwig Date 2022-12-21 14:38 Upvotes 1
Verstehe ich es richtig (hier jetzt mal die rote Kurve LTC)
Ein Speedup um Faktor 4 bringt ein Plus von ca. 5 Elo,
ein Speedup um Faktor 16 bringt aber ein Plus von ca. 20 Elo?

Wenn ich die bereits 4 mal schnellere Engine abermals um Faktor 4 beschleunige, bekommt sie dann
- 5 Elo dazu, weil das eben Faktor 4 entspricht
-  15 Elo dazu, damit am Ende das 20-Elo-Plus erreicht wird?

Oder habe ich da was falsch verstanden, vielleicht einfach den Begriff "Speedup", oder stimmt da was nicht?
Parent - - By Lothar Jung Date 2022-12-21 15:02 Edited 2022-12-21 15:20 Upvotes 1
Hallo Benno,

die Grafik ist eindeutig.
Der Speedup bezieht nicht auf die Anzahl der Kerne oder Threads, sondern die kN/sec. Geschwindigkeit.
Bei einem höheren TC z.B. 300 sec. würde der Grafh noch flacher verlaufen.
Bei 8 Kernen/14 Threads ist schon ein relatives Optimum erreicht.

Gossensche Gesetz: Gesetz vom abnehmenden Grenznutzen.
Parent - - By Jörg Oster Date 2022-12-21 15:35 Upvotes 3
Hier werden meiner Meinung nach Begrifflichkeiten durcheinandergewürfelt bzw. zweckentfremdet.

Als Scaling bezeichnet man im allgemeinen die Veränderung der Knotenzahl, also kN/s mit mehr Threads.
Als Speedup bezeichnet man die Veränderung der Zeit die benötigt wird, um die gleiche Suchtiefe zu vollenden.

Beides stammt eher aus der Zeit als YBWC (Young Brothers Wait Concept) und Crafty's DTS (Dynamic Tree Splitting) in Gebrauch waren.
Heutzutage ist ja Lazy SMP aka Shared Hash Table fast ausnahmslos in Verwendung.

Scaling ist bei Lazy SMP nahezu linear.
Speedup ist bei Lazy SMP nahezu bedeutungslos. Es zählt der Elo-Zuwachs.

Siehe https://www.chessprogramming.org/Parallel_Search
Parent - - By Lothar Jung Date 2022-12-21 15:59 Upvotes 1
Danke, OK.

Und was ändert das am Ergebnis bzw. der Schlussfolgerung?
Parent - - By Jörg Oster Date 2022-12-21 16:14 Upvotes 1
Die da wären?
Parent - - By Lothar Jung Date 2022-12-21 16:20 Edited 2022-12-21 16:22 Upvotes 1
Gossensche Gesetz.

Schreibe doch selbst einen ersten Thread zu dem Thema.
Bist wohl nicht darauf gekommen.
Hinterfragen ist immer einfach.
Parent - By Jörg Oster Date 2022-12-21 17:55 Upvotes 1
Die Kritik bezog sich doch nicht auf dich, sondern auf den verlinkten Artikel.

Diminishing returns hat man ja generell, egal ob man die Zeitkontrolle erhöht oder die Suchtiefe, oder aber die Threadanzahl.
Natürlich hängt das alles zusammen. 

Aber hier geht es ja um den Elozuwachs mit steigender Threadanzahl.
Und bei LazySMP greifen die altbekannten Begrifflichkeiten nur noch sehr bedingt.
Parent - By Olaf Jenkner Date 2022-12-21 22:55 Upvotes 4
Lothar Jung schrieb:

Gossensche Gesetz.

Lothar wirft mal wieder mit Fachbegriffen um sich, ohne zu verstehen, was sie bedeuten.
Die zwei Gossensche Gesetze beruhen auf der Annahme, dass individuelle Präferenzen in Form
von Nutzen quantifizierbar sind. Herr Gossen ist 1858 gestorben.
Es ist eine psychologische Nutzen-Theorie des isolierten Individuums und hat heutzutage
keinerlei Bedeutung mehr.
Es ist schon eine besondere Leistung, dieses Zeug auf das Computerschach anzuwenden.
Parent - - By Wolfram Bernhardt Date 2022-12-21 16:12 Upvotes 1
Hi!

Ja, genau richtig. Man kann recht genau bestimmen, wieviel Zeit oder Knoten ein zusätzlicher Prozessor bringt - aber was das in Elo bedeutet,, steht auf einem anderen Blatt.

Wenn ein Prozessor doppel so schnell ist wie der alte, wird dasselbe Ergebnis in der Hälfte der Zeit erreicht. Das sagt aber nichts darüber aus, was in der freigewordenen Hälfte der Zeit an Verbesserung erreicht wird. Meistens leider erstaunlich wenig.

Bei Schach nimmt man ja einen durchschnittlichen Branching-Factor von 35 an (was schon sehr ungenau ist, weil das je nach Stellung und Partiephase enorm schwankt). Das heisst, um in derselben Zeit einen Halbzug tiefer zu rechnen, benötigt man eine Geschwindigkeitssteigerung um Faktor 35. Das ist aber auch sehr ungenau, weil die gängigen Suchalgorithmen längst nicht alle Knoten sehen.

Unterm Strich kann man da meiner Erfahrung nach nur wenig und nur sehr ungenau vorhersagen. Am Ende muss man es einfach ausprobieren.

Viele Grüße
     Wolfram
Parent - - By Lothar Jung Date 2022-12-21 16:19 Upvotes 2
Wolfram,

beim letzten Satz muß ich dir leider widersprechen.

Der zusätzliche Nutzen wird mit höherer Geschwindigkeit, sei es durch Zeit oder Hardware, immer kleiner.
Wieviel muß getestet werden, da es von einigen Faktoren abhängig ist.

Der Zusatznutzen von 8 auf 16 Kernen ist gering, von 16 auf 32 noch geringer usw.

Lothar
Parent - By Reinhold Stibi Date 2022-12-21 17:10 Edited 2022-12-21 17:19 Upvotes 1
Ja, das stimmt.

Mein Ryzen 5800X 8 Kerner/16 Threads bringt auf Schach.de 5 Min. Blitz ungefähr die gleichen Ergebnisse 
wie Ryzen 3970X 32 Kerner und die Ryzen  64 Kerner.

Schätze dass der 32 Kerner zum 8 Kerner  nur ca. 20 Elo mehr bringt, das sich aber in der Praxis kaum auswirkt.

Der Zuwachs von 32 auf 64 Kerner dürfte nur bei ca. 10 Elo sein

Allerdings ist mein Ryzen 5800X ein sehr schneller 8 Kerner. Der schafft in der Grundstellung mit dem
neuesten Stockfish 17500 kN/s und geht dann nach 1 Min runter auf 15.084 kN/s.

Aber es geht ja nicht nur um Elos;  beim Analysieren, Teststellungen sind die 32 und 64 Kerner erheblich schneller
und bereiten da mehr Spaß
Parent - By Wolfram Bernhardt Date 2022-12-21 18:36 Edited 2022-12-21 18:39 Upvotes 1
Hi Lothar!

Ja klar, da widersprichst Du mir gar nicht.

Zitat:

Der Zusatznutzen von 8 auf 16 Kernen ist gering, von 16 auf 32 noch geringer usw.


Ja, genau richtig.
Mein letzter Satz meinte nur, dass man nicht exakt vorhersagen kann, wie gering ein Zuwachs ist. Der Zusatznutzen von 16 auf 32 ist beispielsweise mit Sicherheit nicht genau die Hälfte des Zuwachses von 8 auf 16.
Er ist geringer, das wissen wir. Aber wieviel geringer genau... das müssen wir in vielen, vielen Partien ermitteln.

Viele Grüße
   Wolfram
Parent - - By Benno Hartwig Date 2022-12-21 20:56 Upvotes 1
Aber ich habe damit ein Problem.:
Wenn Ver-4-fachung ca. 5 Elo bringt, dann sollte Ver-16-Fachung (also 2 mal Ver-4-fachung nacheinander) doch ca. 10 Elo bringen.
Aber die Grafik zeigt 20 Elo?
Wie das?

BTW:
Eine Elo-Steigerung 0 würde ich erwarten, wenn die Geschwindigkeit gleich bleibt.
Wird dies nicht durch Speedup 1 beschrieben? "Ver-1-fachung"
Warum beginnt die x-Achse dann mit dem Wert 0?
Oder verstehe ich den Begriff doch immer noch falsch?
Parent - By Lothar Jung Date 2022-12-21 21:03 Upvotes 1
Die Kurve ist auf Null normiert.
Die Kurve verläuft nicht linear.
Der Test hat diese Kurve erzeugt.
Parent - By Benno Hartwig Date 2022-12-22 10:37 Upvotes 1
Oh!
Ich habe jetzt erst gesehen, dass es nicht um einen Speedup-Faktor geht sondern um Speedup in %. Sorry.
Dann ist natürlich richtig, dass es mit 0 losgeht, dass damit keine Elo gewonnen werden.
Aber ich staune dann wiederum sehr, dass bei kurzen Zeiten mit 16% Speed-Steigerung bereits gut 30 Elo gewonnen werden können.
Das ist doch deutlich mehr, als ich erwartet habe!

Vor Jahren schon hatte man da eher an einen Elo-Gewinn von ca. 16 gedacht,
und heute hätte ich eher an nochmal deutlich kleinere Auswirkungen geglaubt.
Mal schauen, ob andere Beobachtungen die hier gezeigten Werte bestätigen.
Parent - By Max Siegfried Date 2022-12-21 20:03
Benno Hartwig schrieb:

Verstehe ich es richtig (hier jetzt mal die rote Kurve LTC)
Ein Speedup um Faktor 4 bringt ein Plus von ca. 5 Elo,
ein Speedup um Faktor 16 bringt aber ein Plus von ca. 20 Elo?

Wenn ich die bereits 4 mal schnellere Engine abermals um Faktor 4 beschleunige, bekommt sie dann
- 5 Elo dazu, weil das eben Faktor 4 entspricht
-  15 Elo dazu, damit am Ende das 20-Elo-Plus erreicht wird?

Oder habe ich da was falsch verstanden, vielleicht einfach den Begriff "Speedup", oder stimmt da was nicht?


Wenn ich mir die STC und LTC bei der Stockfish Entwicklung anschaue, dann weiß ich was bei längerer Zeit passiert.
Parent - By Peter Martan Date 2022-12-21 19:46 Edited 2022-12-21 19:51 Upvotes 1
Weil's dazu im CCC gerade einen parallel- Thread gibt, hab' ich dort ein einfaches und schnell gemachtes Experiment beigetragen zum Vergleich von SF 11 und SF 15.1.

https://talkchess.com/forum3/viewtopic.php?p=939929#p939929
Up Topic Hauptforen / CSS-Forum / Effizienz der Kerne/Threads Anzahl bzw. Bedenkzeit und Elo-Zuwachs

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill