New engine: LazySMP

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 28145
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New engine: LazySMP

Post by hgm »

Rebel wrote: Fri Oct 25, 2024 7:09 am
LazySMP wrote: Fri Oct 25, 2024 2:32 am If there is nothing in the 2000 Elo engine, why the authors of the 3800 ELO engines (Clover, Rubi, etc) don't want my engine to be tested in the rating list?!
Please quote what the authors of Clover and Rubi exactly said.
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.
Ras
Posts: 2582
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: New engine: LazySMP

Post by Ras »

LazySMP wrote: Sat Oct 26, 2024 6:32 pmThank you for your excellent presentation with detailed information about NPS. I would like to test your engine speed.
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.
Please send me the download link.
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).
Rasmus Althoff
https://www.ct800.net
User avatar
hgm
Posts: 28145
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New engine: LazySMP

Post by hgm »

Ras wrote: Sat Oct 26, 2024 7:52 pm Note that 35M is in perft, not in gameplay, ...
That is moves per second, not nodes per second, right?
Ras
Posts: 2582
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: New engine: LazySMP

Post by Ras »

hgm wrote: Sat Oct 26, 2024 7:55 pmThat is moves per second, not nodes per second, right?
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
User avatar
hgm
Posts: 28145
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New engine: LazySMP

Post by hgm »

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.
Ras
Posts: 2582
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: New engine: LazySMP

Post by Ras »

hgm wrote: Sat Oct 26, 2024 9:50 pmThe former basically measures the speed of your move generation, the latter the speed of your make/unmake.
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
User avatar
hgm
Posts: 28145
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New engine: LazySMP

Post by hgm »

Ras wrote: Sat Oct 26, 2024 10:22 pm
hgm wrote: Sat Oct 26, 2024 9:50 pmThe former basically measures the speed of your move generation, the latter the speed of your make/unmake.
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.
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.

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.
Ras
Posts: 2582
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: New engine: LazySMP

Post by Ras »

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.
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.
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.
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?
Rasmus Althoff
https://www.ct800.net
User avatar
Rebel
Posts: 7208
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: New engine: LazySMP

Post by Rebel »

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.

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
Twice as deep as Blunder 5.0, CCRL rated 2020 and yet Blunder scored 5.5/6, TC=about 1 sec per move.
90% of coding is debugging, the other 10% is writing bugs.
supernova
Posts: 34
Joined: Mon Apr 15, 2024 8:30 pm
Full name: Arthur Matheus

Re: New engine: LazySMP

Post by supernova »

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 :

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%
https://drive.google.com/file/d/1aPIFcY ... sp=sharing