Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / neue Schachbenchmarks für diverse CPUs
- - By Michael Scheidl Date 2017-11-12 16:31
Von "Ipman Chess" gibt es eine schöne Übersicht von Geschwindigkeitsmessungen, erstellt anhand der Benchmarkfunktion im Kommandozeilenmodus von Stockfish bzw. asmFish:

http://www.ipmanchess.yolasite.com/amd---intel-chess-bench.php

Bevor man mit dem eigenen System vergleicht, sollte man leiber gleich runterscrollen Ich hab geglaubt mich hauts aus den Socken.

Aber immerhin, mit i7-7700HQ erhalte ca. 9...13 Meganodes je nachdem ob mit 4 oder 8 Threads auf 4 Cores. Hab aber nur bis Tiefe 23 testen lassen.
Parent - By Patrick Götz Date 2017-11-13 01:10
Sogar die neuen aber praktisch nicht erhältlichen Intel Core i5/i7 8000er CPUs sind schon enthalten.
Parent - - By Thomas Müller Date 2017-11-13 11:04
ja beeindruckend die nodes.

Aber um wirklich zu vergleichen, müsste man die Werte durch die cores teilen.
Und dann natürlich den Preis pro core/nodes errechnen.
Und ich tippe -jetzt mal völlig ins blaue-, wird nicht der Prozessor der jetzt ganz oben steht oben bleiben

gruß
thomas
Parent - By Thomas Müller Date 2017-11-13 11:10
mal so ein paar euronen reingeschmissen....

Platinum 8180       ca. € 10000.-
Epyc 7601           ca. € 4600.-
i9-7960x              ca. € 1600.-
Parent - - By Frank Brenner Date 2017-11-18 00:12 Edited 2017-11-18 00:26 Upvotes 1
Was vermutlich noch niemand gemerkt hat:

Die Knoten/s sind  beim Schach nicht das beste Maß um die Geschwindigkeit von Computersystemen zu vergleichen .

An einem Beispiel will ich das Illustrieren.

Bei dem ippman Benchmark werden 37 fest einprogrammierte Stellungen bis Tiefe 26 durchgerechnet.

Nehmen wir einmal Stellung 22 heraus:

Hier erreicht der Spitzenreiter, der 224 Cores umfassende  Superrechner (4x Intel Xeon Platinum 8180 4x28c/56t)  371904 knps

Das ist schon eine stattliche Anzahl mit 224 Intel Cores: 371 Millionen Knoten pro Sekunde! Wer hätte das gedacht ?

Meine kleine Ryzen CPU schafft mit einem EINZIGEN core nur  5.2 Millionen Knoten pro Sekunde! 
Der 224 Intel Core Rechner ist also   71 mal so schnell wie meine Ryzen CPU wenn wir mit Knoten/Sekunde bewerten!

Ganz unten auf der Ippman Benchmark Seite kann man die Details für die 224-Core Intel CPU nachlesen:

Für die Stellung-22 hat der 224Core schwere Intelrechner    97067023   Knoten benötigt um die Tiefe 26 komplett durchzurechnen.

Mein Ryzen CPU mit nur einem Core schaffte die Tiefe 26 mit nur   890024 Knoten, also mit nur 1/109 facher Knotenzahl.

Insgesamt ist also bei der Stellung 22 mein Ryzen Computer mit nur einem einzigen Core um den Faktor  1.53  mal so schnell wie dieser 224 Core Intel Rechner !!!

Warum ?

Mein Ryzen hat mit einem einzigen Core exakt:  0,171 Sekunden benötigt um Stellung-22 bis Tiefe 26 durchzurechnen
Der 224 Core Rechner von intel hat mit all seinen Cores für die gleiche Aufgabe:  0,26 Sekunden benötigt.

Da kann man sehen, wie sehr man die Masse (ich würde sagen 99.5% aller Computerschafreaks) mit astronomisch hohen Knoten/S in die Irre führen kann.

Stellung 22 ist vielleicht eine Rosine.

Für die Gesamtdurchlaufzeit des gesamten Benchmarks benötigt der 224 Core Rechner 83919 ms und mein Ryzen-1CPU Computer 421235 ms , also ist der 224 Core Rechner 5 Mal so schnell wie mein  Ryzen auf 1 Cpu. Es sollten also noch einige Stellungen dabei sein wo mein Ryzen langsamer ist.

Schalte ich auf meiner CPU alle 8+8 Cores frei, so schmilzt der Geschwindigkeitsvorteil für die GESAMTZEIT auf Faktor 2,18

Der realistischste Vergleichswert, nämlich der für jede Stellung gewichtete durchschnittliche Geschwindigkeitsvorteil (alle 37faktoren miteinander malnehmen und dann die 37ste Wurzel ziehen) bin ich jetzt gerade zu Faul diesen Wert zu berechnen.

Aber was nützt mir ein 100.000 EURO Computer wenn der nur 2 mal so schnell ist ? *LOL*

Und der Ippmann ist sich nicht zu schade alle 3-4 Tage seine Homepage zu aktualisieren und den Eintrag

Zitat:
Update: 16 NOV 2017 ->Do you people realize how high these Nodes/sec. are from this 4 x Xeon 8180 system! 


auf das aktuellste Datum zu setzen.  So viel geblendet von den Knoten/s , da wird man schnell blind von.
Parent - - By Florian Wieting Date 2017-11-18 03:46 Edited 2017-11-18 03:48
Danke, Frank,
für diese scharfsinnige Darlegung!

Wenn du deinen Rechner mit allen Cores x-mal auf eine Stellung mit konstanter Tiefe ansetzt, bekommst du x-mal eine unterschiedliche Knotenzahl.

Immer wieder sollte verwiesen werden auf:

- Lars Bremer: Chaos-System Deep Engine - [...]
http://www.glarean-verlag.ch/schach/Eigenmann%20Rapid%20Engine%20Test/Texte/Chaos-System%20Deep%20Engine%20-%20Lars%20Bremer.pdf

Zitat aus http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=106783#pid106783
Danke, Walter!

Das Beste, was ich jemals zu diesem Thema gelesen habe.

Viele Grüße
Florian
Parent - - By Frank Brenner Date 2017-11-18 11:46
Zitat:
Wenn du deinen Rechner mit allen Cores x-mal auf eine Stellung mit konstanter Tiefe ansetzt, bekommst du x-mal eine unterschiedliche Knotenzahl.


Das ist richtig, und deswegen sollte man bei Performancebetrachtungen immer Durchschnittsrechnungen für ein paar Durchläufe machen, wenn man das Ergebnis auf die Nachkommastelle genau haben möchte.

Wie auch immer: Die Gesamtzeit bei 8+8 Cores beim Durchrechnen aller 37 Stellungen  bis Tiefe 26 variiert bei mir um weniger als 3%.

Und wenn wir jetzt die Performance des 224 CPU Superrechners mit meinem  Ryzen Rechner vergleicht dann ist die Nachkommastelle nicht sooooo spannend - obwohl: Wenn der Unterschied zwischen diesen beiden Rechnern so Minimal ist (im Bereich von 2) , dann wird die Nachkommastelle plötzlich doch wichtig.
Parent - - By Florian Wieting Date 2017-11-18 16:01 Edited 2017-11-18 16:05
Um Missverständnissen zwischen uns beiden vorzubeugen:
Als ich schrieb: ", bekommst du x-mal eine unterschiedliche Knotenzahl.", meinte ich die absolute Knotenzahl bis zu einer festgelegten Tiefe.

Ich habe mal auf die Schnelle meinen alten Q6600 (hat kein HT!) angeworfen und vorsichtshalber den asmFishW-bench mit 3 von 4 realen Cores laufen lassen, um die Einflüsse von Hintergrundthreads möglichst gering zu halten.
Bei der von dir angeführten Stellung 22 erhalte ich für die Gesamtknotenzahl bis Tiefe 26 in drei Durchgängen die Werte: 5.329.009 ; 4.865.761 und 12.325.037 Knoten.
Die Geschwindigkeit variiert wesentlich geringer: 7612 ; 7294 und 7519 Kiloknoten/s. (berichtigt!)

Ein Multithread-Algorithmus ist nun mal nicht deterministisch! Siehe bei Lars Bremer.
Und bei 224 Threads bedarf es zusätzlicher Softwaretricks, um im Rechenbaum nicht die Übersicht zu verlieren. Da wäre Jonny von Johannes Zwanzger als Benchmark wahrscheinlich besser geeignet.
https://chessprogramming.wikispaces.com/Jonny

Zusatzbemerkung:
Du schriebst: "Die Gesamtzeit bei 8+8 Cores beim Durchrechnen aller 37 Stellungen  bis Tiefe 26 variiert bei mir um weniger als 3%."
Vollkommen klar, dass sich die Abweichungen über alle 37 Stellungen rein statistisch wieder ausgleichen!
Parent - By Frank Brenner Date 2017-11-18 19:06
Zitat:
Bei der von dir angeführten Stellung 22 erhalte ich für die Gesamtknotenzahl bis Tiefe 26 in drei Durchgängen die Werte: 5.329.009 ; 4.865.761 und 12.325.037 Knoten.
Die Geschwindigkeit variiert wesentlich geringer: 7612 ; 7294 und 7519 Kiloknoten/s. (berichtigt!)


