That could be hard, as I might have deleted those messages. (As moderator you would still be able to look at those, at the beginning of the thread, though). Nor would it be very desirable, as I did not delete those for no reason.
New engine: LazySMP
Moderators: hgm, Rebel, chrisw
-
- Posts: 28145
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: New engine: LazySMP
-
- Posts: 2582
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine: LazySMP
Note that 35M is in perft, not in gameplay, but your original statement regarding speed was about the fast move generation, that's why compared with perft on my engine. Actual engine performance is about 2.5MNPS in the starting positon (Ryzen 5800X3D under Linux), but it does use transposition tables (a major NPS drag) and a pretty heavy eval.
https://www.ct800.net/download gives you the current download as well as links to older releases such as the 1.43 mentioned above. Windows executables are included. For other systems (Linux, macOS), you can build from source (also included).Please send me the download link.
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
- Posts: 28145
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
- Posts: 2582
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine: LazySMP
Technically, it is the number of legal perft leaf positions divided by the search time. Since the branching factor is pretty high, counting only the leaf nodes and ignoring the others is a rounding error. Since V1.43 still did full move make, in-check detection, move unmake also in the leaf nodes, each counted leaf node has a move behind it. So basically, moves per second, perft moves per second and nodes per second is the same.
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
- Posts: 28145
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: New engine: LazySMP
No, a node is where you generate moves. There are two kinds of perfts: where you just generate the legal moves and determine how many you generated from the length of the list, and where you also make and unmake all these moves. The former basically measures the speed of your move generation, the latter the speed of your make/unmake. Typically move generation takes much more time than making/unmaking a single move.
-
- Posts: 2582
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine: LazySMP
That's correct, but please remember the context here: a pretty basic engine with no TT where the author regards 10MNPS in gameplay as key feature and pointed to the fast move generator. In such an engine, there has to be full move make/unmake in the leaf nodes to get some sort of eval, so we have to include make/unmake as part of that. My comparison with my 35MNPS in perft mirrors that kind of setup. Ofc without leaf eval, but 35MNPS without eval leaves plenty of room for a simple eval if you don't use a TT which drags down raw NPS.
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
- Posts: 28145
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: New engine: LazySMP
I don't think so. At least not in engines that have QS. These must generate moves in those nodes where there was no stand-pat cutoff, to see if there are any captures that must be searched. Even if only half the nodes fail low on stand-pat, the time would be much dominated by these move generations.Ras wrote: ↑Sat Oct 26, 2024 10:22 pmThat's correct, but please remember the context here: a pretty basic engine with no TT where the author regards 10MNPS in gameplay as key feature and pointed to the fast move generator. In such an engine, there has to be full move make/unmake in the leaf nodes to get some sort of eval, so we have to include make/unmake as part of that. My comparison with my 35MNPS in perft mirrors that kind of setup. Ofc without leaf eval, but 35MNPS without eval leaves plenty of room for a simple eval if you don't use a TT which drags down raw NPS.
It is true that futility pruning has a large (negative) impact on the nps, as it tends to prune the nodes that do not need to generate moves, as these would experience a stand-pat cutof. But that sort of contradicts the claim that a simple engine needs to make/unmake the move to get an evaluation: if the only evaluation is the incrementally updated material/PST (as it is in micro-Max), there isn't any need to make the move at all. You just calculate the update to the incremental eval, and you can then do futility pruning with zero margin, as the incremental eval is the exact one.
-
- Posts: 2582
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine: LazySMP
OK, that's an argument - but if I let the move generation dominate, then I can compare with my newer engine version that doesn't make/unmake in all perft pre-leaf nodes because it omits that if pre-leaf node isn't in-check, the examined move isn't a king move and not aligned with the king. That isn't 35MNPS, but 80MNPS so that the comparison to the 10MNPS is even more drastic.hgm wrote: ↑Sun Oct 27, 2024 8:57 amI don't think so. At least not in engines that have QS. These must generate moves in those nodes where there was no stand-pat cutoff, to see if there are any captures that must be searched. Even if only half the nodes fail low on stand-pat, the time would be much dominated by these move generations.
That only came up once the profile pic of the actor was added - which is only possible after the account activation. But before that, why would the stated name have raised eyebrows?Graham Banks wrote: ↑Sun Oct 27, 2024 7:46 amAccording to the registration rules, that I thought that the moderators were obligated to enforce, his account should never been activated unless the mods gave him special permission not to use his real name.
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
- Posts: 7208
- Joined: Thu Aug 18, 2011 12:04 pm
- Full name: Ed Schröder
Re: New engine: LazySMP
From the 6 games I played with Arena [debug is on] till it crashed because of the too small game history it shows a remarkable depth for an engine without a hash table.
Twice as deep as Blunder 5.0, CCRL rated 2020 and yet Blunder scored 5.5/6, TC=about 1 sec per move.
Code: Select all
Engine Depth Time Games Moves Average Forfeit MIDG EARLY ENDG LATE
Blunder-5.0 9.35 0:05:32 6 314 1.06 0 8.40 | 8.09 | 9.96 | 14.43
LazySMP-3.0 17.50 0:05:24 6 313 1.04 1 16.90 | 18.92 | 19.08 | 18.97
90% of coding is debugging, the other 10% is writing bugs.
-
- Posts: 34
- Joined: Mon Apr 15, 2024 8:30 pm
- Full name: Arthur Matheus
Re: New engine: LazySMP
Final Result: I believe this engine falls within the range of 2000 and 2100 Elo CCRL, on par with Rival 0094-ja. It has struggled against micro-Max 4.8 and has little to no chance against the Maia Lc0 networks.
As for the conditions, I will list them down here:
- Hardware Threads: 1024
- Ponder: Off
- Engines using their own books and learning enabled when possible.
- Time Setup: 2m-5sec in (Increment).
- All 3,4,5 endgames and most importantly 6-7.
LazySMP 3.0 :
https://drive.google.com/file/d/1aPIFcY ... sp=sharing
As for the conditions, I will list them down here:
- Hardware Threads: 1024
- Ponder: Off
- Engines using their own books and learning enabled when possible.
- Time Setup: 2m-5sec in (Increment).
- All 3,4,5 endgames and most importantly 6-7.
LazySMP 3.0 :
Code: Select all
Acquacchi 1.0.Dev099e907-ja : 20 : 7+ : 3= : 10- : 42.5%
AnMon 5.75 : 20 : 1+ : 2= : 17- : 10.0%
Aramis 1.40 : 20 : 0+ : 0= : 20- : 0.0%
Belofte 2.1.8.1 : 20 : 20+ : 0= : 0- : 100.0%
Colchess 8.0-ja : 20 : 12+ : 1= : 7- : 62.5%
Dragon 4.6 : 20 : 3+ : 2= : 15- : 20.0%
EveAnn 1.73 : 20 : 0+ : 1= : 19- : 2.5%
EveAnn 2.1nn : 20 : 0+ : 0= : 20- : 0.0%
Gullydeckel-2.16.pl2 : 20 : 10+ : 4= : 6- : 60.0%
Heimdall 1.1.1 : 20 : 0+ : 0= : 20- : 0.0%
Hermann 2.8 : 20 : 0+ : 0= : 20- : 0.0%
InmiChess 3.0.5 : 20 : 4+ : 5= : 11- : 32.5%
Joker 1.1.14 : 20 : 5+ : 1= : 14- : 27.5%
Lc0.cuda 0.31.1 Mean-girl.7 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 Mean-girl.8 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 maia-1100 6t1024h : 20 : 2+ : 0= : 18- : 10.0%
Lc0.cuda 0.31.1 maia-1200 6t1024h : 20 : 0+ : 1= : 19- : 2.5%
Lc0.cuda 0.31.1 maia-1300 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 maia-1400 6t1024h : 20 : 1+ : 0= : 19- : 5.0%
Lc0.cuda 0.31.1 maia-1500 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 maia-1600 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 maia-1700 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 maia-1800 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
Lc0.cuda 0.31.1 maia-1900 6t1024h : 20 : 0+ : 0= : 20- : 0.0%
MangoPaola 1.0 : 20 : 4+ : 3= : 13- : 27.5%
Nalwald 19 : 20 : 0+ : 0= : 20- : 0.0%
Nejmet 3.07 : 20 : 2+ : 4= : 14- : 20.0%
ProDeo 1.1 : 20 : 0+ : 2= : 18- : 5.0%
ProDeo 1.1 Absolute-Novice-Player : 20 : 20+ : 0= : 0- : 100.0%
ProDeo 1.1 Down : 20 : 2+ : 0= : 18- : 10.0%
ProDeo 1.1 Strong-Club-Player : 20 : 1+ : 2= : 17- : 10.0%
ProDeo 1.1 Style.Aggressive-AntiGM.Smart : 20 : 0+ : 1= : 19- : 2.5%
ProDeo 2.1 Aggressive : 20 : 0+ : 0= : 20- : 0.0%
ProDeo 2.1 Average-Club-Player : 20 : 1+ : 0= : 19- : 5.0%
ProDeo 2.1 Strong-Club-Player : 20 : 0+ : 0= : 20- : 0.0%
Rebel Mephisto-Gideon : 20 : 1+ : 0= : 19- : 5.0%
Rebel Mephisto-Gideon Creative : 20 : 5+ : 0= : 15- : 25.0%
Rebel Mephisto-Gideon Style.Aggressive-AntiGM.Smart : 20 : 1+ : 0= : 19- : 5.0%
Rival 0094-ja : 20 : 9+ : 2= : 9- : 50.0%
RoboKewlper 0.047a : 20 : 20+ : 0= : 0- : 100.0%
Skaki 1.23-ja : 20 : 18+ : 2= : 0- : 95.0%
StAndersen 1.31c-rev2-ja : 20 : 19+ : 1= : 0- : 97.5%
Tcheran 4.0 : 20 : 0+ : 1= : 19- : 2.5%
The King 3.50 : 20 : 0+ : 0= : 20- : 0.0%
Toad 1.0 : 20 : 11+ : 5= : 4- : 67.5%
Tscp 181e-32-ja : 20 : 17+ : 1= : 2- : 87.5%
Yace 0.99.87 : 20 : 2+ : 2= : 16- : 15.0%
micro-Max 4.8 : 20 : 12+ : 3= : 5- : 67.5%