Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Starker Elo Rückgang von Stockfish bei Multipv
- - By Lothar Jung Date 2022-12-20 11:52 Upvotes 1
Hier der Blog:

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

MulitPV2=97 Elo

Lothar
Parent - By Max Siegfried Date 2022-12-20 12:31
Das war doch zu erwarten.
Je besser Stockfish im normalen Modus spielt (ans Limit optimiert), desto überflüssiger wird der Multipv, weil Multipv inzwischen in 99,9% der Fälle nichts besseres entdecken kann aber pro Zug deutlich weniger Tiefe erreicht.
Parent - - By Stefan Pohl Date 2022-12-20 12:53 Edited 2022-12-20 13:00
Lothar Jung schrieb:

Hier der Blog:

<a class='ura' href='https://github.com/official-stockfish/Stockfish/wiki/Useful-data#elo-cost-of-using-multipv'>https://github.com/official-stockfish/Stockfish/wiki/Useful-data#elo-cost-of-using-multipv</a>

MulitPV2=97 Elo

Lothar


Das ist doch völlig in Ordnung. Der Test wurde mit meinen UHO-Eröffnungen gemacht, die alle Elo-Abstände mindestens um Faktor 2 (eher 2.3) spreizen. Ergo reden wir von 40-50 Elo Spielstärkeverlust bei MultiPV=2. Das ist m.E. ein erwartbarer Wert. Denn es müssen ja 2 beste Züge mit Hauptvarianten berechnet werden. Zudem sind die AlphaBeta-Cutoffs schlechter, weil "weiter". Weil sie ja den zweitbesten Zug mit einschließen müssen, der ja eine schlechtere Bewertung hat. Dadurch hat man zusätzlich auch weniger AlphaBeta-Cutoffs, also weniger abgeschnittene Varianten in der Suche, was den Branching-Faktor verschlechtert. Insofern ist der gemessene Spielstärkeabfall durchaus im erwartbaren Bereich. Alles in Ordnung.
Deswegen setzt man ja bei Komodo auf die MCTS-Suche, da diese im MultiPV-Betrieb quasi keinen Spielstärkeverlust hat. Somit ist man ab MultiPV >= 3 in einem Bereich, wo die Komodo MCTS dem normalen Komodo AlphaBeta mindestens ebenbürtig ist und bei mehr als MultiPV 3 (also 5 z.B.) ist die MCTS-Version dann sogar stärker. Das ist ja der Hauptgrund, warum MCTS in der Komodo Engine integriert ist. Warum das bei Stockfish nicht auch mal gemacht wird, entzieht sich meiner Kenntnis.
Parent - - By Lothar Jung Date 2022-12-20 19:39 Upvotes 1
Dazu ein Tournament gepostet auf Discord:

I sometimes like to run Sf and Lc0 at the same time both at PV=8 or so, easily done in Arena (and Lc0 GPU only costs CPU 2 threads).  The only thing is when they do even have 'my' move and I have to enter it to see some crushing refutation.
Thanks for the Sf link (https://github.com/official-stockfish/Stockfish/wiki/Useful-data#elo-cost-of-using-multipv).  I assume its self-ply, and Pohl's data, although a year ago, is about right still:  https://www.sp-cc.de/experiments.htm

https://cdn.discordapp.com/attachments/425419483016855563/1054828549015617696/PohlMultiPV.png
Parent - By Stefan Pohl Date 2022-12-20 20:13 Edited 2022-12-20 20:23 Upvotes 1
Lothar Jung schrieb:

Dazu ein Tournament gepostet auf Discord:

I sometimes like to run Sf and Lc0 at the same time both at PV=8 or so, easily done in Arena (and Lc0 GPU only costs CPU 2 threads).  The only thing is when they do even have 'my' move and I have to enter it to see some crushing refutation.
Thanks for the Sf link (<a class='ura' href='https://github.com/official-stockfish/Stockfish/wiki/Useful-data#elo-cost-of-using-multipv'>https://github.com/official-stockfish/Stockfish/wiki/Useful-data#elo-cost-of-using-multipv</a>).  I assume its self-ply, and Pohl's data, although a year ago, is about right still:  <a class='ura' href='https://www.sp-cc.de/experiments.htm'>https://www.sp-cc.de/experiments.htm</a>

<a class='ura' href='https://cdn.discordapp.com/attachments/425419483016855563/1054828549015617696/PohlMultiPV.png'>https://cdn.discordapp.com/attachments/425419483016855563/1054828549015617696/PohlMultiPV.png</a>


Stimmt, hatte ich gar nicht mehr daran gedacht. Lange her und ich hatte den Kopf so voll von der Entwicklung meiner Tools, besonders des EAS Tools, da kann einem das schon mal entfallen. Aber das Experiment von mir passt ja gut dazu.
Parent - By Jörg Oster Date 2022-12-21 11:27 Upvotes 1
MCTS kann man nicht mit AB-Engines mit Principal Variation Search und deren MultiPV-Modus vergleichen.
Das ist mehr oder weniger ein Werbegag des Komodo-Teams.

MCTS funktioniert einfach anders in der Hinsicht.
Parent - - By Wolfram Bernhardt Date 2022-12-21 09:13 Upvotes 1
Hallo Lothar,

wie meintest Du den Rückgang denn?

Meintest Du "gegenüber früher", also dass vor 2 Jahren der MPV Stockfish weniger Elo kostete?
Oder meintest Du "gegenüber dem normalen 'nur Hauptvariante anzeigen' " ?

Zum ersten Fall könnte ich nichts sagen. Zum anderen, dass mir rund 100 Elo bei MPV2 recht realistisch und gar nicht so viel vorkommt. Der zweitbeste Zug wird ja parallel mit untersucht, wobei sich die Suchen für beide Züge über die Hashtable gegenseitig befruchten...
Ne, wobei das eigentlich falsch ausgedrückt ist, es gibt gar nicht zwei separate Suchen. Es gibt eigentlich nur eine, die die Hashtable füllt. Dabei wird gesteuert, wieviele Züge auf obersten Ebene bei iterative deepening vertieft werden.
Und dann einen Mechanismus, der neben der Hauptvariante auch die zweibesten (..drittbesten, viertbeste...) aus der Hashtable zieht.

Aber ich sollte mich nicht zu weit aus dem Fenster lehnen, in bin bisher mehrmals kläglich an der Paralleliserung meiner Programme gescheitert. Wobei MPV wahrscheinlich an sich einfacher ist, müsste ich mal versuchen.

Ob mal jemand untersucht hat, wieviele Elo höhere MPVs kosten? Kostet MPV3 weitere 100 Elo? Vermutlich nicht, sondern weniger, aber wetten würde ich nicht drauf... bzw. nur einen kleinen Betrag

Viele Grüße
     Wolfram
Parent - - By Lothar Jung Date 2022-12-21 10:05 Upvotes 2
Hallo Wolfram,

hier die Infos:

„Elo cost of using MultiPV

MultiPV provides the N best moves, and their associated principal variation. This is a great tool to understand the options available in a given position. However, this information does not come for free, and the computational cost computing it reducing the quality of the bestmove found relative to a search that only needs to find a single line. To quantify this, a tournament has been played with SF 15.1, for MultiPV 1-5, using LTC (60s+0.6s), as well as the UHO book. The following is the result

MultiPV  Elo  Elo-err
1     0.0  0.0
2  -97.2  2.1
3  -156.7  2.8
4  -199.3  2.9
5  -234.5  2.8
Parent - By Wolfram Bernhardt Date 2022-12-21 11:40 Upvotes 1
Ach super. Ja, das entspricht meiner Erwartung. Für 100 Elo bekommt man eine Variante dazu, für 200 schon 3.
Parent - - By Andreas Mader Date 2022-12-21 10:34 Upvotes 1
Wolfram Bernhardt schrieb:

Ob mal jemand untersucht hat, wieviele Elo höhere MPVs kosten? Kostet MPV3 weitere 100 Elo? Vermutlich nicht, sondern weniger, aber wetten würde ich nicht drauf... bzw. nur einen kleinen Betrag


Aus akademischen Gründen ist das sicherlich interessant, aber bei einem Engine-Engine-Match macht MPV keinen Sinn und bei der Analyse von Menschen-Partien machen auch ein paar ELO weniger keinen Unterschied. Oder habe ich jetzt irgendeine Anwendung übersehen, wo man das sinnvoll einsetzen kann?
Parent - By Wolfram Bernhardt Date 2022-12-21 11:46 Edited 2022-12-21 11:56 Upvotes 1
Hallo!

Ja, das stimmt. In Engine-Matches ist das Quatsch.

Wenn man ein Spiel live schaut, kann es aber schon sehr spannend sein.

Findet sie/er den besten?
Wenn nicht, wie groß ist der Unterschied? Habe ich zuletzt sogar bei den Meltwater-Turnieren öfter gesehen, dass Partien merhmals von "komplett verloren" zu "komplett gewonnen" umschwangen.
usw.

Was gegen Computer zuhause auch ganz witzig ist: Man spielt, zB. gegen Stockfisch, aber nimmt von SF immer nur den zweitbesten (sofern es einen gibt). Klingt nach einem großen Handicap? Ja, schon, aber es muss einem erstmal gelingen, SF in eine Situation zu bringen, in der der Zweitbeste auch wirklich verliert.

Viele Grüße
     Wolfram
Parent - - By Jörg Oster Date 2022-12-21 11:23 Upvotes 2
Hallo Wolfram,

eigentlich sind es bei Stockfish schon 2 separate Suchvorgänge bei MultiPV=2.
Dies ist der Implementierung geschuldet.

Für den ersten Zug werden alle Züge untersucht.
Für den zweitbesten Zug werden auch wieder alle Züge untersucht,
bis auf den ersten, der ausgespart wird, usw.

Bei MultiPV=x werden also x Suchvorgänge benötigt.

Ich hatte mal versucht, das so zu ändern, dass alle PV-Linien in einem Suchvorgang erledigt werden.
Das hat natürlich einen spürbaren Geschwindigkeitsvorteil gebracht.
Leider reduziert dies aber auch die "Qualität" der einzelnen PV-Linien.

Wobei dies aber auch schwierig zu quantifizieren ist ...

Gruß,
Jörg.
Parent - By Wolfram Bernhardt Date 2022-12-21 11:55 Upvotes 1
Hallo Jörg!

Ach... das ist ja interessant. Wusste ich tatsächlich nicht.

Die Frage "wieviele Suchen sind es" ist natürlich kaum scharf zu beantowrten, gerade wenn mehrere Threads beteiligt sind, irgendwie macht ja jeder Thread seine eigene Teilsuche.

Aber in der Tat hätte ich nicht gedacht, dass für den zweitbesten eine komplett eigene Suche durchgeführt wird. Das macht die Implementierung ja sehr viel einfacher.

Ich dachte, es fällt quasi größtenteil bei der Suche mit ab und dann holt man Teile aus der HT und füllt Lücken. Aber bei den alpha-beta-Abschneidungen gelangt vieles vermutlich nicht in der HT, was man für zweit.. (..dritt ..viert..)-beste Züge braucht und dann ist mit kompletten Suchen einfacher.

Das merke ich mir, danke für den Hinweis!

Viele Grüße
     Wolfram
Parent - - By Jörg Oster Date 2022-12-21 22:08 Upvotes 4
Ich habe hier https://github.com/joergoster/Stockfish/tree/simpleMultiPV diese vereinfachte Version nochmal online gestellt.
Bei Interesse kann ich morgen Compiles zur Verfügung stellen.
Parent - By Klaus S. Date 2022-12-22 00:48 Upvotes 2
Hallo Jörg,

ich habe Interesse an deiner Version.
Parent - By Peter Martan Date 2022-12-22 08:44 Upvotes 1
Morgähn!

Ja, bitte auch um Compile, und könntest du noch dazu so gut sein, und es auch wieder hier posten, wenn's so weit ist?
Danke und schöne Weihnachten, Jörg!
Parent - By Lothar Jung Date 2022-12-22 09:44 Upvotes 1
Danke!
Parent - - By Peter Martan Date 2022-12-22 18:00 Upvotes 2
Hab' ihn schon, läuft rund im Fritz mit seinem neuen grünen NNUE, danke!
Parent - - By Jörg Oster Date 2022-12-22 18:45 Upvotes 1
Prima!

Hier nun auch für alle anderen:
https://github.com/joergoster/Stockfish/releases/tag/mpv1
Das zip-File enthält ein AVX2 und ein BMI2 Compile.

Ich hatte jetzt noch keine Zeit, irgendwelche Tests zu machen.
Auf eure Erfahrungen und Tests bin ich daher sehr gespannt.

Ich wünsche allen ein schönes Weihnachtsfest!
Parent - By Peter Martan Date 2022-12-22 19:36 Edited 2022-12-22 19:46 Upvotes 1
Ok, hier mal 3 Vergleichs-Runs des gestrigen SF dev.- Compiles sowohl  single primary als auch mit MultiPV=4, mit dem bmi2- Compile von dir (im bench hat's auf meinem Rechner die Nase vorn gegenüber dem avx2) ebenfalls MV4 (in der Liste kürz' ich's immer so ab, weil's sonst mit langen Namen manchmal die Tabellen- Ordnung stört). Davon noch kein eigener Gegenversuch single primary, weil ja der Unterschied praktisch nur im Compile liegen würde. Wenn's jemand brennend interessiert, kann ich noch einen machen zu Kontrollzwecken, interessanter wäre ein Vergleich mit einem älteren SF, davon hab' ich leider in dieser Liste keinen mehr drin, weil ich in der Regel nur die best settings dauerhaft speichere. Aber was ich noch so im Kopf habe, war der Abstand bei SF 14 zwischen single und multi primary noch ein ähnlicher.

Das sind die bekannten 256 Stellungen

https://www.dropbox.com/s/lpg29zoyvh03dza/256.epd?dl=0

TC ist bei allen in der Liste 5"/Stellung, 30 Threads der 16x3.5GHz CPU und für LC0 die 3070ti GPU. Aus der Liste nur die relevanten Ausschnitte, die Listen der Lösungen auch nur auf Anfrage, der simpler MultiPV- SF heißt Stockfishdev-20221222-nogit (als Nr. 16 im MV4, also MultiPV=4) , SF dev. von gestern als abrok avx2- compile: 12 Stockfishdev-20221221-c6208861 (MV4 als Nr.12 gelistet, der kommt ein zweites Mal als Nr. 20 im single primary mode vor)

    Program                                    Elo   +/-  Matches  Score   Av.Op.   S.Pos.   MST1    MST2   RIndex

  1 HypnoSFmpv210922-Set1-ImbInv             : 3568    3  10834    60.4 %   3495   206/256    1.8s    2.4s   0.73
  2 ShashChess26.1-GoldDigger-MV4            : 3562    3  10542    59.6 %   3494   195/256    1.7s    2.5s   0.72
  3 ShashChess26.2-MV4                       : 3562    3  10538    59.6 %   3494   198/256    1.8s    2.5s   0.73
  4 Crystal5KWK-MV4                          : 3561    3  10575    59.4 %   3495   196/256    1.7s    2.5s   0.70
 
12 Stockfishdev-20221221-c6208861-MV4        : 3547    3   9734    57.4 %   3495   177/256    1.6s    2.7s   0.70
13 Stockfish110922-MV4                       : 3547    3   9852    57.4 %   3495   178/256    1.7s    2.7s   0.69
14 Stockfish231022-MV4                       : 3545    3   9834    57.1 %   3495   180/256    1.8s    2.8s   0.68
15 Stockfish15.1-MV4                         : 3545    3   9828    57.1 %   3495   178/256    1.8s    2.7s   0.68
16 Stockfishdev-20221222-nogit-MV4           : 3544    3   9748    57.0 %   3495   176/256    1.7s    2.7s   0.69

20 Stockfishdev-20221221-c6208861            : 3523    3   9177    53.5 %   3498   151/256    1.6s    3.0s   0.63
21 Dragon3.1byKomodoChess64-bit-MV4          : 3514    3   9016    52.2 %   3499   145/256    1.6s    3.1s   0.57
22 Dragon3.2byKomodoChess64-bit-MV4          : 3513    3   8963    52.0 %   3499   149/256    1.9s    3.2s   0.57
23 Berserk10-MV4                             : 3488    3   8479    48.0 %   3501   124/256    1.8s    3.4s   0.49
24 Lc0v0.29.0-807263                         : 3486    3   8618    47.4 %   3504   121/256    1.8s    3.5s   0.43

50 Minic3.31                                 : 3412    4   7464    36.6 %   3508    73/256    2.0s    4.1s   0.30
51 Igel3.0.1064BMI2                          : 3391    4   7303    33.8 %   3508    61/256    2.0s    4.3s   0.23
52 Igel3.2.064BMI2AVX2                       : 3390    4   7298    33.6 %   3508    59/256    1.8s    4.3s   0.24

MST1  : Mean solution time (solved positions only)
MST2  : Mean solution time (solved and unsolved positions)
RIndex: Score according to solution time ranking for each position
Parent - - By Jörg Oster Date 2023-01-11 22:45 Upvotes 2
Ich habe den Branch aktualisiert. https://github.com/joergoster/Stockfish/tree/simpleMultiPV
Basiert jetzt auf der aktuellen Dev-Version.
Parent - - By Peter Martan Date 2023-01-11 23:28
Danke, Jörg.
Aber das Compile ist noch das alte, richtig?
Parent - - By Jörg Oster Date 2023-01-12 11:00 Upvotes 2
Ich habe gerade auch das zip-File ersetzt, aber nur die AVX2-Version dieses Mal.
Parent - - By Peter Martan Date 2023-01-12 11:31
Danke.
Gleich mal als Pendant zum anderen Thread die Sirobaba- Chaika- Stellung probiert, wir hatten sie auch per Mail damals, glaube ich.

Code:
Stockfish dev-20230112-nogit by the Stockfish developers (see AUTHORS file)
position fen 2k2Br1/p6b/Pq1r4/1p2p1b1/1Ppp2p1/Q1P3N1/5RPP/R3N1K1 b - - 0 31
setoption name multipv value 4
go depth 35
info string NNUE evaluation using nn-a3dc078bafc7.nnue enabled
info depth 1 seldepth 1 multipv 1 score cp 95 nodes 90 nps 45000 hashfull 0 tbhits 0 time 2 pv d6d8
info depth 1 seldepth 1 multipv 2 score cp -114 nodes 90 nps 45000 hashfull 0 tbhits 0 time 2 pv d4d3 f8d6 b6d6
info depth 1 seldepth 1 multipv 3 score cp -167 nodes 90 nps 45000 hashfull 0 tbhits 0 time 2 pv d4c3 f8d6
info depth 1 seldepth 1 multipv 4 score cp -190 nodes 90 nps 45000 hashfull 0 tbhits 0 time 2 pv e5e4 f8d6 b6d6
info depth 2 seldepth 2 multipv 1 score cp 95 nodes 174 nps 87000 hashfull 0 tbhits 0 time 2 pv d6d8
info depth 2 seldepth 2 multipv 2 score cp 87 nodes 174 nps 87000 hashfull 0 tbhits 0 time 2 pv d6e6
info depth 2 seldepth 2 multipv 3 score cp -114 nodes 174 nps 87000 hashfull 0 tbhits 0 time 2 pv d4d3 f8d6 b6d6
info depth 2 seldepth 2 multipv 4 score cp -167 nodes 174 nps 87000 hashfull 0 tbhits 0 time 2 pv d4c3 f8d6
info depth 3 seldepth 2 multipv 1 score cp 95 nodes 253 nps 126500 hashfull 0 tbhits 0 time 2 pv d6d8
info depth 3 seldepth 2 multipv 2 score cp 87 nodes 253 nps 126500 hashfull 0 tbhits 0 time 2 pv d6e6
info depth 3 seldepth 3 multipv 3 score cp 63 nodes 253 nps 126500 hashfull 0 tbhits 0 time 2 pv d6d7 c3d4 e5d4
info depth 3 seldepth 3 multipv 4 score cp -114 nodes 253 nps 126500 hashfull 0 tbhits 0 time 2 pv d4d3 f8d6 b6d6
info depth 4 seldepth 2 multipv 1 score cp 95 nodes 370 nps 123333 hashfull 0 tbhits 0 time 3 pv d6d8
info depth 4 seldepth 2 multipv 2 score cp 87 nodes 370 nps 123333 hashfull 0 tbhits 0 time 3 pv d6e6
info depth 4 seldepth 4 multipv 3 score cp 63 nodes 370 nps 123333 hashfull 0 tbhits 0 time 3 pv g5e3 f8d6
info depth 4 seldepth 4 multipv 4 score cp -158 nodes 370 nps 123333 hashfull 0 tbhits 0 time 3 pv d6d7 f8c5
info depth 5 seldepth 2 multipv 1 score cp 219 nodes 457 nps 152333 hashfull 0 tbhits 0 time 3 pv d6d8
info depth 5 seldepth 2 multipv 2 score cp 87 nodes 457 nps 152333 hashfull 0 tbhits 0 time 3 pv d6e6 c3d4
info depth 5 seldepth 4 multipv 3 score cp 63 nodes 457 nps 152333 hashfull 0 tbhits 0 time 3 pv g5e3 f8d6 b6d6
info depth 5 seldepth 4 multipv 4 score cp 26 nodes 457 nps 152333 hashfull 0 tbhits 0 time 3 pv d6c6
info depth 6 seldepth 4 multipv 1 score cp 63 nodes 1542 nps 385500 hashfull 0 tbhits 0 time 4 pv g5e3 f8d6 b6d6
info depth 6 seldepth 6 multipv 2 score cp -63 nodes 1542 nps 385500 hashfull 0 tbhits 0 time 4 pv g8f8 f2f8 d6d8 f8d8 g5d8
info depth 6 seldepth 4 multipv 3 score cp -170 nodes 1542 nps 385500 hashfull 0 tbhits 0 time 4 pv d6e6 f8c5 b6c6
info depth 6 seldepth 3 multipv 4 score cp -183 nodes 1542 nps 385500 hashfull 0 tbhits 0 time 4 pv d6d8 f8c5 b6e6 c5a7
info depth 7 seldepth 5 multipv 1 score cp 88 nodes 2044 nps 511000 hashfull 0 tbhits 0 time 4 pv g5e3 f8d6 b6d6
info depth 7 seldepth 6 multipv 2 score cp -63 nodes 2044 nps 511000 hashfull 0 tbhits 0 time 4 pv g8f8 f2f8 d6d8 f8d8 g5d8
...
...
info depth 32 seldepth 40 multipv 1 score cp 125 nodes 66985719 nps 1853044 hashfull 1000 tbhits 0 time 36149 pv d6d7 c3d4 e5d4 f8c5 b6h6 g3f1 d4d3 a1d1 g8e8 a3a5 h6c6 a5a1 g5d8 f1e3 c6e6 g2g3 h7e4 a1b2 e4a8 e1g2 a8f3 d1e1 e6a6 e3f1 e8e1 g2e1 f3b7 b2e5 a6c6
info depth 32 seldepth 51 multipv 2 score cp 124 nodes 66985719 nps 1853044 hashfull 1000 tbhits 0 time 36149 pv g5e3 f8d6 b6d6 a1a2 d4d3 g3f1 e3b6 a3c1 g4g3 h2g3 e5e4 c1d2 d6e6 f1e3 e6e5 e1c2 d3c2 a2c2 g8d8 d2e1 h7g6 c2e2 d8d3 f2f8 c8d7 g1h2 d3c3 f8f4 c3d3 f4h4 b6c7 e1f2 e5g5 h4h3 c7e5 e2e1 c4c3
info depth 32 seldepth 39 multipv 3 score cp 107 nodes 66985719 nps 1853044 hashfull 1000 tbhits 0 time 36149 pv d6f6 f8c5 g5e3 g1h1 e3f2 c5b6 f2g3 h2g3 f6f1 h1h2 h7b1 e1f3 g4f3 g2f3 g8h8 h2g2 f1h1 g3g4 h8h2 g2g3 h2h3 g3f2 h1h2 f2g1 e5e4 c3d4 b1d3 b6c7 h2e2 a1a2 e4f3 a2e2 f3e2 g1f2
info depth 32 seldepth 47 multipv 4 score cp 0 nodes 66985719 nps 1853044 hashfull 1000 tbhits 0 time 36149 pv d4d3 f8d6 b6d6 f2f7 h7g6 f7b7 g8f8 b7b5 g5e3 g1h1 g6e8 b5c5 e3c5 b4c5 d6f6 e1d3 c4d3 a3b4 e8c6 b4g4 c8c7 h2h3 f6e7 g4g6 f8f2 g3f5 e7c5 g6f7 c7b6 a1b1 b6a5 b1a1 a5b6
info depth 32 currmove d6f6 currmovenumber 3
info depth 31 currmove d6f6 currmovenumber 3
info depth 30 currmove d6f6 currmovenumber 3
info depth 29 currmove d6f6 currmovenumber 3
info depth 28 currmove d6f6 currmovenumber 3
info depth 27 currmove d6f6 currmovenumber 3
info depth 26 currmove d6f6 currmovenumber 3
info depth 25 currmove d6f6 currmovenumber 3
info depth 32 seldepth 43 multipv 1 score cp 151 nodes 69341056 nps 1857117 hashfull 1000 tbhits 0 time 37338 pv d6f6 f8c5 g5e3 g1h1 e3f2 c5b6 f2g3 h2g3 f6f1 h1h2 h7b1 e1f3 g4f3 g2f3 g8h8 h2g2 f1h1 g3g4 h8h2 g2g3 h2h3 g3f2 h1h2 f2g1 e5e4 c3d4 b1d3 a3a2 h2a2 a1a2 h3g3 g1h2 g3f3 b6a7 c4c3
info depth 32 seldepth 40 multipv 2 score cp 125 nodes 69341056 nps 1857117 hashfull 1000 tbhits 0 time 37338 pv d6d7 c3d4 e5d4 f8c5 b6h6 g3f1 d4d3 a1d1 g8e8 a3a5 h6c6 a5a1 g5d8 f1e3 c6e6 g2g3 h7e4 a1b2 e4a8 e1g2 a8f3 d1e1 e6a6 e3f1 e8e1 g2e1 f3b7 b2e5 a6c6
info depth 32 seldepth 51 multipv 3 score cp 124 nodes 69341056 nps 1857117 hashfull 1000 tbhits 0 time 37338 pv g5e3 f8d6 b6d6 a1a2 d4d3 g3f1 e3b6 a3c1 g4g3 h2g3 e5e4 c1d2 d6e6 f1e3 e6e5 e1c2 d3c2 a2c2 g8d8 d2e1 h7g6 c2e2 d8d3 f2f8 c8d7 g1h2 d3c3 f8f4 c3d3 f4h4 b6c7 e1f2 e5g5 h4h3 c7e5 e2e1 c4c3
info depth 32 seldepth 47 multipv 4 score cp 0 nodes 69341056 nps 1857117 hashfull 1000 tbhits 0 time 37338 pv d4d3 f8d6 b6d6 f2f7 h7g6 f7b7 g8f8 b7b5 g5e3 g1h1 g6e8 b5c5 e3c5 b4c5 d6f6 e1d3 c4d3 a3b4 e8c6 b4g4 c8c7 h2h3 f6e7 g4g6 f8f2 g3f5 e7c5 g6f7 c7b6 a1b1 b6a5 b1a1 a5b6
...
...
info depth 35 seldepth 53 multipv 1 score cp 274 nodes 158916433 nps 1872468 hashfull 1000 tbhits 0 time 84870 pv d6f6 f8c5 g5e3 a1a2 f6f2 a2f2 b6f6 g3h1 f6f4 a3b2 g8d8 b2e2 e3f2 h1f2 d4c3 g2g3 d8d2 e2f1 f4f7 c5e3 d2a2 h2h4 a2a1 g1h2 f7f3 e3g5 c3c2 f1g1 f3d5 f2g4 c2c1q g5c1 a1c1 g1a7
info depth 35 seldepth 64 multipv 2 score cp 157 nodes 158916433 nps 1872468 hashfull 1000 tbhits 0 time 84870 pv g5e3 f8d6 b6d6 a1a2 d4d3 g3f1 e3b6 a3c1 g4g3 h2g3 e5e4 c1d2 d6e6 f1e3 e6e5 e1c2 d3c2 a2c2 g8d8 d2e1 h7g6 c2e2 d8d3 f2f8 c8d7 g1h1 b6e3 e2e3 e5h5 h1g1 d3d1 f8a8 d7c6 a8a7 d1e1 e3e1 h5e5 e1d1 e4e3 a7d7 e3e2 d7d6 e5d6 d1d6 c6d6 g1f2 d6c6 f2e2 c6b6 g3g4 b6a6 e2e3 a6b6 e3f4 g6d3
info depth 35 seldepth 49 multipv 3 score cp 144 nodes 158916433 nps 1872468 hashfull 1000 tbhits 0 time 84870 pv d6d7 c3d4 e5d4 f8c5 b6h6 g3f1 g8e8 e1c2 h7c2 f2c2 d4d3 c2f2 d3d2 a3g3 g5h4 g3g4 h4f2 c5f2 h6f6 a1d1 c4c3 f1d2 c3d2 h2h3 e8e6 g1h2 f6g6 g4f3 g6e4 f3f8 d7d8 f8c5 e4c6 c5g5 c6d5 f2e3 d5g5 e3g5
info depth 35 seldepth 55 multipv 4 score cp 0 nodes 158916433 nps 1872468 hashfull 1000 tbhits 0 time 84870 pv d4d3 f8d6 b6d6 f2f7 h7g6 f7b7 g8f8 b7b5 g5e3 g1h1 g6e8 b5c5 e3c5 b4c5 d6f6 e1d3 c4d3 a3b4 e8c6 b4g4 c8c7 h2h3 f6f4 g4g7 f8f7 g7g8 f4c4 h1h2 f7f2 g8g7 c7c8 g7h8 c8d7 h8h7 d7c8
bestmove d6f6 ponder f8c5


37" statt 230101 21 und 230401 12, alles im Bereich der praktischen Irrelevanz, nur um es gleich zu vermelden. Die Tiefe 32 statt 29 beim 0101 und 25 beim 0104 macht wohl bei Stellungen, die noch mehr Tiefe brauchen, mehr Unterschied, aber so what.
Auch hatte ich beim vorigen Compile das bmi2, das im bench auf meinem Rechner die Nase vorn hatte.
Parent - - By Peter Martan Date 2023-01-12 12:46 Edited 2023-01-12 13:46
Und weil ich weiter unten auf Bennos "kostet viel Zeit"- Posting antwortend, von diesem Test, den's mit der vorigen Version schon im damaligen Thread gab, auch wieder schreibe, so schaut's mit derselben Anordnung wie damals jetzt mit der neuen Version aus:



Die vorige Version hieß nur SimpleMV, jetzt ist das heutige Datum im Namen enthalten, verglichen hatte ich damals mit SF211222.
Das ist auch eine praktische Seite von MEA, man speichert die Ergebnis- Zeilen der einzelnen runs und kombiniert sie dann, wenn später mit gleichen Anordnungen neue Engines dazu kommen einfach durch copy paste. So lange man das nur innerhalb derselben Suiten macht, ist es kein Problem, weil immer die gleichen Vergleichszahlen zugrunde liegen.
Parent - - By Jörg Oster Date 2023-01-12 16:20
Es scheint sich zu bestätigen, dass dieser einfachere MV-Modus qualitätsmäßig einbricht.

SF211222MV2 schneidet deutlich besser ab zur Single-Version.
Wohingegen die Simple1201MV3 nur etwas besser ist als die Single-Version,
ähnlich wie die vorherige SimpleMV2 zu deren Single-Version.
Seltsam nur, dass die Simple1201MV4 so viel schlechter ist.
Das verstehe ich nicht so ganz.

Sehr interessant ... vielen Dank für diese Tests, lieber Peter!

Der (gefühlte) Mehraufwand, den Stockfish im MV-Modus betreibt, scheint sich also durchaus auszuzahlen bei diesen kurzen Zeiten.
Es wäre interssant zu sehen, ob das auch so bei 10 Mal längerer Zeit, also 3 Sekunden pro Stellung, ist.
Vielleicht nehme ich das selber mal in Angriff.
Parent - By Peter Martan Date 2023-01-12 17:58 Edited 2023-01-12 18:24
Die 888 bei 300msec sind eine Momentaufnahme so wie alle anderen derartigen Suiten und Rechenzeiten. Die 300 sind aber schon für den MV- Modus etwas verlängert, sonst ist für die und die Fische 200 normal, bei Schröder 100 (der allerdings noch leichtere Stellungen nimmt, den ganzen STS hab' ich nur in der größten 2048er Sammlung drin, mach' ich vielleicht auch noch.

https://www.dropbox.com/s/5eqjhca2e7zi1xd/MEA2K.epd?dl=0

Das sind nochmal die 888:

https://www.dropbox.com/s/1m3cnrnqtq01qnv/MEA888.epd?dl=0

3Sec macht bei diesen Stellungen vermutlich deutlich über 95%, das bringt immer noch genug Diskrimination, aber nicht mehr soviel zusätzlichen Gewinn, wie es mehr Zeit kostet relativ zum statistischen Rauschen, das bei 300msec auch schon nicht mehr groß ist.

So schaut's mit den 256 und 5"/Stellung aus (ein ähnliches Verhältnis von TC zu Schwierigkeit der Stellungen), neu an Nr.15:


    Program                                    Elo   +/-  Matches  Score   Av.Op.   S.Pos.   MST1    MST2   RIndex

10 Stockfishdev-20221221-c6208861-MV4       : 3552    3  10643    58.2 %   3495   177/256    1.6s    2.7s   0.71
11 Stockfish231022-MV4                      : 3550    3  10773    57.9 %   3495   180/256    1.8s    2.8s   0.68
12 Stockfish15.1-MV4                        : 3550    3  10782    57.8 %   3495   178/256    1.8s    2.7s   0.68
13 Stockfishdev-20221222-nogit-MV4          : 3550    3  10671    57.8 %   3495   176/256    1.7s    2.7s   0.70
14 EMAN8.30-MV4                             : 3548    3  10649    57.6 %   3495   178/256    1.8s    2.8s   0.67
15 Stockfishdev-20230112-nogit-MV4          : 3548    3  10715    57.6 %   3495   176/256    1.7s    2.8s   0.68
16 Stockfish15-MV4                          : 3548    3  10738    57.5 %   3495   180/256    1.9s    2.8s   0.68
17 Stockfishdev-20230104-9fe9ff00-MV4       : 3546    3  10592    57.3 %   3495   175/256    1.8s    2.8s   0.68


https://www.dropbox.com/s/lpg29zoyvh03dza/256.epd?dl=0
Parent - - By Benno Hartwig Date 2023-01-12 12:00 Upvotes 1
Ohne MultiPV und guter Zugsortierung kann sich die Engine damit begnügen, tatsächlich nichtoptimale Züge zu widerlegen, also einen genügend starken Antwortzug zu finden.
Bei multipv>1 wird die Engine aber weitere Zugmöglichkeiten komplett durchrechnen, obwohl sie bereits erkannte, dass dieser nicht optimal sein kann.
Das kostet erheblich Zeit.

Ich habe den Eindruck gewonnen, dass beim AB-Algorithmus mit annähernd optimaler Zugsortierung die Bewertung des letztlich besten Zuges ungefähr genau so viele Knoten durchläuft wie bei der Widerlegung sämtlicher anderer Züge zusammen.
Parent - - By Peter Martan Date 2023-01-12 12:19 Edited 2023-01-12 13:05
Benno Hartwig schrieb:

Das kostet erheblich Zeit.

Eben nicht, je nachdem was man unter erheblich versteht und welche Zeit man meint.
Time to depht ja, meistens, aber auch nur je nach Stellung, und was genau sagt dir die eigentlich?
Time to solution nein, wenn's nur drum geht, wie du sagst, einen Zug zu finden, der nicht viel schlechter ist als die nächstbesten Alternativen, findet den die Engine (wenn mir mal von SF allein reden) mit nicht allzu vielen primaries im praktisch relevanten Bereich (ok, vielleicht nicht, wenn wir von very short TC reden) genau so schnell, oft genug, wenn's Züge sind, die in den non primaries dem Pruning zum Opfer fallen deutlich schneller, siehe den Thread über die Nützlichkeit von diesem und jenem. SF dev. single primary eine halbe Stunde (hab' dann noch einen Versuch mit 30 Threads gemacht, weil ich's mal wieder wissen wollte, da war nach 30 Minuten auch immer noch kein ...Tf6 in Sicht) nur einer der beiden zweit- bis drittbesten Züge oben, single thread MultiPV=4 in 12 bzw. 21" (bei den 3 Tage auseinander liegenden dev.- Versionen) gefunden und stabil oben behalten.
Benno, warum glaubst du, teste ich mit den taktischen best move- Stellungen die besten A-B-Sucher praktisch nur mehr mit MultiPV=4, und das mit nicht einfachen Stellungen und einer TC von nur 5"/Stellung (das ist STC, auch wenn ich mit den MEA- Stellungen, die viel "leichter" sind, auf 100msec runtergehe).
Du musst praktisch ein bisschen probieren, bevor du redest, oder dir meine Resutate anschauen, dann wirst du dich wundern, wie wenig "Zeit" MultiPV bei SF heutzutage nur mehr kostet.
Natürlich Ansichtssache, wieviel "viel" ist, aber drum hat's ja eben keinen Sinn über solche Begriffe zu reden, ohne sie genauer zu defineren, und auch wenn du die meistens gemeinte time to depth meinst, ok, wieviel ist bei der viel, da tust du dir noch viel schwerer, etwas zu definieren, weil du die schachliche Relevanz dabei noch weniger kennst.
In keiner Weise kennst du sie, ohne sie in Hinblick auf bestimmte Stellungen und eine bestimmte Hardware zu betrachten.
Und ja, natürlich ist das bei z.B LC0 oder komodo MCTS alles wieder ganz anders, weil bei denen kostet MultiPV praktisch nichts an time to depht, bringt aber halt auch nichts an time to solution (genauer auch wieder: praktisch nichts bei den meisten taktisch schwierigen Stellungen, bei denen er bei A-B schon hilft).

Edit: zu genau diesem Thema hatte ich im damaligen Thread schöne MEA- Vergleiche mit SF dev. und Jörg Osters SimpleMV- Modifikation mit single primary, MultiPV=1, 2, 3 und 4 gezeigt, ich lasse gerade die neue Version laufen und poste dann dort wieder den aktualisierten Screenshot.

Edit, edit, das hier von oben
Zitat:
Time to solution nein, wenn's nur drum geht, wie du sagst, einen Zug zu finden, der nicht viel schlechter ist als die nächstbesten Alternativen, findet den die Engine (wenn mir mal von SF allein reden) mit nicht allzu vielen primaries im praktisch relevanten Bereich (ok, vielleicht nicht, wenn wir von very short TC reden) genau so schnell, oft genug, wenn's Züge sind, die in den non primaries dem Pruning zum Opfer fallen deutlich schneller,

relativiere ich wie folgt stark, bzw. nehme es sogar teilweise zurück:

Das stimmt natürlich nur dann, wenn die Züge, die es zu finden gibt, bei den Stellungen mit wenig bis keinen forcierten Abspielen, tatsächlich so ähnlich gut sind, wie sie scheinen, wenn man sie nur mit Standrechnen und anhand ihrer Evals betrachtet ohne tiefer in die Output- Varianten hinein und wieder rückwärts zu gehen mit der Engine, also keine echte interaktive Analyse macht und oder in großer Partiezahl ausspielen lässt.

Dass Eröffnungsstellungen (nur so als Beispiel, weil's bei denen am meisten zählt und weil sie typischer Weise noch keine forcierten taktischen Abspiele bergen) nicht eine effektivere Suche nach dem very best move (von dem's ja genau genommen schon immer nur einen gibt, man kennt ihn nur oft genug nicht genau genug) im single primary variant mode erfahren, lässt sich weder wirklich konkret vermuten noch beweisen, letzteres am ehesten noch wieder mit ganz speziellen Stellungstests, die hab' ich ja auch dazu, man lässt sie nur nicht als relevant gelten im Vergleich zum game playing. Aber vermutlich auch das  Ausspielen wird nur sehr bedingt mit sehr viel Partien und sehr selektiver TC und sehr selektiven Eröffnungsstellungen schlüssig beweisend werden. Wahrscheinlich stinkt SF gegen SF MultiPV ab einer primary line- Zahl von mehr als 2 und einer TC von 5+0 abwärts doch früher oder später ab, aber so lange das nicht z.B. Stefan Pohl, wenn's ihn ausreichend stark interessiert und er darauf Hardware- Zeit verschwendet, statistisch relevant untersucht hat, gehe ich mal davon aus, gar soo groß wird bei MultiPV=2 und SF dev. und UHO und einer TC von 5+0 aufwärts der game playing- Unterschied bei etwas moderaterer Hardware- TCvielleicht auch gar nicht sein.
Gab's da aber nicht irgendwelche derartigen Experimente ohnehin auch mal in der letzten Zeit?
Mal suchen...
Parent - By Peter Martan Date 2023-01-12 13:26
Zitat:

Gab's da aber nicht irgendwelche derartigen Experimente ohnehin auch mal in der letzten Zeit?
Mal suchen...


schon gefunden, wenn auch jetzt vollends nicht mehr in der Editier- Zeit:

https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=160193#pid160193

Und natürlich gab's da auch schon mal was von Stefan Pohl dazu:

https://www.sp-cc.de/experiments.htm

, am Übergang vom obersten zum nächsten Viertel der Site kommt das entsprechende Experiment.
Na, soo falsch lag' ich da mit meinen Vermutungen aber eh nicht. Nur 3+1 aber immerhin, dafür je 1400 games, und gerade mal 24 Elo weniger von single primary zu MultiPV2 beim damaligen SF, -49 zu 3 lines, damals war mit diesem Setting SF immerhin noch über Komodo Dragon 2.5 mit 1 primary.
Dass sich das viel zum Schlechteren verändert haben wird seit damals?
Und übrigens, interessiert es eigentlich wirklich jemanden außer mir, wie viel es im STC- game playing wirklich kostet gegen welche Gegner auf welcher Hardware? Wäre es nicht eigentlich interessanter bei welchen Stellungen es wieviel bringt, und ob es gegen manche schwachen Gegner, die mehr Fehler machen und die daher mehr Taktik früher zulassen gegen stärkere, nicht sogar ab einer gewissen TC auch Vorteile im game playing hätte?
- By Lothar Jung Date 2023-01-16 09:54 Edited 2023-01-16 09:56
Hier ein Test zum „Symmetric multiprocessing (SMP) scaling“:

http://www.fastgm.de/schach/SMP-scaling-SF8-K10.4.pdf

Linux ist schneller und skaliert besser.
Up Topic Hauptforen / CSS-Forum / Starker Elo Rückgang von Stockfish bei Multipv

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill