Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Stockfish SimpleMultiPV Update
- - By Jörg Oster Date 2023-06-04 11:32 Upvotes 4
Ich habe Stockfish mit der einfacheren MultiPV-Suche aktualisiert.
Der Download enthält Compiles für modern, avx2 und avx2+bmi2 CPUs.

Die zugehörigen Sourcen findet man hier: https://github.com/joergoster/Stockfish/tree/simpleMultiPV

Der Downloadlink: https://www.file-upload.net/download-15153744/SimpleMultiPV.zip.html

Viel Spaß!

P.S. Die Sourcen aktualisiere ich regelmäßig. Wer also selbst kompiliert, kann sich hier ab und an bedienen und bleibt auf dem neusten Stand.
Parent - By Lothar Jung Date 2023-06-04 13:41
Hat über das Forum hinaus keinerlei Bedeutung.
Parent - - By Benno Hartwig Date 2023-06-04 15:35
Was hat sich durch deine Änderung denn verändert am SF-Verhalten ggü. dem SF aus der nomalen Entwicklungslinie?
Mit welcher extra-Erwartung sollten man dann dein Kompilat nutzen?
Parent - - By Jörg Oster Date 2023-06-04 16:13
Von hier: https://github.com/joergoster/Stockfish/releases/tag/mpv1
Zitat:
Stockfish with a simplified MultiPV implementation.
Instead of doing a zero-window search for all remaining moves after each PV line, this is now done only after the last PV line.

Hier der ursprüngliche Thread dazu: https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=13492
Parent - By Thomas Plaschke Date 2023-06-04 18:20 Upvotes 2
Meinen Dank auch dafür, dass Du auf die Wünsche Deiner Mitforisten eingehst!

Viele Grüße
Th. Plaschke
Parent - - By Thomas Plaschke Date 2023-06-04 19:58 Upvotes 1
Und hier eine Ausgabe des Programm zur diskutierten Position:
Engine:
Line 0.0
r1bq1rk1/pppp1ppp/1bn2n2/1B2p3/P2PP3/2P2N2/1P3PPP/RNBQ1RK1 b - - 0 1

Analysis by Stockfish 20230602 multiPV:

1. = (0.24): 7...a6 8.Lxc6 dxc6 9.Sxe5 Sxe4 10.Te1 Sd6 11.Le3 Le6 12.a5 La7 13.Sf3 f6 14.Dc2 Te8 15.Sbd2 Sf5 16.b4 Dd7 17.h3 Lf7 18.Sf1 Tad8 19.Lf4 Sd6 20.Txe8+ Txe8 21.Se3 Lh5 22.Sd2 Lf7 23.Te1 Sb5 24.Db2 De6 25.Tc1 Td8 26.h4 h6 27.Dc2 Te8 28.Lh2 Lh5 29.Ta1 Dd7 30.Te1 Lf7 31.Lg3 Sd6 32.Tc1 Sb5 33.Td1 Kh8 34.Lf4 Lh5 35.Te1
2. = (0.27): 7...a5 8.Sbd2 exd4 9.Sc4 Sxe4 10.Sxb6 cxb6 11.Sxd4 Sxd4 12.Dxd4 d5 13.Td1 Sc5 14.Df4 De7 15.Le3 Td8 16.h3 h6 17.Te1 Df8 18.Dg3 Ld7 19.Lxd7 Txd7 20.Lxh6 f6 21.Le3 Df7 22.Ld4 Te8 23.Te3 Txe3 24.Lxe3 De7 25.Kf1 De8 26.Df3 Td8 27.Dd1 Dc6 28.Kg1 Td7 29.Kh2 Dd6+ 30.g3 De6 31.Dh5 Sd3 32.De2 De4 33.f3 Dc4 34.Lxb6 Db3 35.Lxa5 Dxb2 36.Dxb2 Sxb2 37.Lb6 Te7
3. +/= (0.60): 7...exd4 8.e5 Se4 9.cxd4 a6 10.Lxc6 bxc6 11.Dc2 d5 12.a5 La7 13.Dxc6 Tb8 14.Sc3 h6 15.h3 Te8 16.Le3 Txb2 17.Sxe4 dxe4 18.Dxe4 Le6 19.Tfd1 Dd7 20.Dh4 Ld5 21.Se1 Df5 22.Sd3 Tb5 23.Sf4 Lb3 24.Td2 c5 25.Sh5 Dg6 26.dxc5 Lxc5 27.Lxc5 Txc5 28.Td6 Dg5 29.Dxg5 hxg5 30.Txa6 Texe5 31.Sg3 Kh7 32.f3 Tb5 33.Kh1 Lc2 34.Ta7 Lg6 35.Kh2 Tec5 36.a6 Ta5 37.Txa5 Txa5 38.Ta8 Lf5 39.a7 Ld7 40.Se2 Kg6 41.Sc1 Le6 42.Sd3 Ta3 43.Sb4 Ld7 44.Kg3 Ta5 45.Kf2 Ta3 46.Sd5 Kf5 47.Sc7 Ta2+ 48.Kg1
Weiß hat minimalen Vorteil
Die Analyse ist übrigens 61 Halbzüge tief.

Um gerade mal 3 Hundertstel unterscheiden sich die Bewertung von 7. ... a6 zu 7. ... a5 in dieser Analyse. Viel ist das nicht. Stockfish "inaktiviert" Läufer nach 7. ... a5 auch nicht, sondern sieht in dieser Variante den Tausch vor. Da gibt's noch einiges zu analysieren.

Viele Grüße
Th. Plaschke
Parent - - By Jörg Oster Date 2023-06-04 23:28
Danke für diese Analyse, Thomas.

Was ich gerne noch implementieren würde, ist die zusätzliche Angabe der berechneten Knoten per PV-Line.
So dass man also genau verfolgen kann, wieviel Aufwand in die jeweiligen Hauptvarianten investiert wird.

Das ist aber gerade im SMP-Modus nicht ganz trivial.
Parent - - By Jörg Oster Date 2023-06-07 22:19
Und hier die erste funktionierende Version. 
Obige Stellung, 1 GB Hash, 3 Threads, MultiPV=100, 5 min Analysezeit.
Die Zahlen in Klammern am Ende jeder PV sind die jeweiligen aufgewendeten Knoten.