Ja, so stark kann sich das bei einer einzelnen Stellung unterscheiden.

Bei allen 37 Stellungen gleicht sich das aber ganz schön stark aus.
Parent - - By Guenter Stertenbrink Date 2017-11-18 15:56
Tiefe ist nicht gleich Tiefe. Sie haengt von der Zahl der Kerne ab.
Tiefe 26 mit 2 Kernen ist "tiefer" als Tiefe 26 mit einem Kern.
Er "sieht" mehr.
Parent - By Florian Wieting Date 2017-11-18 16:02 Upvotes 1
Nein
Parent - - By Frank Brenner Date 2017-11-18 19:04
Kannst du das anhand des Stockfish Sourcecodes belegen ?

Nach meinen Erkenntnissen ist dies bei SF nicht der Fall.

Die zusätzlichen Cores werden ausschließlich zur Beschleunigung eingesetzt und nicht um die selektive Suche auf eine weniger selektive Suche mit weniger Schnitten zu verdichten.
Parent - - By Patrick Götz Date 2017-11-18 23:30
Ist leicht zu testen.
Lasse SF mit 2 (oder 4) Kernen und feste Tiefe gegen SF mit 1 Kern und gleicher fester Tiefe antreten.
SF mit 2 (oder 4) Kernen wird gewinnen außerdem auch noch weniger Bedenkzeit verbrauchen.
Parent - - By Florian Wieting Date 2017-11-19 00:34 Edited 2017-11-19 00:37
Steile These, deren Basis ich für sehr wackelig halte, die ich mit meinem Q6600 mit seinen vier Cores leider schwer widerlegen kann. Zwei gegen einen Core werde ich probeweise mal laufen lassen. (Nachtrag: 3:1 wäre auch nicht ganz schlecht.)
Aussagekräftige Werte würde ich aber erst ab 4:1 aufwärts erwarten.
Die Aussage zur Bedenkzeit ist allerdings trivial.
Parent - - By Thomas Plaschke Date 2017-11-19 04:10
Es scheint zu stimmen. 4 Threads gegen 1 Thread (Auswertung mit Elostat):
Individual statistics:

1 asmFishW_031117-4T        : 3025  500 (+ 87,=398,- 15), 57.2 %
   asmFishW_031117          : 500 (+ 87,=398,- 15), 57.2 %

2 asmFishW_031117           : 2975  500 (+ 15,=398,- 87), 42.8 %
   asmFishW_031117-4T       : 500 (+ 15,=398,- 87), 42.8 %


Möglicherweise "korrigieren" zusätzliche Threads die spekulativen Suchmethoden.

Viele Grüße
Th. Plaschke
Parent - By Patrick Götz Date 2017-11-19 09:25
So ist es.
Ich erinnere mich auch gelesen zu haben , das dieser Effekt für die Spielstärke bedeutender ist als die reduzierte Bedenkzeit um eine bestimmte Rechentiefe zu erreichen.
Parent - - By Thomas Müller Date 2017-11-19 11:30
Parent - By Florian Wieting Date 2017-11-19 14:20
Hallo Thomas,

danke, das kannte ich nicht!

Viele Grüße
Florian
Parent - - By Florian Wieting Date 2017-11-19 14:38 Upvotes 1
Da bin ich echt ein Stück klüger geworden!

CPU Intel Q6600, 2,4 GHz
Engines: asmFishW_2017-05-22 mit 4 Cores und 1 Core, jeweils 2048 MB Hashtables
Buch: Fritz15.ctg mit Begrenzung auf 6 Züge, Repertoirebreite 250, kein Lernen
Rechentiefe: 20 Halbzüge, Pondern aus


1  asmFishW_2017-05-22_base_4   +44  +31/=163/-6  56.25%    112.5/200
2  asmFishW_2017-05-22_base_1   -44  +6/=163/-31  43.75%    87.5/200


Günters und Patricks These ist also damit und mit Thomas' Ergebnis gefestigt.
Ich habe mich geirrt!

Viele Grüße
Florian
Parent - - By Florian Wieting Date 2017-11-20 13:11
Und hier das Ergebnis für Rechentiefe 22, sonstige Einstellungen wie oben:

