New engine releases & news 2021

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

Moderators: hgm, Rebel, chrisw

Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New engine releases & news 2021

Post by Gabor Szots »

Gabor Szots
CCRL testing group
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: New engine releases & news 2021

Post by amanjpro »

Zahak 1.0.0 is out, with a bunch of sweet additions that is worth around ~250-300 elo points:

Here is what is new (since version 0.3.0):

- Multi-stage move generation
- Magic bitboards
- Fixes in history heuristic (move ordering)
- Fixes in internal iterative deepening (move ordering)
- Minor tweaks in evaluation
- Minor tweaks in time management
- Also build Zahak for RaspberyPi 64-bit (ARM-64bit)

Download it here: https://github.com/amanjpro/zahak/releases/tag/1.0.0
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: New engine releases & news 2021

Post by mvanthoor »

amanjpro wrote: Tue Apr 06, 2021 6:45 pm Zahak 1.0.0 is out, with a bunch of sweet additions that is worth around ~250-300 elo points:
Congratulations. Did you try the testing runs we talked about? Your current engine (0.3.0) has a huge feature list, but its rating is only +100 compared to Rustic Alpha 2. Rustic's next version(s) will have Killer moves, History Heuristic, Aspiration Window, and PVS. I hope this will achieve +100 Elo, which would put me on par (approximately) with Zahak 0.3.