Engine:
info depth 30 seldepth 40 multipv 1 score cp -41 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv a7a6 b5c6 d7c6 f3e5 f6e4 a4a5 b6a7 f1e1 e4d6 c1f4 f8e8 b1d2 c8f5 d1b3 h7h6 f4g3 f5e6 b3b4 f7f6 e5d3 d8d7 d2e4 d6e4 e1e4 e6f5 e4e8 a8e8 b4b7 f5d3 b7a7 (9394639)
info depth 30 seldepth 45 multipv 2 score cp -51 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv a7a5 b1d2 e5d4 d2c4 f6e4 c4b6 c7b6 f3d4 c6d4 d1d4 d7d5 f1d1 e4c5 d4e5 c8d7 c1g5 d8c8 e5d5 d7b5 a4b5 h7h6 g5e3 f8e8 g2g3 e8e6 (16782487)
info depth 30 seldepth 54 multipv 3 score cp -61 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv e5d4 e4e5 f6e4 c3d4 a7a6 b5c6 b7c6 b1c3 d7d5 c1e3 c8g4 h2h3 g4h5 a4a5 b6a7 a1c1 f7f6 c3e2 d8d7 e2f4 h5f3 d1f3 f6e5 d4e5 d7f5 c1c6 a7e3 f2e3 f5e5 f3d1 a8d8 c6a6 e5b2 a6c6 d5d4 (20298262)
info depth 30 seldepth 45 multipv 4 score cp -219 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv c6e7 d4e5 f6e4 a4a5 b6f2 f1f2 e4f2 g1f2 d7d6 e5d6 e7f5 c1f4 f5d6 f4d6 c7d6 d1d4 c8d7 b5d3 d8c7 b1d2 d7c6 d4f4 a8e8 f3d4 e8e5 d2c4 c6b5 d4b5 e5b5 f2g1 (19635936)
info depth 30 seldepth 50 multipv 5 score cp -291 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv f6e4 b5c6 d7c6 a4a5 e5d4 a5b6 c7b6 f3d4 f8e8 f1e1 c8d7 c1e3 e4d6 b1a3 c6c5 d4f3 d6f5 e3f4 e8e1 d1e1 h7h6 a1d1 d8e8 e1e8 d7e8 a3c4 f7f6 c4e3 f5e3 f4e3 e8c6 h2h4 a8e8 f3d2 a7a5 h4h5 (14038898)
info depth 30 seldepth 46 multipv 6 score cp -348 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv d7d5 b5c6 b7c6 a4a5 c8g4 a5b6 a7b6 a1a8 d8a8 h2h3 g4h5 d4e5 f6e4 g2g4 h5g6 b1d2 e4c5 f3e1 a8a6 f2f4 g6d3 e1d3 c5d3 d2f3 f8a8 f3e1 d3c5 c1e3 c5e4 e1d3 a6c4 f4f5 h7h6 e5e6 f7e6 f5e6 (14348762)
info depth 30 seldepth 48 multipv 7 score cp -354 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv c6a5 b2b4 f6e4 b4a5 b6a5 d4e5 d7d5 e5d6 c7d6 f3d2 e4f6 d2b3 a5c7 c1g5 a7a6 b5d3 h7h6 g5h4 f8e8 b1d2 c8d7 d2f3 d6d5 f1e1 e8e1 d1e1 g7g5 h4g3 c7g3 f2g3 d8c7 (15931613)
info depth 30 seldepth 39 multipv 8 score cp -356 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv h7h6 b5c6 d7c6 a4a5 b6a5 d4e5 f6e4 a1a5 b7b6 a5a1 e4c5 c1e3 c5d3 d1e2 d8d5 f1d1 f8d8 b1a3 c8a6 d1d2 d5e4 c3c4 d3e5 f3e5 e4e5 h2h3 e5e6 e2g4 e6g4 h3g4 c6c5 d2d8 a8d8 (7217118)
info depth 30 seldepth 46 multipv 9 score cp -361 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv f8e8 b5c6 d7c6 a4a5 b6a5 d4e5 f6e4 a1a5 b7b6 a5a1 e4c5 c1e3 c8a6 f1e1 d8d1 e1d1 a6e2 d1e1 c5b3 a1a3 e2f3 a3b3 f3d5 b3a3 e8e5 b1d2 c6c5 c3c4 d5c6 (12355919)
info depth 30 seldepth 39 multipv 10 score cp -368 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv d8e7 b5c6 b7c6 a4a5 b6c5 d4c5 f6e4 f1e1 f7f5 b1d2 e7c5 d2e4 f5e4 e1e4 d7d6 h2h3 c5d5 d1e2 c6c5 e4e3 c5c4 f3d2 f8f4 d2f1 c8b7 e3g3 a8f8 c1f4 e5f4 g3f3 (10359623)
info depth 30 seldepth 57 multipv 11 score cp -370 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv d7d6 b5c6 b7c6 a4a5 c8g4 a5b6 a7b6 a1a8 d8a8 d4e5 f6e4 e5d6 e4d6 h2h3 g4h5 c1f4 a8a2 f4d6 c7d6 b2b3 f8a8 b1d2 h7h6 c3c4 a2b2 d1c1 a8a2 c1b2 a2b2 f1b1 b2a2 (11180129)
info depth 30 seldepth 42 multipv 12 score cp -370 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv a8b8 b5c6 d7c6 a4a5 e5d4 e4e5 f6d5 a5b6 a7b6 c1g5 d8e8 d1d4 h7h6 g5h4 c8e6 d4e4 e8d7 f3d4 b8e8 d4e6 d7e6 f2f4 f7f5 e4f3 g7g5 f4g5 e6e5 g5h6 d5e3 b1d2 e3f1 a1f1 e5e3 f3e3 e8e3 (20979036)
info depth 30 seldepth 43 multipv 13 score cp -380 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv b6a5 b2b4 f6e4 b4a5 e5d4 c3d4 a7a6 b5c6 d7c6 f1e1 f8e8 b1d2 e4c3 e1e8 d8e8 d1c2 c3e2 g1f1 e2f4 d2e4 c8f5 c1f4 f5e4 c2c3 e8d7 f4g3 e4f3 c3f3 d7d4 a1d1 d4a4 f3d3 a8e8 g3c7 c6c5 f2f3 h7h6 (10004248)
info depth 30 seldepth 36 multipv 14 score cp -399 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv g8h8 b5c6 d7c6 a4a5 b6a5 a1a5 e5d4 e4e5 f6d5 c3d4 h7h6 h2h3 c8e6 f1e1 f8e8 a5a3 d5b4 b1c3 e6f5 e1e2 f5h7 c3e4 (14394394)
info depth 30 seldepth 41 multipv 15 score cp -407 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv d8e8 b5c6 b7c6 a4a5 b6c5 d4c5 f6e4 f1e1 f7f5 b1d2 d7d5 c5d6 c7d6 d2e4 f5e4 e1e4 e8g6 d1e2 c8a6 c3c4 d6d5 e4e5 a6c4 e2d1 a8b8 e5e1 c4b3 f3e5 b3d1 e5g6 h7g6 e1d1 c6c5 f2f3 d5d4 d1d2 (14931561)
info depth 30 seldepth 43 multipv 16 score cp -410 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv h7h5 b5c6 d7c6 a4a5 b6c5 d4c5 f6e4 f3e5 d8d1 f1d1 f8e8 e5f3 e4c5 c1e3 c5b3 a1a3 c8e6 b1d2 a8d8 d1e1 b3d2 f3d2 f7f6 a3a1 g8f7 h2h4 b7b6 b2b4 f7g6 d2f3 e6f7 f3d4 f7d5 a1c1 b6a5 b4a5 (10742238)
info depth 30 seldepth 37 multipv 17 score cp -412 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv c6d4 c3d4 f6e4 d4e5 d7d5 e5d6 a7a6 b5e2 d8d6 d1d6 e4d6 a4a5 b6c5 b1c3 f8e8 f1d1 c8d7 c1f4 d7c6 e2f1 h7h6 h2h3 a8d8 f3e5 d6e4 c3e4 d8d1 a1d1 c6e4 e5c4 e4c6 d1c1 h6h5 (13127714)
info depth 30 seldepth 38 multipv 18 score cp -419 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv f6h5 b5c6 b7c6 a4a5 b6d4 c3d4 f7f6 b1c3 d8e8 f1e1 d7d6 c3e2 a8b8 a1a3 e8f7 a5a6 c8e6 h2h3 e6b3 d1d2 f6f5 e4f5 e5e4 f3h4 g7g6 d2g5 h5g7 g2g4 e4e3 c1e3 (17121673)
info depth 30 seldepth 40 multipv 19 score cp -424 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv b6d4 c3d4 e5d4 f1e1 d7d5 e4d5 d8d5 b5c6 d5c6 f3d4 c6c4 b1a3 c4c5 d4e2 f8e8 c1e3 c5b4 d1c1 f6g4 a3c2 b4c4 b2b3 c4b3 h2h3 g4e5 e2f4 b3c4 (19882264)
info depth 30 seldepth 48 multipv 20 score cp -426 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv g7g6 b5c6 d7c6 a4a5 b6c5 d4c5 f6e4 f3e5 d8d1 f1d1 f8e8 e5f3 e4c5 c1h6 c8f5 b1d2 f7f6 b2b4 c5d3 h2h4 d3b2 d1f1 g8f7 f1e1 e8e1 f3e1 g6g5 h4g5 f7g6 e1f3 f5g4 (13100249)
info depth 30 seldepth 47 multipv 21 score cp -427 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv c6b8 a4a5 b6a5 d4e5 f6g4 a1a5 c7c6 a5a1 c6b5 h2h3 g4h6 c1h6 g7h6 b1a3 d8b6 c3c4 d7d6 e5d6 b5c4 a3c4 b6c5 c4e3 c8e6 a1c1 c5b4 e3d5 e6d5 d1d5 b8c6 f1e1 g8h8 e4e5 f8g8 g2g3 b4b2 c1b1 b2c3 d6d7 a8d8 (16422332)
info depth 30 seldepth 46 multipv 22 score cp -432 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv f6e8 b5c6 d7c6 a4a5 b6a5 a1a5 e5d4 c3d4 e8d6 f1e1 c8g4 b1d2 f8e8 d1c2 d6b5 h2h3 g4f3 d2f3 b5d4 f3d4 d8d4 a5a4 d4d6 f2f4 b7b5 a4a3 d6b4 a3e3 c6c5 f4f5 a8d8 e4e5 (11008736)
info depth 30 seldepth 49 multipv 23 score cp -448 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv b6c5 d4c5 f6e4 f1e1 e4c5 f3e5 d8f6 e5g4 f6g6 b2b4 c5e4 g4e3 f8e8 f2f3 e4g5 g1h1 d7d5 e3d5 c8f5 b5c6 g6c6 d5e7 e8e7 e1e7 g5e6 c1e3 a8d8 d1e1 c6d6 e3c5 d6c6 b1d2 e6f4 c5d4 f5e6 e7e6 c6e6 (15983789)
info depth 30 seldepth 36 multipv 24 score cp -450 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv f6g4 b5c6 b7c6 a4a5 b6d4 c3d4 d7d5 h2h3 d5e4 f3e5 g4e5 d4e5 f7f5 e5f6 d8f6 d1b3 f8f7 a5a6 c8e6 b3g3 e6c4 f1e1 a8f8 c1e3 f6b2 b1d2 c4d3 g3g4 (14592622)
info depth 30 seldepth 41 multipv 25 score cp -486 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv c6b4 d4e5 f6e4 c3b4 d7d5 a4a5 b6f2 f1f2 e4f2 g1f2 c8g4 b1d2 f7f6 e5e6 d8d6 b5d7 g4e6 d7e6 d6e6 d2b3 e6d6 c1e3 b7b6 b4b5 a8e8 d1d3 e8e4 e3d2 f8e8 b3d4 e4g4 (14253368)
info depth 30 seldepth 40 multipv 26 score cp -570 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv f6d5 e4d5 e5e4 f3g5 c6e7 b5e2 a7a6 a4a5 b6a7 d5d6 c7d6 g5e4 d6d5 e4d6 a7b8 d6c8 d8c8 b1d2 c8c7 d2f3 e7g6 f1e1 c7d6 b2b3 f8e8 c1d2 b8c7 g2g3 d6f6 e2d3 c7a5 a1a5 (15295726)
info depth 30 seldepth 42 multipv 27 score cp -571 nodes 396036382 nps 1320116 hashfull 992 tbhits 0 time 300001 pv g7g5 c1g5 d7d5 b5c6 h7h6 g5h4 b7c6 b1d2 e5d4 e4e5 d4c3 b2c3 b6c5 f3d4 d8d7 h4f6 c5e7 e5e6 f7e6 d1g4 g8f7 f6e5 f7e8 g4g6 f8f7 d4f3 c6c5 g6h6 a8b8 h2h3 (22653046)
bestmove a7a6 ponder b5c6
Parent - - By Jörg Oster Date 2023-06-08 17:43
Nun, welche Erkenntnis(se) können wir daraus gewinnen?

Es wurden also insgesamt rund 396 Mio. Stellungen durchsucht.
Dabei hat die 8. PV die wenigsten (7217118), und ausgerechnet die letzte PV die meisten Knoten (22653046) benötigt,
und die 3 besten PVs haben einen Anteil von ca. 11,7 %.
Die Rechenzeit wird also (erwartungsgemäß?!) ungefähr gleichmäßig auf alle Züge verteilt.

Aber warum macht man das?
Würde es nicht viel mehr Sinn machen, sich hauptsächlich auf die besten Züge zu konzentrieren?

Hier nun die gleiche Suche mit zusätzlich veränderter Logik (war so schon in Moonfish enthalten):
Engine:
info depth 42 seldepth 60 multipv 1 score cp -39 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv a7a6 b5c6 d7c6 f3e5 f6e4 a4a5 b6a7 f1e1 e4d6 c1f4 c8e6 e5d3 d8f6 b1d2 a8e8 f4g3 f6f5 d3f4 e6c8 e1e8 f8e8 b2b4 h7h6 h2h3 f5f6 f4h5 f6g6 a1c1 f7f6 d1f3 a7b8 g3h2 g6f7 d2f1 d6f5 c1a1 g8h7 h5f4 f5d6 f4d3 f7c4 a1c1 c4f7 c1e1 e8e1 d3e1 (92468463)
info depth 42 seldepth 60 multipv 2 score cp -39 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv a7a5 d4e5 f6e4 d1d5 e4c5 b1a3 d7d6 e5d6 c8e6 d5h5 d8d6 f3g5 e6f5 a3c4 d6f6 g5f3 h7h6 c1e3 c6a7 c4b6 c7b6 b5e2 a7c6 f3d4 f5g6 h5h3 c6d4 e3d4 f6f5 h3f5 g6f5 d4e3 a8d8 b2b4 (154842763)
info depth 42 seldepth 53 multipv 3 score cp -76 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv e5d4 e4e5 f6e4 c3d4 a7a6 b5c6 b7c6 d1c2 d7d5 c2c6 a8b8 a4a5 b6a7 b1c3 h7h6 h2h3 c8b7 c6a4 b7a8 c1e3 d8e7 a4c2 c7c5 a1d1 f8c8 d4c5 d5d4 d1d4 e4c3 c2c3 a8f3 g2f3 c8c5 c3d3 c5c7 d4d6 e7e5 f3f4 e5e7 e3b6 a7b6 a5b6 c7c5 f1d1 c5b5 d6d7 (88395472)
info depth 42 seldepth 29 multipv 4 score cp -197 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv c6e7 a4a5 b6a5 a1a5 c7c6 d4e5 f6e8 a5a1 c6b5 b1a3 d7d5 c1g5 c8g4 e4d5 f7f6 e5f6 e8f6 d5d6 e7g6 a3b5 h7h6 g5e3 d8d7 c3c4 f6h5 d1d5 g8h8 b5d4 (2850142)
info depth 42 seldepth 37 multipv 5 score cp -280 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv f6e4 b5c6 d7c6 a4a5 e5d4 a5b6 c7b6 f3d4 f8e8 f1e1 c8d7 b1d2 e4d6 e1e8 d7e8 d2f1 c6c5 d4c2 d8f6 d1g4 e8c6 c1e3 a8e8 a1a7 h7h6 f1g3 e8e6 (3086308)
info depth 42 seldepth 34 multipv 6 score cp -338 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv d7d5 b5c6 b7c6 a4a5 b6d4 c3d4 d5e4 f3e5 f8e8 b2b4 f6d5 f1e1 e8e6 c1d2 f7f6 e5c4 a8b8 b1a3 d8e8 a3c2 c8a6 c4e3 d5f4 e3f5 f4d3 e1e3 g7g6 f5h6 g8g7 (2763237)
info depth 42 seldepth 31 multipv 7 score cp -341 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv h7h6 b5c6 d7c6 a4a5 b6a5 a1a5 e5d4 e4e5 f6d5 c3d4 f8e8 c1d2 b7b6 a5a3 b6b5 b2b4 c8e6 d1c1 d5b6 h2h3 a7a6 f1e1 (2324672)
info depth 42 seldepth 34 multipv 8 score cp -346 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv f8e8 b5c6 d7c6 a4a5 c8g4 a5b6 a7b6 a1a8 d8a8 h2h3 g4f3 d1f3 e5d4 c3d4 f6e4 b1c3 e4c3 b2c3 a8d8 c1e3 b6b5 f1b1 h7h6 (1616015)
info depth 42 seldepth 43 multipv 9 score cp -352 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv d8e7 b5c6 d7c6 a4a5 c8g4 a5b6 a7b6 a1a8 f8a8 f1e1 a8d8 h2h3 g4f3 d1f3 e5d4 e4e5 f6d7 c3d4 d7f8 e1d1 f8e6 c1e3 e7h4 g2g4 h4e7 g1h2 e7b4 (1793836)
info depth 42 seldepth 31 multipv 10 score cp -365 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv d7d6 b5c6 b7c6 a4a5 b6c5 b2b4 e5d4 b4c5 f6e4 c5d6 f8e8 d6c7 d8c7 c3d4 c6c5 d4d5 c8g4 a1a3 a8d8 a3e3 c5c4 d1c2 g4f3 e3f3 d8d5 (2070088)
info depth 42 seldepth 29 multipv 11 score cp -366 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv c6a5 b2b4 f6e4 b4a5 b6a5 d4e5 d7d5 e5d6 c7d6 b5c4 c8g4 c4d5 f8e8 h2h3 g4h5 d5b7 e4f2 f1f2 a8b8 b7d5 h5f3 d1f3 e8e1 g1h2 e1c1 (2396471)
info depth 42 seldepth 44 multipv 12 score cp -386 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv d8e8 b5c6 b7c6 a4a5 b6c5 d4c5 f6e4 f1e1 f7f5 b1d2 d7d5 c5d6 c7d6 d2e4 f5e4 e1e4 e8g6 e4h4 c8g4 h4g4 g6g4 c1e3 f8f6 f3d2 g4e6 b2b4 h7h6 d1e2 f6g6 d2f1 e6b3 a1c1 d6d5 f1g3 d5d4 c3d4 e5d4 e3d4 b3b4 (1910733)
info depth 42 seldepth 38 multipv 13 score cp -391 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv a8b8 b5c6 b7c6 a4a5 b6d4 c3d4 e5d4 d1d4 d7d6 d4a7 b8b4 c1d2 b4e4 f1e1 c8g4 e1e4 f6e4 a7e3 f8e8 a5a6 e4d2 e3d2 g4f3 a6a7 f3e4 a7a8q d8a8 a1a8 e8a8 b1a3 c6c5 f2f3 e4c6 a3c2 (2407848)
info depth 42 seldepth 27 multipv 14 score cp -392 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv b6a5 b2b4 f6e4 b4a5 f8e8 f1e1 e5d4 c3d4 a7a6 b5c6 d7c6 a1a3 e4d6 e1e8 d6e8 a3e3 e8d6 b1d2 c8e6 e3e1 d6f5 c1b2 d8d5 d2e4 (1156769)
info depth 42 seldepth 31 multipv 15 score cp -409 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv c6d4 c3d4 f6e4 d4e5 d7d5 a4a5 b6f2 f1f2 e4f2 g1f2 c8g4 b1c3 f7f6 e5e6 c7c6 b5d3 d8e7 d1c2 a8e8 d3h7 g8h8 h7g6 g4f3 g2f3 (2973596)
info depth 42 seldepth 34 multipv 16 score cp -412 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv b6d4 c3d4 e5d4 e4e5 f6d5 f1e1 d7d6 b5c6 b7c6 d1d4 a8b8 c1d2 c8b7 b1c3 c6c5 d4g4 d8c8 g4c8 f8c8 a4a5 d5c3 (2240318)
info depth 42 seldepth 33 multipv 17 score cp -414 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv h7h5 b5c6 d7c6 a4a5 b6c5 d4c5 f6e4 f3e5 d8d1 f1d1 e4c5 c1e3 c5b3 a1a3 f8e8 e5f3 c8e6 b1d2 a8d8 d1e1 b3d2 f3d2 f7f6 h2h3 b7b6 e1a1 c6c5 a5b6 a7b6 (2299502)
info depth 42 seldepth 32 multipv 18 score cp -416 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv g8h8 b5c6 d7c6 a4a5 b6a5 a1a5 e5d4 f1e1 c8g4 c3d4 f8e8 b1c3 b7b5 h2h3 g4f3 g2f3 f6d7 a5a1 a7a5 c3e2 c6c5 (1796142)
info depth 42 seldepth 32 multipv 19 score cp -426 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv f6e8 b5c6 d7c6 a4a5 b6a5 a1a5 e5d4 c3d4 e8d6 f1e1 f8e8 a5e5 c8g4 e5e8 d8e8 b1c3 d6b5 c3b5 g4f3 d1f3 c6b5 e4e5 a8d8 f3b7 (1693632)
info depth 42 seldepth 30 multipv 20 score cp -427 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv c6b8 a4a5 b6a5 d4e5 f6e4 a1a5 d7d5 a5a1 c8g4 b1d2 e4d2 c1d2 b8d7 b5d7 d8d7 h2h3 g4h5 f1e1 a7a6 e1e3 f8e8 (1556193)
info depth 42 seldepth 35 multipv 21 score cp -431 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv g7g6 b5c6 d7c6 a4a5 b6c5 d4c5 f6e4 d1d8 f8d8 f3e5 d8e8 e5f3 e4c5 c1e3 c5d3 b2b4 f7f5 e3h6 f5f4 b1d2 c8f5 f3d4 a8d8 d2f3 f5e4 f3g5 d3b4 c3b4 d8d4 (1923920)
info depth 42 seldepth 30 multipv 22 score cp -438 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv f6g4 b5c6 d7c6 a4a5 b6a5 a1a5 b7b6 a5a3 f7f5 b1d2 e5d4 h2h3 g4f6 e4e5 (1965605)
info depth 42 seldepth 37 multipv 23 score cp -458 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv b6c5 d4c5 f6e4 f1e1 e4c5 f3e5 d8f6 e5f3 d7d6 c1e3 c8g4 e3c5 d6c5 b1d2 a8e8 e1e8 f8e8 d1c1 g4f3 d2f3 (1416229)
info depth 42 seldepth 35 multipv 24 score cp -466 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv f6h5 b5c6 b7c6 a4a5 c8a6 f1e1 f7f6 a5b6 a7b6 d4e5 f6e5 f3e5 d8f6 e5f3 f6g6 c3c4 d7d6 h2h3 a6c4 a1a8 f8a8 b1a3 c4e6 f3g5 e6d7 d1b3 g8h8 (1896290)
info depth 42 seldepth 28 multipv 25 score cp -480 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv c6b4 c3b4 f6e4 a4a5 b6d4 f3d4 e5d4 d1d4 d7d5 b1c3 e4d6 b5d3 c7c6 c1f4 f8e8 f4d6 d8d6 f1d1 d6e5 d4e5 e8e5 b4b5 (1629738)
info depth 42 seldepth 29 multipv 26 score cp -562 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv g7g5 c1g5 e5d4 e4e5 c6e5 f3e5 d7d6 e5f3 a7a6 b5d3 c8g4 g5h4 g4h5 a4a5 b6a7 c3c4 a7c5 h2h3 h5g6 (3878523)
info depth 42 seldepth 32 multipv 27 score cp -583 nodes 387316624 nps 1291046 hashfull 886 tbhits 21 time 300002 pv f6d5 e4d5 e5e4 f3g5 c6e7 b5e2 d7d6 a4a5 c7c6 a5b6 c6d5 b6a7 h7h6 g5e4 d5e4 c3c4 d6d5 c4d5 e7d5 b1c3 d5c3 b2c3 d8c7 c1e3 f7f5 d4d5 f5f4 d5d6 (1964091)
bestmove a7a6 ponder b5c6


Die besten 3 PVs erhalten jetzt ca. 86,7 % der Suchzeit.
Man beachte auch die dadurch erreichte wesentlich höhere Suchtiefe!

Vermeintlich schlechtere Linien werden nun kaum noch berücksichtigt.
Im Prinzip ist das so ähnlich, wie es auch Lc0 macht.

Dies ist natürlich nur ein erster Ansatz.
Parent - - By Thomas Plaschke Date 2023-06-08 22:43

>Man beachte auch die dadurch erreichte wesentlich höhere Suchtiefe!
>Vermeintlich schlechtere Linien werden nun kaum noch berücksichtigt.


Die unvermeidliche Frage muss gestellt werden: Spielt das Programm dadurch auch besser?
Es nutzt ja nichts, in die Tiefe, aber an den richtigen Zügen vorbei zu rechnen.

Viele Grüße
Th. Plaschke

P.S.: Ich hatte mir den Quellcode von github schon runtergeladen, aber feststellen müssen, dass die Änderungen noch nicht freigegeben waren. Richtig? Verwirrt hatte mich nämlich, dass die bench nodes zu keiner Dev-Version passten - trotz relativ aktuellem Merge.
Parent - - By Jörg Oster Date 2023-06-09 08:58
Diese neuen Änderungen habe ich noch nicht hochgeladen.
Testspiele lasse ich am WE spielen.
Parent - - By Jörg Oster Date 2023-06-10 15:06
Hier das Ergebnis eines schnellen Matches, für mehr ist es mir heute definitiv zu warm. 

Code:
Score of SF-simpleMultiPV4 vs SF-Master-MultiPV4: 42 - 17 - 141  [0.563] 200
Elo difference: 43.7 +/- 25.9, LOS: 99.9 %, DrawRatio: 70.5 %
Finished match


Hier noch die dazugehörende Befehlszeile für cutechess-cli, aus der man die Matchbedingungen ersehen kann:
./cutechess-cli -engine name=SF-simpleMultiPV4 cmd=./stockfish-mpv-cute -engine name=SF-Master-MultiPV4 cmd=./sf-master-mpv -each proto=uci option.Threads=1 option.Hash=128 option.MultiPV=4 tc=20+0.2 restart=on -openings file=/home/joster/openings/feobos_v20.1-contempt-3.pgn order=random plies=12 -rounds 200 -ratinginterval 10 -resign movecount=5 score=600 -draw movenumber=60 movecount=10 score=15 -tb /media/joster/EGTB-SSD/syzygy-5men/syzygy -tbpieces 5 -wait 5 -pgnout SF-MultiPV4_20+0.2.pgn

Getestet habe ich eine leicht weniger aggressive Version, d. h., schlechtere Züge bekommen wieder etwas mehr Anteil an der zugewiesenen Zeit.
Parent - - By Thomas Plaschke Date 2023-06-10 19:19

> Score of SF-simpleMultiPV4 vs SF-Master-MultiPV4: 42 - 17 - 141


Holla, die Waldfee! (Wie man so sagt.)

> [Getestet habe ich eine leicht weniger aggressive Version, d. h.,] schlechtere Züge bekommen wieder etwas mehr Anteil an der zugewiesenen Zeit.


Das kann man einfach so steuern? Bietet sich dafür vielleicht ein zusätzlichlicher Engine-Parameter an? Die MultiPV-Engine wird vor allem zur Analyse genutzt werden. Eventuell lässt sich "wertiger" analysieren, wenn der Nutzer die Suche etwas "lenken" kann.

Viele Grüße
Th. Plaschke
Parent - By Jörg Oster Date 2023-06-11 10:55
Hallo Thomas,

das war eine relativ einfache Änderung.
Vorerst beabsichtige ich nicht, das dem User zugänglich zu machen.

Gruß, Jörg.
Parent - - By Daniel Reist Date 2023-06-14 00:07
Hallo Jörg

Dein Stockfish macht mehr Knoten.
Kann man diese Knoten jetzt vergleichen
mit den Knoten vom normalen Stockfish,
oder ist es auch wieder was anderes?
Parent - By Jörg Oster Date 2023-06-14 10:37
Hallo Daniel,

meine Änderungen betreffen ja nur den MultiPV-Modus.
SinglePV sollten beide gleich sein.

Einzig das zusätzliche Sammeln der Knoten für jede PV-Linie separat kostet etwas zusätzliche Zeit.
Aber auch das nur marginal.

Gruß, Jörg.
Parent - - By Andreas Mader Date 2023-06-09 08:43
Jörg Oster schrieb:

Es wurden also insgesamt rund 396 Mio. Stellungen durchsucht.
Dabei hat die 8. PV die wenigsten (7217118), und ausgerechnet die letzte PV die meisten Knoten (22653046) benötigt,
und die 3 besten PVs haben einen Anteil von ca. 11,7 %.
Die Rechenzeit wird also (erwartungsgemäß?!) ungefähr gleichmäßig auf alle Züge verteilt.

Aber warum macht man das?
Würde es nicht viel mehr Sinn machen, sich hauptsächlich auf die besten Züge zu konzentrieren?


Nein, das würde nicht viel mehr Sinn machen. MultiPV verwendet man normalerweise nicht, um den besten Zug zu finden, sondern um herauszufinden, um wie viel schlechter die x Nicht-Besten Züge sind. Den schlechter bewerteten Zügen weniger Rechenzeit zuzugestehen liefert ein ungenaueres Ergebnis.

Oder anders gesagt: Warum sollte ich MultiPV einschalten, wenn mich schlechter bewertete Züge sowieso nicht interessieren?
Parent - - By Jörg Oster Date 2023-06-09 08:57
Aber du erhälst ja annähernd die gleichen Informationen wie vorher auch.
Oder ist es für dich wirklich von Bedeutung, ob ein Zug jetzt 8 Bauerneinheiten schlechter ist als der beste Zug,
oder aber doch 10?

Was ich auch nicht verstehe, Lc0 macht das aufgrund der anderen Suchtechnik jetzt schon mehrere Jahre so.
Ich habe noch nie gelesen, dass sich irgendwer darüber beschwert hat.

Ansonsten ist deine Argumentation genau wie die anderer Entwickler, die ich mittlerweile nicht mehr teile.
Parent - - By Andreas Mader Date 2023-06-09 09:41
Ich denke nicht, dass ich immer annähernd die gleichen Informationen erhalte. Wenn zum Beispiel ein Zug nur deshalb ziemlich weit unten ist, weil er nicht tief genug berechnet wurde, dann erhalte ich sogar falsche Informationen. Außerdem wird oft die Reihenfolge der Züge anders sein, wenn sie nahe beisammen liegen und unterschiedlich tief gerechnet wird. Damit geht für mich der Sinn von MultiPV verloren.
Parent - - By Jörg Oster Date 2023-06-10 09:59
Nur noch soviel von mir dazu:
Dir ist schon klar, dass du auch beim normalen Stockfish im MultiPV-Modus Züge siehst, die unterschiedlich tief berechnet werden?
Der Grund dafür sind, etwas vereinfacht, Extensions und Reductions.

Selbst wenn vor allen Zügen ein "info depth 30" steht, ist nicht unbedingt überall das gleiche drin. 
Parent - By Andreas Mader Date 2023-06-10 10:09
Ja, das ist mir klar. Ich sehe aber trotzdem keinen Grund, Zügen weiter hinten in der Liste bewusst weniger Rechenzeit zuzugestehen.
Parent - - By Robert Bauer Date 2023-06-14 12:50
Hallo Jörg,

kann man diese neuere Version vom 07.06. auch irgendwo herunterladen?
Der Download im Eingangsposting ist ja vom 04.06.

Herzlichen Gruß,
Robert Bauer
Parent - - By Jörg Oster Date 2023-06-14 15:52
Hallo Robert,

ich bitte noch um ein wenig Geduld.
Ich arbeite noch an ein paar Details, und würde vor dem nächsten "Release"
auch gerne eine Readme mit ein paar Erklärungen bereitstellen.
Wenn es gut läuft, am WE ... 

Gruß, Jörg.
Parent - - By Jörg Oster Date 2023-06-19 11:27
Hier nun, leider mit etwas Verspätung, weil ich gestern so gut wie keinen Zugriff auf das NN hatte,
die aktualisierte Version. Die Sourcen sind dieses Mal im Archiv mit drin.

https://www.file-upload.net/download-15159398/Stockfish-simpleMPV.zip.html

Hier noch eine kurze Erläuterung der Änderungen.

Zitat:
Stockfish mit modifiziertem MultPV-Modus

Zum besseren Verständnis, hier erstmal eine grobe Zusammenfassung der MultiPV-Suche in Stockfish.
Nehmen wir die normale Startstellung mit MultiPV=20.
Alle 20 legalen Züge sollen also als PV-Linie durchsucht werden.

Stockfish macht jetzt folgendes:
Zuerst wird die erste Linie mit einem sog. aspiration window als PV-Node durchsucht.
Dann werden alle restlichen 19 Züge mit einem sog. zero-window als NonPv-Nodes durchsucht.
Dabei kann es passieren, dass von diesen Zügen einer vermeintlich besser ist als der bis dato beste Zug.
Dann wird dieser Zug als PV-Node gesucht und wenn er dann immer noch besser ist, wird dieser Zug der neue
beste Zug. Danach wird die erste Linie quasi als erledigt abgespeichert.
Danach wird dann dasselbe Spiel mit dem 2. Zug und den verbliebenen 18 Zügen wiederholt!
Und so weiter und so fort, bis schließlich der letzte verbliebene Zug dann auch als PV-Node gesucht wird.
Damit ist dann eine Iteration (oder eine Suchtiefe) erledigt.

Das heißt also, dass alle Züge, bis auf den ersten, immer 2-mal (oder sogar mehrmals) durchsucht werden,
einmal als NonPv-Node, und dann wieder als Pv-Node.
Und das, obwohl man ja von Anfang an weiß, dass alle Züge als Pv-Node durchsucht werden müssen!

Merke: Züge, die mit einem zero-window (als NonPv-Node) durchsucht werden, erhalten keinen gültigen Score!


Hier nun die vorgenommenen Änerungen:

- Zuerst wird die eingestelte Anzahl an PV-Linien als PVNodes gesucht, und erst nach
der letzten PV-Linie werden die verbleibenden Züge als NonPvNodes und einem Zero-Window durchsucht.

- Spätere und/oder schlechtere Züge werden nur noch mit reduzierter Suchtiefe durchsucht.
Allerdings werden potentiell gefährliche Züge (z. B. Schachgebote, Bauernvorstöße) weniger stark reduziert.

- PV-Linien werden nun mit einem etwas größeren Erwartungsfenster (aspiration window) durchsucht.

- Die Anzahl der Knoten wird für jede PV-Linie separat gesammelt und angezeigt.

- Die Darstellung der info Zeile wurde leicht verändert, so dass zuerst die verbrauchte Zeit,
die Nr. der PV-Linie, dann die Tiefenangaben gefolgt von dem Score, den Knoten und der nps, der Hash-Anzeige,
den TB-Hits und zum Schluss die Hauptvariante für diese PV-Linie.
Außerdem wird für PV-Linien, die noch nicht mit der aktuellen Suchtiefe durchsucht wurden,
nun auch die vorherige nominale und selektive Suchtiefe angezeigt, so wie es bei den anderen Infos ja auch gemacht wird.
Dies erscheint mir etwas logischer.
Parent - - By Peter Martan Date 2023-06-19 12:51 Edited 2023-06-19 13:33 Upvotes 1
Danke Jörg!

Ich hab' das neue avx2-bmi2- compile mal mit MultiPV=4  auf 30 threads der 13.5GHz CPU über die 128 für 15"/Stellung schweren taktischen single best move- Stellungen laufen lassen, die ich auch sonst für MultiPV=4 nehme ("MV4" in der Liste).

https://www.dropbox.com/s/804b7chwli13laf/1284.epd?dl=0

Dass das bei diesen Stellungen und dieser Hardware- TC weniger bringt als MultiPV=4 der "klassischen" Art, ist kein Wunder, hingegen find' ich's bemerkenswert, dass es doch an die SF dev.- Versionen, bei denen ich das zuletzt so auch probiert habe, herankommt.

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

  1 HypnoSIccf190523-Set2                   : 3591    4   6872    63.7 %   3493    96/128    3.0s    6.0s   0.67
  2 CrystalMZ140523bmi2-Set2                : 3584    4   6708    62.7 %   3494    94/128    3.1s    6.2s   0.64
  3 ShashChess31-MV4-Tal+Capa               : 3572    4   6619    61.2 %   3493    89/128    3.2s    6.8s   0.59
...
28 Stockfishdev-20230405-MV4                : 3530    4   5843    54.8 %   3497    71/128    3.4s    8.6s   0.52
...             
34 Stockfishdev-20230305-MV4                : 3520    4   5811    53.2 %   3497    70/128    3.9s    9.0s   0.44
35 Stockfish15-MV4                          : 3518    4   5795    52.8 %   3499    68/128    4.1s    9.2s   0.45
36 EMAN8.30-NNUE-Pure-MV4-FAD15             : 3510    4   6093    51.9 %   3497    75/128    5.4s    9.4s   0.30
37 Stockfishdev-20230104-9fe9ff00-MV4       : 3508    5   5649    51.3 %   3499    66/128    4.1s    9.4s   0.43
38 Stockfishdev-20230619-nogit-MV4          : 3505    4   5794    50.9 %   3499    68/128    5.2s    9.8s   0.37
39 Cfish160223-MV4                          : 3504    4   5696    50.6 %   3500    66/128    4.7s    9.7s   0.39
40 Lc0v0.30.0-dag+git.77382b9c-325M         : 3500    5   5893    49.5 %   3503    59/128    3.7s    9.8s   0.32
...
47 Dragon3.2byKomodoChess64-Aggr.MV4        : 3467    5   5495    44.7 %   3504    52/128    5.1s   11.0s   0.25
48 Lc0v0.30.0-dag+git.c91bf77-784038        : 3465    5   5441    44.1 %   3506    45/128    3.5s   11.0s   0.29
49 Sting28-MV4                              : 3463    5   5398    43.8 %   3506    45/128    3.3s   10.9s   0.27
50 Berserk11-MV4                            : 3459    5   5214    43.4 %   3506    48/128    4.5s   11.1s   0.29
52 Dragon3.1byKomodoChess-MV4               : 3454    5   5238    42.6 %   3505    47/128    4.7s   11.2s   0.26
53 SlowChessBlitz2.9avx2-MV4                : 3435    5   5110    39.9 %   3507    43/128    5.5s   11.8s   0.21
54 Ethereal14.00(NNUE)-MV4                  : 3428    5   5062    38.7 %   3508    40/128    5.5s   12.0s   0.18
...

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


Um zu sehen, was MultiPV=4 bei deiner Version relativ zu MultiPV=4 bei SF dev. im game playing kostet, würde ich so vorgehen: SF dev. single primary gegen SF dev. MultiPV=4 spielen lassen, wenigstens 3'+1" / Partie als TC single threaded, weil noch weniger Hardware- TC vermutlich erst recht auf Kosten des multi primary variant- Spielenden geht und ich würde vermuten, den SF dev. mit 4 "echten" zu primaries erhobenen non primaries kostet das mehr Spielstärke als deinen, je kürzer die Hardware- TC, desto größer vermutlich der Unterschied.
Dann den Gegenversuch MultiPV=4 deiner Version mit derselben Hardware- TC wieder gegen SF dev. single primary (default). Auf diese Art hätte man zwar nicht den direkten Vergleich (der aber vermutlich halt auch viel mehr Partien bräuchte, um aus der error- bar zu kommen, wie du schon an deinem ersten diesbezüglichen Versuch vor Kurzem gezeigt hast) aber einen ganz guten, relevanten, indirekten, (direkt vergleichbar wären sowieso auch immer nur einzelne Matches bestimmter Hardware- TC, Gegner und Eröffnungen) mit einer vermutlich überschaubaren Partiezahl, um aus der error bar zu kommen.

Und das alles sowieso nur, sofern einen der Spielstärke- Verlust mit STC im game playing überhaupt interessiert, weil's ja kaum von praktischem Nutzen sein wird, für eine Engine eine game playing performance einer einzelnen Gegenerschaft, Hardware- TC und einem einzelnen Eröffnungstestset für eine bestimmte Zahl an primary lines zu bestimmen. Jede der aufgezählten Bedingungen hätte ein mit anderen nicht vergleichbares Einzelergebnis, ebenso wie jeder einzelne Stellungstest.

Lass mich wissen, ob ich zwei Matches der oben geschilderten Art starten soll, ein einzelner Spielrutenlauf SF dev. default gegen die zwei MultiPV- Settings würde den Zweck eigentlich auch erfüllen.

Edit: die neue Version jetzt doch auch noch single primary (default) über den obigen Parcours geschickt: mit 54 Lösungen (statt 68 siehe oben im MultiPV=4) doch deutlich weniger bei gleicher Hardware- TC.
Parent - - By Peter Martan Date 2023-06-19 17:32 Edited 2023-06-19 17:39
Zitat:

Lass mich wissen, ob ich zwei Matches der oben geschilderten Art starten soll, ein einzelner Spielrutenlauf SF dev. default gegen die zwei MultiPV- Settings würde den Zweck eigentlich auch erfüllen.

Hab' das nach 300 Partien schon abgebrochen, weil ohnehin bereits deutlich out of error, was die Relation zu single thread der SF- dev.- Version vom 6.6. angeht.

Um aus der error bar der beiden MultiPV=4 spielenden Versionen zwischen den beiden zu kommen, bräuchte es wohl so 2000 Partien head to head, selbst bei UHO- openings, die ich hier verwendet habe (die ersten 80 der 2022_6mvs_+110_+119.pgn) und so kurzer Hardware- TC.

Je ein thread der 3.5 GHz CPU, 16Mb hash, 3'/Partie +1" Inkrement/Zug, Spießrutenlauf der SF dev.-Version vom 6.6. single primary gegen die beiden MultiPV=4 Spielenden:

Rank Name                               Elo      +/-   Games Score    Draw
   0 stockfish_23060619_x64_avx2        102      24     305   64.3%   59.0%
   1 stockfish-230619SiMultiPV4        -100      33     153   35.9%   61.4%
   2 stockfish_23060619MultiPV4        -104      36     152   35.5%   56.6%

320 of 400 games finished.
Parent - - By Jörg Oster Date 2023-06-19 19:01
Das ist schon merkwürdig.
Meine Version sollte gegenüber der Standardversion klar besser sein.

Unter welchem GUI oder cli lässt du spielen?
Parent - - By Peter Martan Date 2023-06-19 19:32 Edited 2023-06-19 19:49
Cutechess. Es waren halt 15 Instanzen gleichzeitig, könnte sein, dass sich da SF dev. mehr von der Hardware an Leistung abzweigt als deine Version.
Dann hat's aber auch nicht viel Sinn, wenn ich's auf sonst gleiche Art noch einmal head to head spielen lasse, und alles andere kostet mich zuviel Zeit. Die Hardware- TC würde ich nicht noch weiter drücken, und mit deinen 200 Partien

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

und nocheinmal deutlich kürzerer TC war's ja auch noch weit innerhalb der error bar.
Wie gesagt, ich würde schätzen, 2000 Partien oder mehr, wenn man da wirklich aus der Irrtumswahrscheinlichkeit deutlich rauskommen will und wenigstens 3'+1" haben. Mag durchaus sein, deine 20"+0.2 schaden deiner Version weniger als der dev.
Und dann ist natürlich der indirekte Vergleich gegen single primary der SF- dev.- Version ein anderer als das head to head match, nur das Problem, von dem ich schon wiederholt schrieb, bekommt man nicht weg, dass man da bei so nahe beisammen liegenden Engines (Versionen, Settings) mit jeder einzelnen Bedingung, angefangen bei der Hardware- TC bis hin zu den Eröffnungen lauter sehr wenig übertragbare Einzelergebnisse bekommt. Und mit 2 oder 4 oder 8 primaries mag das dann auch schon wieder stark schwanken.
Parent - - By Jörg Oster Date 2023-06-19 19:43
Nein Peter, lass es besser mal sein.
Ich befürchte, mir ist irgendwo ein Fehler unterlaufen.

Die Bench-Nummer ist eine andere als beim Master.
Das sollte eigentlich nicht sein. Sorry!
Parent - - By Peter Martan Date 2023-06-19 19:46 Edited 2023-06-19 19:49
Kein Problem, Jörg, ich hab' noch etwas rumeditiert, während du schon geantwortet hast. Die 20"+0.2 von deinem ersten Versuch ist aber als TC tatsächlich auch schon eine andere Hausnummer als meine 3'+1", könnte mir durchaus vorstellen, dass das einen relevanten Unterschied macht, gerade im MultiPV.
Wenn du natürlich einen bug findest, dann lass es wieder wissen.
Parent - By Jörg Oster Date 2023-06-21 21:15 Upvotes 1
Kurzes Update: den Fehler habe ich gefunden.
Vor den nächsten Compiles will ich aber erst noch ein paar Sachen testen.
Parent - - By Jörg Oster Date 2023-06-23 10:29
Nach Korrektur von 2 Fehlern, die ich übersehen hatte bzw. die eigentlich keine Auswirkung auf den Bench haben sollten,
und nach Update auf den aktuellen Master, habe ich ein kleines Round-Robin Turnier mit cutechess-cli gestartet.

Hier der Stand nach 2 Runden:

Rank Name                          Elo     +/-   Games   Score   Draws
   1 SF-Master-MultiPV1             85      31     100   62.0%   76.0%
   2 SF-simpleMultiPV1              53      29     100   57.5%   81.0%
   3 SF-simpleMultiPV4              -3      30     100   49.5%   81.0%
   4 SF-simpleMultiPV8              -7      36     100   49.0%   72.0%
   5 SF-Master-MultiPV4            -49      33     100   43.0%   76.0%
   6 SF-Master-MultiPV8            -78      35     100   39.0%   72.0%
Parent - - By Peter Martan Date 2023-06-23 11:29
Danke, wirst du auch wieder neue Compiles machen?
Parent - - By Jörg Oster Date 2023-06-23 16:16
Ja, mache ich.
Parent - - By Jörg Oster Date 2023-06-24 15:23
Hier nun (endlich!) der neue Link:
https://www.file-upload.net/download-15161134/simpleMultiPV.zip.html

Die Sourcen sind wieder enthalten und sind auf dem Stand vom Stockfish 16 RC. https://github.com/official-stockfish/Stockfish/pull/4638

P. S. Endlich, weil wir hier schon seit 2 Wochen massive Störungen des Vodafone Kabelanschluss hinnehmen müssen,
sowohl Internet/Telefon als auch TV-Empfang betreffend. 
Parent - By Peter Martan Date 2023-06-24 18:25 Edited 2023-06-24 18:32
Danke, Jörg!
Weil die Tabelle sonst an dieser Stelle durchs Einrücken zerstört wird, hab' ich sie als neues Posting unten angestellt zusätzlich zur Antwort an dich hier.
Parent - By Jörg Oster Date 2023-06-23 16:14
Zeitkontrolle war übrigens 2'+1".
Hier noch die cutechess-cli Befehlszeile:
Code:
./cutechess-cli -engine name=SF-simpleMultiPV1 cmd=./sf-simple3 option.MultiPV=1 -engine name=SF-simpleMultiPV4 cmd=./sf-simple3 option.MultiPV=4 -engine name=SF-simpleMultiPV8 cmd=./sf-simple3 option.MultiPV=8 -engine name=SF-Master-MultiPV1 cmd=./sf-master-simple3 option.MultiPV=1 -engine name=SF-Master-MultiPV4 cmd=./sf-master-simple3 option.MultiPV=4 -engine name=SF-Master-MultiPV8 cmd=./sf-master-simple3 option.MultiPV=8 -each proto=uci option.Threads=1 option.Hash=256 tc=120+1 restart=on -openings file=/home/joster/openings/largebook.pgn order=random plies=12 -repeat -games 10 -rounds 2 -ratinginterval 10 -resign movecount=5 score=600 -draw movenumber=60 movecount=10 score=15 -concurrency 2 -tb /media/joster/EGTB-SSD/syzygy-5men/syzygy -tbpieces 5 -wait 10 -pgnout SF-MultiPV-Test_120+1.pgn
Parent - - By Peter Martan Date 2023-06-26 00:07 Edited 2023-06-26 00:10
So, jetzt bin ich auch endlich zum Match gekommen. Die dev.- Version vom 22.6. gegen dein neues Compile, beide MultiPV=4 mit 3'+1", single thread (3.5GHz), 16Mb hash, 6Steinern Syzygys, danach sieht die Cutechess- Zusammenfassung so aus:

Score of stockfish_230622MPV4 vs stockfish-avx2-bmi2MPV4: 99 - 121 - 280 [0.478]
Elo difference: -15.3 +/- 20.2, LOS: 6.9 %, DrawRatio: 56.0 %
500 of 500 games finished

Um da solide aus der error bar zu kommen werden wohl nach wie vor so 2000 Partien notwendig sein, aber der Abstand ist relativ zur Unsicherheit schon viel deutlicher geworden, sofern man die Unterschiede aus den indirekten Spießruten- Partien mit denen jetzt vergleichen kann, drum hab' ich's mit 500 gut sein lassen. Und jedenfalls ist die Reihenfolge jetzt die umgekehrte.
Parent - By Jörg Oster Date 2023-06-26 08:26 Upvotes 1
Danke, Peter. 
Parent - By Daniel Reist Date 2023-06-05 14:16
Bei der Analyse mit a6 würde ich bei 11. mit 11.a5 fortfahren.
Um direkt mit der Läufereinsperrung zu beginnen.

Wenn der Läufer dann nach späterem b4 und c4 und danach c5 eingesperrt ist,
hat Schwarz nichts mehr z u melden. Daher denke ich kann diese Variante
für Stockfish nicht spielbar sein.

LC0 hat anscheinend diese Stellung sehr gut trainiert und kennt die
richtige Verteidigung.

So wie auch Peter Martan gesagt hat.
- By Peter Martan Date 2023-06-24 18:28 Edited 2023-06-24 18:35

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

  1 HypnoSIccf190523-Set2                   : 3592    4   7267    63.7 %   3494    96/128    3.0s    6.0s   0.67
  2 CrystalMZ140523bmi2-Set2                : 3585    4   7099    62.7 %   3494    94/128    3.1s    6.2s   0.64
  3 ShashChess31-MV4-Tal+Capa               : 3573    4   7001    61.2 %   3494    89/128    3.2s    6.8s   0.59
...
30 Stockfishdev-20230622-MV4                : 3524    4   6233    53.8 %   3497    71/128    4.1s    9.0s   0.46
...
35 Stockfishdev-20230305-MV4                : 3520    4   6139    53.2 %   3498    70/128    3.9s    9.0s   0.44
36 Stockfish15-MV4                          : 3519    4   6132    52.8 %   3499    68/128    4.1s    9.2s   0.45
...
39 Stockfishdev-20230619-nogit-MV4          : 3506    4   6100    51.0 %   3499    68/128    5.2s    9.8s   0.37
40 Stockfishdev-20230624-nogit-MV4          : 3505    5   5969    50.8 %   3500    63/128    3.9s    9.5s   0.40
41 Cfish160223-MV4                          : 3504    4   6030    50.7 %   3500    66/128    4.7s    9.7s   0.39
42 Lc0v0.30.0-dag+git.77382b9c-325M         : 3500    5   6247    49.5 %   3503    59/128    3.7s    9.8s   0.32
43 Lc0v0.30.0-dag+git.96ed6612-325M         : 3499    5   6189    49.4 %   3503    59/128    3.8s    9.8s   0.33
44 Lc0v0.30.0-dag+git.77382b9c-3650M        : 3497    5   6165    49.1 %   3504    57/128    3.3s    9.8s   0.32
45 Stockfishdev-20230622                    : 3485    5   5926    47.7 %   3501    59/128    4.9s   10.3s   0.31
...                    
69 Koivisto9.2                              : 3362    5   4909    29.5 %   3513    21/128    5.0s   13.4s   0.10
70 Koivisto9.0                              : 3358    6   4870    28.9 %   3514    18/128    3.4s   13.4s   0.11
...

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

Mit den bekannten 128 Stellungen, 30 threads der 16x3.5GHz CPU, der 3070ti GPU für LC0, 15"/Stellung und MV4 heißt MultiPV=4.
Up Topic Hauptforen / CSS-Forum / Stockfish SimpleMultiPV Update

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill