New open-source engine, Bit-Genie

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

Moderator: Ras

User avatar
Gabor Szots
Posts: 1509
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: New open-source engine, Bit-Genie

Post by Gabor Szots »

Guenther wrote: Mon Mar 22, 2021 11:19 am So you mean more specific to Arena? But this is already known, sorry.
(uci filter and changing some graphic display options / animations might help, but I never user Arena for good reasons)
No, it is specific to certain engines under Arena. Most engines never (or rarely) forfeit on time under Arena. Yes, there is a problem with Arena but not as serious as to abandon this GUI when it is so comfortable and flexible to use for tournaments.

I use the CuteChess GUI only for very short matches, just to obtain a view of some new engine. Until interrupting/resuming tournaments (in a user-friendly way) is not implemented, it is of no use for me.
Gabor Szots
CCRL testing group
User avatar
Gabor Szots
Posts: 1509
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: New open-source engine, Bit-Genie

Post by Gabor Szots »

mvanthoor wrote: Mon Mar 22, 2021 12:04 pm As Guenther says; enable the UCI-filter
I have always used the UCI filter.
Gabor Szots
CCRL testing group
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New open-source engine, Bit-Genie

Post by Guenther »

Gabor Szots wrote: Mon Mar 22, 2021 12:09 pm
Guenther wrote: Mon Mar 22, 2021 11:19 am So you mean more specific to Arena? But this is already known, sorry.
(uci filter and changing some graphic display options / animations might help, but I never user Arena for good reasons)
No, it is specific to certain engines under Arena. Most engines never (or rarely) forfeit on time under Arena. Yes, there is a problem with Arena but not as serious as to abandon this GUI when it is so comfortable and flexible to use for tournaments.
As long as it won't happen under other (reliable) GUIs for those 'specific' engines I will still claim it's more specific to Arena.

I am quite sure this are engines, which try to squeeze time close to the edge and Arenas known overhead is guilty.
The ones that don't lose on time, often already have implemented 'hacks' and saftety margins for this.
(the forum is full of hacks for Arena BTW)
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
lithander
Posts: 924
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: New open-source engine, Bit-Genie

Post by lithander »

Hi Aryan!

I also started chess programming only a few months ago and can relate to your addiction symptoms. But it's a very pandemic-friendly hobby, at least. ;)

I gave your engine a try as it's pretty much exactly the same strength as the current build of my engine MinimalChess that Marcel mentioned. But your's is much faster. It reports around 8 Million NPS where my engine only manages to search 1.4 NPS! Well done!

I have encountered a few stability problems with Bit Genie, though.

My tournament against Bit Genie (bmi2 build) ended prematurely in CuteChess CLI:

Code: Select all

./cutechess-cli.exe -engine conf="MinimalChess 0.3.1 PeSTO" -engine conf="Bit-Genie_100" -each tc=3+0.5 book=varied.bin -pgnout mmc031_pesto_vs_bit-genie_100.pgn -rounds 100 -games 2 -repeat -concurrency 4
[...]
Terminating process of engine Bit-Genie_100(6)
Finished game 37 (MinimalChess 0.3.1 PeSTO vs Bit-Genie_100): 1-0 {Black disconnects}
[pgn]
[Event "?"]
[Site "?"]
[Date "2021.03.22"]
[Round "19"]
[White "MinimalChess 0.3.1 PeSTO"]
[Black "Bit-Genie_100"]
[Result "1-0"]
[ECO "A10"]
[GameDuration "00:00:43"]
[GameEndTime "2021-03-22T13:00:07.779 Mitteleuropäische Zeit"]
[GameStartTime "2021-03-22T12:59:23.814 Mitteleuropäische Zeit"]
[Opening "English Opening"]
[PlyCount "103"]
[Termination "abandoned"]
[TimeControl "3+0.5"]

1. c4 {book} b6 {book} 2. e4 {book} Bb7 {book} 3. Nc3 {book} e6 {book}
4. Nf3 {+0.57/5 0.14s} Bb4 {book} 5. Bd3 {book} Ne7 {book} 6. Ne2 {book}
Na6 {+0.18/7 0.57s} 7. a3 {+0.25/6 0.35s} Bd6 {+0.10/7 0.56s}
8. b4 {+0.51/5 0.59s} f5 {-0.47/7 0.56s} 9. e5 {+2.00/6 0.27s}
Bxf3 {-0.76/7 0.56s} 10. exd6 {+1.62/6 0.15s} Bxg2 {-1.02/7 0.56s}
11. dxe7 {+1.64/6 0.18s} Qxe7 {-0.62/7 0.56s} 12. Rg1 {+1.79/6 0.25s}
Qf6 {-1.23/7 0.55s} 13. Bb2 {+2.29/6 0.34s} Qxb2 {-1.76/7 0.55s}
14. Rxg2 {+2.23/6 0.53s} Qf6 {-1.73/7 0.55s} 15. c5 {+2.40/5 0.62s}
Nb8 {-1.40/7 0.55s} 16. Rc1 {+2.20/5 0.24s} Nc6 {-1.39/7 0.55s}
17. b5 {+2.01/4 0.62s} Ne5 {-0.94/7 0.55s} 18. Rc3 {+0.89/5 0.13s}
Nxd3+ {-0.06/7 0.54s} 19. Rxd3 {+0.95/6 0.13s} bxc5 {-0.30/7 0.54s}
20. Rdg3 {+0.97/5 0.64s} O-O {+0.16/7 0.54s} 21. Rxg7+ {+1.06/5 0.63s}
Qxg7 {-0.16/9 0.54s} 22. Rxg7+ {+1.55/7 0.30s} Kxg7 {-0.26/8 0.54s}
23. Qb3 {+1.78/6 0.33s} Kf7 {-0.52/8 0.54s} 24. Qc4 {+2.02/6 0.39s}
d6 {-0.39/8 0.54s} 25. Nf4 {+2.07/6 0.34s} Rae8 {-0.11/8 0.54s}
26. d4 {+2.13/6 0.31s} Rg8 {+0.04/8 0.53s} 27. Kf1 {+2.16/6 0.30s}
Rg4 {-0.04/8 0.53s} 28. dxc5 {+2.49/6 0.23s} Re7 {-0.44/8 0.53s}
29. c6 {+3.00/6 0.18s} Ke8 {+0.34/8 0.53s} 30. h3 {+3.10/6 0.14s}
d5 {-0.75/8 0.53s} 31. Qc3 {+3.75/6 0.28s} Rxf4 {-1.72/9 0.53s}
32. Qg3 {+4.57/7 0.48s} Rxf2+ {-2.01/9 0.53s} 33. Qxf2 {+4.81/7 0.41s}
e5 {-2.16/9 0.53s} 34. Qa2 {+4.95/7 0.47s} Kf7 {-2.31/9 0.53s}
35. Qxd5+ {+5.06/7 0.30s} Kf6 {-2.86/9 0.53s} 36. Qc5 {+5.24/7 0.64s}
e4 {-3.18/9 0.52s} 37. Qxa7 {+5.23/7 0.35s} e3 {-3.31/9 0.52s}
38. Ke2 {+5.37/7 0.16s} f4 {-3.91/9 0.52s} 39. Qd4+ {+5.64/7 0.23s}
Kf5 {-4.46/8 0.52s} 40. b6 {+6.20/7 0.64s} cxb6 {-6.81/9 0.52s}
41. c7 {+7.12/7 0.44s} Rxc7 {-7.18/9 0.52s} 42. Qd5+ {+7.81/7 0.20s}
Kf6 {-8.04/9 0.52s} 43. Qd6+ {+8.14/7 0.22s} Kf5 {-10.37/10 0.52s}
44. Qxc7 {+8.98/7 0.20s} Ke4 {-10.37/8 0.52s} 45. Qc4+ {+9.63/7 0.42s}
Ke5 {-11.15/9 0.52s} 46. Kf3 {+10.06/7 0.44s} Kf5 {-11.45/9 0.52s}
47. Qxf4+ {+10.57/7 0.63s} Kg6 {-12.20/9 0.52s} 48. Qxe3 {+10.66/6 0.73s}
b5 {-12.20/8 0.52s} 49. Qe5 {+10.87/6 0.72s} Kf7 {-12.49/9 0.52s}
50. Qxb5 {+11.00/6 0.72s} Kf6 {-12.66/8 0.52s} 51. a4 {+11.24/6 0.71s}
Kf7 {-20.49/8 0.51s} 52. a5 {+12.10/6 0.71s, Black disconnects} 1-0
[/pgn]

Maybe you can try to recreate the final position using the PGN and see if there's a reproducable crash?

Up to game 37 I saw no "time forfeits" despite the fast "3+0.5" time controls and our engines seemed to be of equal strength as predicted by Marcel.

However if I try to run a tournament in the CuteChess GUI then Bit-Genie_100 loses almost *all* games on time with "40/5+1" time controls!
mvanthoor wrote: Sun Mar 21, 2021 7:38 pm MinimalChess 0.3 with PeSTO falls short by just 70 Elo, but it doesn't have a hash table yet. Adding this should add another 170 Elo. Thus... a basic engine with MVV-LVA, TT, TTMove ordering, and a tapered and tuned evaluation, could be around 1950 Elo.
I don't think Hash tables would add 170 ELO to MinimalChess. I don't have TT move ordering (obviously) and no killer and history heuristics but I do play the best move from the principal variation first which provides a lot of the cutoffs you'd otherwise get from TT tables. Also my search depth is constrained by the slow speed of the naive move generator. Both factors together cause the expected gain of adding TT tables to be much lower than what you saw with Rustic.
Last edited by lithander on Mon Mar 22, 2021 1:33 pm, edited 3 times in total.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New open-source engine, Bit-Genie

Post by Guenther »

lithander wrote: Mon Mar 22, 2021 1:22 pm
Up to game 37 I saw no "time forfeits" despite the fast "3+0.5" time controls and our engines seemed to be of equal strength as predicted by Marcel.

However if I try to run a tournament in the CuteChess GUI then Bit-Genie_100 loses almost *all* games on time with "40/5+1" time controls!

May be it doesn't understand that 'mixed' tc currently? Time management was added just recently at all.
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
lithander
Posts: 924
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: New open-source engine, Bit-Genie

Post by lithander »

Guenther wrote: Mon Mar 22, 2021 1:32 pm May be it doesn't understand that 'mixed' tc currently? Time management was added just recently at all.
I just looked at the PGN log and curiously Bit Genie always runs out of time in the 36. move as white and 37. move as black!
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
aryan1508
Posts: 31
Joined: Sat Mar 20, 2021 3:44 pm
Full name: Aryan Parekh

Re: New open-source engine, Bit-Genie

Post by aryan1508 »

lithander wrote: Mon Mar 22, 2021 1:22 pm Hi Aryan!

I also started chess programming only a few months ago and can relate to your addiction symptoms. But it's a very pandemic-friendly hobby, at least. ;)

I gave your engine a try as it's pretty much exactly the same strength as the current build of my engine MinimalChess that Marcel mentioned. But your's is much faster. It reports around 8 Million NPS where my engine only manages to search 1.4 NPS! Well done!

I have encountered a few stability problems with Bit Genie, though.

My tournament against Bit Genie (bmi2 build) ended prematurely in CuteChess CLI:

Code: Select all

./cutechess-cli.exe -engine conf="MinimalChess 0.3.1 PeSTO" -engine conf="Bit-Genie_100" -each tc=3+0.5 book=varied.bin -pgnout mmc031_pesto_vs_bit-genie_100.pgn -rounds 100 -games 2 -repeat -concurrency 4
[...]
Terminating process of engine Bit-Genie_100(6)
Finished game 37 (MinimalChess 0.3.1 PeSTO vs Bit-Genie_100): 1-0 {Black disconnects}
[pgn]
[Event "?"]
[Site "?"]
[Date "2021.03.22"]
[Round "19"]
[White "MinimalChess 0.3.1 PeSTO"]
[Black "Bit-Genie_100"]
[Result "1-0"]
[ECO "A10"]
[GameDuration "00:00:43"]
[GameEndTime "2021-03-22T13:00:07.779 Mitteleuropäische Zeit"]
[GameStartTime "2021-03-22T12:59:23.814 Mitteleuropäische Zeit"]
[Opening "English Opening"]
[PlyCount "103"]
[Termination "abandoned"]
[TimeControl "3+0.5"]

1. c4 {book} b6 {book} 2. e4 {book} Bb7 {book} 3. Nc3 {book} e6 {book}
4. Nf3 {+0.57/5 0.14s} Bb4 {book} 5. Bd3 {book} Ne7 {book} 6. Ne2 {book}
Na6 {+0.18/7 0.57s} 7. a3 {+0.25/6 0.35s} Bd6 {+0.10/7 0.56s}
8. b4 {+0.51/5 0.59s} f5 {-0.47/7 0.56s} 9. e5 {+2.00/6 0.27s}
Bxf3 {-0.76/7 0.56s} 10. exd6 {+1.62/6 0.15s} Bxg2 {-1.02/7 0.56s}
11. dxe7 {+1.64/6 0.18s} Qxe7 {-0.62/7 0.56s} 12. Rg1 {+1.79/6 0.25s}
Qf6 {-1.23/7 0.55s} 13. Bb2 {+2.29/6 0.34s} Qxb2 {-1.76/7 0.55s}
14. Rxg2 {+2.23/6 0.53s} Qf6 {-1.73/7 0.55s} 15. c5 {+2.40/5 0.62s}
Nb8 {-1.40/7 0.55s} 16. Rc1 {+2.20/5 0.24s} Nc6 {-1.39/7 0.55s}
17. b5 {+2.01/4 0.62s} Ne5 {-0.94/7 0.55s} 18. Rc3 {+0.89/5 0.13s}
Nxd3+ {-0.06/7 0.54s} 19. Rxd3 {+0.95/6 0.13s} bxc5 {-0.30/7 0.54s}
20. Rdg3 {+0.97/5 0.64s} O-O {+0.16/7 0.54s} 21. Rxg7+ {+1.06/5 0.63s}
Qxg7 {-0.16/9 0.54s} 22. Rxg7+ {+1.55/7 0.30s} Kxg7 {-0.26/8 0.54s}
23. Qb3 {+1.78/6 0.33s} Kf7 {-0.52/8 0.54s} 24. Qc4 {+2.02/6 0.39s}
d6 {-0.39/8 0.54s} 25. Nf4 {+2.07/6 0.34s} Rae8 {-0.11/8 0.54s}
26. d4 {+2.13/6 0.31s} Rg8 {+0.04/8 0.53s} 27. Kf1 {+2.16/6 0.30s}
Rg4 {-0.04/8 0.53s} 28. dxc5 {+2.49/6 0.23s} Re7 {-0.44/8 0.53s}
29. c6 {+3.00/6 0.18s} Ke8 {+0.34/8 0.53s} 30. h3 {+3.10/6 0.14s}
d5 {-0.75/8 0.53s} 31. Qc3 {+3.75/6 0.28s} Rxf4 {-1.72/9 0.53s}
32. Qg3 {+4.57/7 0.48s} Rxf2+ {-2.01/9 0.53s} 33. Qxf2 {+4.81/7 0.41s}
e5 {-2.16/9 0.53s} 34. Qa2 {+4.95/7 0.47s} Kf7 {-2.31/9 0.53s}
35. Qxd5+ {+5.06/7 0.30s} Kf6 {-2.86/9 0.53s} 36. Qc5 {+5.24/7 0.64s}
e4 {-3.18/9 0.52s} 37. Qxa7 {+5.23/7 0.35s} e3 {-3.31/9 0.52s}
38. Ke2 {+5.37/7 0.16s} f4 {-3.91/9 0.52s} 39. Qd4+ {+5.64/7 0.23s}
Kf5 {-4.46/8 0.52s} 40. b6 {+6.20/7 0.64s} cxb6 {-6.81/9 0.52s}
41. c7 {+7.12/7 0.44s} Rxc7 {-7.18/9 0.52s} 42. Qd5+ {+7.81/7 0.20s}
Kf6 {-8.04/9 0.52s} 43. Qd6+ {+8.14/7 0.22s} Kf5 {-10.37/10 0.52s}
44. Qxc7 {+8.98/7 0.20s} Ke4 {-10.37/8 0.52s} 45. Qc4+ {+9.63/7 0.42s}
Ke5 {-11.15/9 0.52s} 46. Kf3 {+10.06/7 0.44s} Kf5 {-11.45/9 0.52s}
47. Qxf4+ {+10.57/7 0.63s} Kg6 {-12.20/9 0.52s} 48. Qxe3 {+10.66/6 0.73s}
b5 {-12.20/8 0.52s} 49. Qe5 {+10.87/6 0.72s} Kf7 {-12.49/9 0.52s}
50. Qxb5 {+11.00/6 0.72s} Kf6 {-12.66/8 0.52s} 51. a4 {+11.24/6 0.71s}
Kf7 {-20.49/8 0.51s} 52. a5 {+12.10/6 0.71s, Black disconnects} 1-0
[/pgn]

Maybe you can try to recreate the final position using the PGN and see if there's a reproducable crash?

Up to game 37 I saw no "time forfeits" despite the fast "3+0.5" time controls and our engines seemed to be of equal strength as predicted by Marcel.

However if I try to run a tournament in the CuteChess GUI then Bit-Genie_100 loses almost *all* games on time with "40/5+1" time controls!
mvanthoor wrote: Sun Mar 21, 2021 7:38 pm MinimalChess 0.3 with PeSTO falls short by just 70 Elo, but it doesn't have a hash table yet. Adding this should add another 170 Elo. Thus... a basic engine with MVV-LVA, TT, TTMove ordering, and a tapered and tuned evaluation, could be around 1950 Elo.
I don't think Hash tables would add 170 ELO to MinimalChess. I don't have TT move ordering (obviously) and no killer and history heuristics but I do play the best move from the principal variation first which provides a lot of the cutoffs you'd otherwise get from TT tables. Also my search depth is constrained by the slow speed of the naive move generator. Both factors together cause the expected gain of adding TT tables to be much lower than what you saw with Rustic.
Hi! Can you please tell me which branch you have tested?
aryan1508
Posts: 31
Joined: Sat Mar 20, 2021 3:44 pm
Full name: Aryan Parekh

Re: New open-source engine, Bit-Genie

Post by aryan1508 »

Gabor Szots wrote: Mon Mar 22, 2021 10:41 am
aryan1508 wrote: Mon Mar 22, 2021 9:26 am I've implemented it here https://github.com/Aryan1508/Bit-Genie/ ... rch_thread. What happens is A thread is used for the UCI loop since reading the stdin in C++ is 'blocking'. The other 'worker' thread demands cpu since it is used for searching
OK, I'm going to use that for my testing.
Sorry for my late reply, can you please use the master branch for testing? I just implemented the search thread branch this morning and haven't tested it myself for bugs.
User avatar
lithander
Posts: 924
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: New open-source engine, Bit-Genie

Post by lithander »

aryan1508 wrote: Mon Mar 22, 2021 1:37 pm Hi! Can you please tell me which branch you have tested?
I downloaded the "Bit-Gnie_100bmi2.exe" from your "Bit-Genie 1" release.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
aryan1508
Posts: 31
Joined: Sat Mar 20, 2021 3:44 pm
Full name: Aryan Parekh

Re: New open-source engine, Bit-Genie

Post by aryan1508 »

lithander wrote: Mon Mar 22, 2021 1:44 pm
aryan1508 wrote: Mon Mar 22, 2021 1:37 pm Hi! Can you please tell me which branch you have tested?
I downloaded the "Bit-Gnie_100bmi2.exe" from your "Bit-Genie 1" release.
Can you also paste in your `go` command? I haven't seen any crash in 1000+ games so im really confused