Next will be a tuned and then tapered evaluation, which was proven by Lithander (MinimalChess 0.3 + experiments) to add 250-300 Elo depending on the other features the engine has. So after adding tuning and then tapering, I expect/hope to be at around 2150 with Rustic (at that point it'll not be "alpha" anymore). That would put it on par with Zahak 1.0.0, but still with much less features.

This would be before I even begin to look into things like staged move generation, various pruning options, LMR, SEE... and all of THAT will come before I even start writing an evaluation beyond PST's.

In short, I think your engine could possibly be even stronger than it already is.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: New engine releases & news 2021

Post by amanjpro »

mvanthoor wrote: Tue Apr 06, 2021 10:26 pm
amanjpro wrote: Tue Apr 06, 2021 6:45 pm Zahak 1.0.0 is out, with a bunch of sweet additions that is worth around ~250-300 elo points:
Congratulations. Did you try the testing runs we talked about? Your current engine (0.3.0) has a huge feature list, but its rating is only +100 compared to Rustic Alpha 2. Rustic's next version(s) will have Killer moves, History Heuristic, Aspiration Window, and PVS. I hope this will achieve +100 Elo, which would put me on par (approximately) with Zahak 0.3.

Next will be a tuned and then tapered evaluation, which was proven by Lithander (MinimalChess 0.3 + experiments) to add 250-300 Elo depending on the other features the engine has. So after adding tuning and then tapering, I expect/hope to be at around 2150 with Rustic (at that point it'll not be "alpha" anymore). That would put it on par with Zahak 1.0.0, but still with much less features.

This would be before I even begin to look into things like staged move generation, various pruning options, LMR, SEE... and all of THAT will come before I even start writing an evaluation beyond PST's.

In short, I think your engine could possibly be even stronger than it already is.
Zahak's main issue is NPS, currently my NPS is ~900K which is way too low (compare it with Rustic, 4000K). As I am pretty new to Go, I am sure I do too many stupid things. Orrrrrr, maybe it is because I generate legal moves, not pseudo legal ones (I hope the latter is true, because it is on my menu to change)
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: New engine releases & news 2021

Post by mvanthoor »

amanjpro wrote: Tue Apr 06, 2021 10:46 pm Zahak's main issue is NPS, currently my NPS is ~900K which is way too low (compare it with Rustic, 4000K). As I am pretty new to Go, I am sure I do too many stupid things.
That could be an issue. The one thing that helped me a lot was to NOT initialize the move list when creating it. Rust forces everything to be either initialized, zero-initialized when you create it. As I don't have moves when creating the move list, it'll be zero-initialized. This costs a HUGE amount of time, especially in a search. It's also useless, because right after creating the move list, the moves will be generated and put into the list. Therefore inserting a tiny line of unsafe code, which basically means "don't initialize this, I'll do it later, don't worry" sped up the engine by just over 4x. It went from perft @ 10 million leaves/sec to just over 40 million leaves/sec.

Maybe you could look into things like this: where you're "double initializing".
Orrrrrr, maybe it is because I generate legal moves, not pseudo legal ones (I hope the latter is true, because it is on my menu to change)
Do you check for the king being in check in the move generator, or in the search?

In the first case, you have a legal move generator, which is slow. (There are ways to make fast legal move generators, but checking the king is in check for every move is not it). In the second case, your move generator is pseudo-legal: generate every move, then in the search, check if the move is legal after making it.

The difference is that in the second case, you never check moves for legality that the search doesn't play.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: New engine releases & news 2021

Post by amanjpro »

mvanthoor wrote: Tue Apr 06, 2021 11:28 pm
amanjpro wrote: Tue Apr 06, 2021 10:46 pm Zahak's main issue is NPS, currently my NPS is ~900K which is way too low (compare it with Rustic, 4000K). As I am pretty new to Go, I am sure I do too many stupid things.
That could be an issue. The one thing that helped me a lot was to NOT initialize the move list when creating it. Rust forces everything to be either initialized, zero-initialized when you create it. As I don't have moves when creating the move list, it'll be zero-initialized. This costs a HUGE amount of time, especially in a search. It's also useless, because right after creating the move list, the moves will be generated and put into the list. Therefore inserting a tiny line of unsafe code, which basically means "don't initialize this, I'll do it later, don't worry" sped up the engine by just over 4x. It went from perft @ 10 million leaves/sec to just over 40 million leaves/sec.

Maybe you could look into things like this: where you're "double initializing".
Orrrrrr, maybe it is because I generate legal moves, not pseudo legal ones (I hope the latter is true, because it is on my menu to change)
Do you check for the king being in check in the move generator, or in the search?

In the first case, you have a legal move generator, which is slow. (There are ways to make fast legal move generators, but checking the king is in check for every move is not it). In the second case, your move generator is pseudo-legal: generate every move, then in the search, check if the move is legal after making it.

The difference is that in the second case, you never check moves for legality that the search doesn't play.
I do generate legal moves at move generation time, I check for king being in check for every move, and yes it is slow, that is what I want to eliminate. Especially, I have to at least partially make/unmake every move, before search
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New engine releases & news 2021

Post by Gabor Szots »

I can see that Günther has entered a new engine in his chronology, Odonata by Andy Watkins, London, an engine written in Rust.

Some notes:
1. Pre-release version 0.2.0 calls itself version 0.1.1.
2. If you compile it yourself you get many warnings.
3. Upon issuing the go command the program panicks (some issue with Rust). It does not seem to do harm though.
4. I estimate the strength of the engine around 800 Elos (based on a very short blitz match against AcquaD).

The master version compiles without warnings and displays 0.2.1 as its version.
Gabor Szots
CCRL testing group
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New engine releases & news 2021

Post by Guenther »

FoxSEE 7.0.0, 7.2.0, 7.2.1, 7.2.2 released in the last days!?
https://github.com/redsalmon91/FoxSEE/releases

Nebiyu 1.7
https://sites.google.com/site/dshawul/

(New) Odonata 0.2.0 (internally still named 0.1.1) already mentioned by Gabor
It is stable and never loses to Alouette 0.1.4 - only allowing 3-fold repetitions sometimes, which should be soon fixed as it is currently further developed.

Code: Select all

Little test match vs. Alouette 0.14 was (+20 -0 =8)
https://github.com/akanalytics/odonata/releases

Vanished links/sites:

Scidlet sourceforge wiki link vanished - added wayback link
NG-Play site not reachable anymore - added wayback link

Folkert v. Heusdens site for various chess engines gone! - wayback available, but only for descriptions, no binaries!
I will collect binaries from my archives for CPP1/Embla/Micah and make them available again.
POS is already available elsewhere and Feeks still has a github repo.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New engine releases & news 2021

Post by Gabor Szots »

Guenther wrote: Sat Apr 10, 2021 10:58 am FoxSEE 7.0.0, 7.2.0, 7.2.1, 7.2.2 released in the last days!?
https://github.com/redsalmon91/FoxSEE/releases
This engine is a joke. Worse by each version. Does the author test it at all before releasing?
Gabor Szots
CCRL testing group
Damir
Posts: 2801
Joined: Mon Feb 11, 2008 3:53 pm
Location: Denmark
Full name: Damir Desevac

Re: New engine releases & news 2021

Post by Damir »

No that is why he has you and other CEGT testers do his work for him... :) :)