Q6600@2,4GHz, 22 Ply / 22 Ply

1  asmFishW_2017-05-22_base_4   +58  +38/=157/-5  58.25%    116.5/200
2  asmFishW_2017-05-22_base_1   -58  +5/=157/-38  41.75%    83.5/200


Verblüffend!
Parent - - By Hauke Lutz Date 2017-11-20 14:04
http://www.fastgm.de/threads1.html

Das Thema hat Andreas schon sehr ausführlich und sehr gut mit Stockfish DD behandelt.
Dort sind mehrere Kernverdopplungen mit 15",60" und 240" + 0,05" getestet worden.
Ein wirklich schönes Experiment.
Parent - - By Florian Wieting Date 2017-11-20 14:30
Danke, Hauke!

Das bildet das Thema, um das es hier geht, aber nicht 1 zu 1 ab.
Bei voreingestellter Bedenkzeit sind mehrere Kerne verständlicherweise im Vorteil. Andreas Strangmüller hat jedoch nachgewiesen, dass dieser Vorteil mit wachsender Threadzahl nicht linear ansteigt.

Hier ging es aber um eine voreingestellte Rechentiefe, bei der ich fälschlicherweise vermutete, dass mehrere Kerne zwar schneller auf diese Tiefe kommen, aber damit kein qualitativer Vorteil verbunden sei.

Fazit, wie Günter es schon anfangs formulierte:
Mehr Kerne "sehen" trotz gleicher Tiefe und geringerer Rechenzeit "mehr".

Ich kann mir diesen Effekt nur so erklären, dass mehrere Threads den Rechenbaum aufgrund des parallelen Suchens breiter anlegen, dabei gelegentlich auf ein paar interessante Varianten stoßen und dann selektiv vertiefen, die bei nur einem Thread gar nicht in Erwägung gezogen werden.
Ich wiederhole mich: Ein Multithread-Algorithmus ist nun mal nicht deterministisch! Siehe bei Lars Bremer.

Viele Grüße
Florian
Parent - By Hauke Lutz Date 2017-11-20 15:14
Das der Link dieses Thema nicht wiedergibt stimmt leider.
Die Vermutung, dass die Engine manche der "unnötigen" Kerne dazu nutzt um vermeintlich "uninteressante" Varianten zu berechnen wird niemand bestreiten.
Interessant wäre zu erfahren, wie viel mehr die Kerndopplungen in die Breite rechnen lassen muss/kann um trotzdem nur auf die gleiche Tiefe zu kommen und wie viel Elo es ausmacht, wenn man Zeit und Tiefe als Vorgaben festlegt.
In wie weit man das Einstellen kann weiß ich leider nicht.
Ich meine mich aber erinnern zu können, dass es unter Fritz14 in der Vollanalyse möglich war die Breite des Variantenbaumes der ersten Züge festzulegen.
Parent - - By Michael Scheidl Date 2017-11-20 15:58
Zitat:
Verblüffend!

Wahrlich! Hochinteressante Resultate, die ich so nicht erwartet hätte. Allerdings vermute ich, daß der Effekt zwischen unterschiedlichen Engines, gegen einander statt gegen sich selbst, meßbar geringer ausfiele. - Mir scheint daß bei tiefenidentem Stockfish mit 4 statt 1 Core eine Verstärkung auftritt, die mindestens einem Extraply entspricht. (Ich weiß nicht was +1 Ply in der Gegend von d21 bei Stockfish so bringt.) Doch auch das könnte bei anderen Engines unterschiedlich ausfallen, es sei denn die ganze Suchlogik wäre dieselbe.

Wie dem auch sei, danke für die informativen Ergebnisse.
Parent - - By Hauke Lutz Date 2017-11-20 16:37
Bei weniger selektiven Engines müsste der Vorteil in der Theorie geringer ausfallen, weil ohnehin schon viel mehr berechnet wird.
Parent - By Hauke Lutz Date 2017-11-20 16:40
Mit Komodo sollte dies mit der Einstellung "Selectivity" zu beweisen sein.
Parent - By Frank Brenner Date 2017-11-20 03:08
Hallo  Patrick,

wow, das hätte ich nicht gedacht! Perfekte Idee !

Hab heute einmal bis Tiefe 10 asmfish 8 core gegen asmfish 1 core spielen lassen. Das Ergebnis:  773,4  vs 226,5

So ein Ergebnis hatte ich bis gestern nie erwartet.

Grüße
Frank
Parent - - By Guenter Stertenbrink Date 2017-11-19 01:47
Frank Brenner schrieb:

Kannst du das anhand des Stockfish Sourcecodes belegen ?

Nach meinen Erkenntnissen ist dies bei SF nicht der Fall.

Die zusätzlichen Cores werden ausschließlich zur Beschleunigung eingesetzt und nicht um die selektive Suche auf eine weniger selektive Suche mit weniger Schnitten zu verdichten.


Ursache ist wohl die lazy SMP.
Alle Kerne machen im Prinzip dieselbe Analyse, speichern aber ihre Ergebnisse
und Bewertungen der Varianten in demselben Hash, auf den dann jeweils alle Kerne
zugreifen koennen. Dadurch erreichen alle Kerne etwa die gleiche Tiefe, allerdings hilft
der verbesserte Hash aber auch, um schneller eine hoehere Tiefe zu erreichen.
Wie gross der Effekt ist, wieviel Elo die Verdopplung der Kerne bei gleicher Tiefe
ausmacht waere ein interessanter Test.Das sollte man (ich ?) mal testen, wie von Pattrick
vorgeschlagen.
cutechess-cli : depth=plies
Parent - - By Frank Brenner Date 2017-11-20 03:16
Hallo Günter,

du hast recht. Der Unterschied ist sehr groß. Hab Patrick schon geantwortet.

Also was sagt uns das ?

Time to depth ist kaum relevant
kn/s ist kaum relevant

Das einzige was wirklich genau ist, ist ein praktischer Spieletest mit hunderten von Partien.

Sehr spannend ist dieses PDF von Andreas Strangmüller http://www.fastgm.de/schach/SMP-scaling-SF8-K10.4.pdf

Während  4 vs 8 cores  noch zu +48 ELO führt udn
               8 vs 16 cores noch +32 ELO  einbringt

scheint zumindestens bei Andreas bei 16 vs 32 Cores  weder bei Komodo 10.4 noch bei SF 8 ein ELO Plus am Ende bei herausspringen

(Bei mikroskopischen Bedenkzeiten von 10" + 0.1" pro Partie)

Grüße
Frank
Parent - By Guenter Stertenbrink Date 2017-11-20 15:13
ich hab's auch erst seit ein paar Monaten (genau) gewusst. Davor kam's mir hoechstens merkwuerdig vor,
dass ich mit Tablets auf so relativ gute Tiefe kam im Vergleich zum TCEC-Supercomputer.
Seitdem geb ich oft meine Bewertungen mit Tiefe _und_ Zahl der Kerne an.
Allerdings sind die Kerne auch nicht unbedingt gleichwertig, siehe
http://magictour.free.fr/RYZ3V.GIF
Parent - By Guenter Stertenbrink Date 2017-11-21 03:55 Edited 2017-11-21 04:05
Stockfish vor Version 7 hatte noch kein LazySMP.
Notably Stockfish 7, released in January 2016, switched from YBW to lazy SMP [8] [9] [10].

Gull benutzt kein Lazy SMP (aber LazyGull tut es)
Fritz,Rybka, glaub' ich auch nicht.
Fire vermutlich auch nicht.
Parent - By Ludwig Buergin Date 2017-11-19 11:21
Je mehr Kerne, um so eher findet eine Engine ein sicheres Remis .

     Gruß Ludwig
Parent - By Florian Wieting Date 2017-11-19 14:40
Hallo Günter,

du hattest recht und ich habe mich geirrt!
Siehe die Ergebnisse ein Stück weiter unten.

Ich bin verblüfft, aber habe etwas dazugelernt.
Danke für den Impuls dazu.

Viele Grüße
Florian
- - By Wilfried Eilmes Date 2017-11-14 12:53
Nun ja, nur brauchst du vom Intel 4 Stück um die dort gezeigte Maschine zu bauen, somit sind es schon mal locker 40.000,-- nur für die CPU Bestückung
Gruß
Wilfried
Parent - By Guenter Stertenbrink Date 2017-11-15 06:45
fuer 40000 kriegt man mindestens 50 Ryzen1700x, macht 1Gn/s bei 8kW
oder 800 Z3735 tablets mit 1.4 Gn/s bei 5 kW

warum kann man nicht 25 von diesen Z3725 boards
verbinden und davon einen Computer machen ?
Das waeren dann ca. 40cmx30cm.
Davon mehrere uebereinander ..
Kommunikation untereinander darf ja langsam sein,
aber jeder rechnet unabhaengig mit eigenem RAM
ganz "normal" .
Up Topic Hauptforen / CSS-Forum / neue Schachbenchmarks für diverse CPUs

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill