New open-source engine, Bit-Genie

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

Moderator: Ras

User avatar
lithander
Posts: 925
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:46 pm Can you also paste in your `go` command? I haven't seen any crash in 1000+ games so im really confused
Sadly, I don't have a 'go' command to share with you. I just tell CuteChess to play 200 games with this command:

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
And then it starts four threads ("-concurrency 4") and does it's thing and only logs the resulting PGNs in a log file. And I posted the PGN that resulted in BitGenies disconnect. It contains the move sequence but not in the format that you need to copy and paste it to create the last "go" command. You need to do it by hand or you can try to load the PGN into a tool that allows you to extract the last position as FEN and feed that to your engine.

Also since I posted it has happened again after 50 games! I'll run another test and try to reproduce it with -debug enabled.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
Gabor Szots
Posts: 1532
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 »

aryan1508 wrote: Mon Mar 22, 2021 1:39 pm 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.
I downloaded the master and compiled it for myself. That is what I am using (tournament already running).
Last edited by Gabor Szots on Mon Mar 22, 2021 2:05 pm, edited 1 time in total.
Gabor Szots
CCRL testing group
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:59 pm
aryan1508 wrote: Mon Mar 22, 2021 1:46 pm Can you also paste in your `go` command? I haven't seen any crash in 1000+ games so im really confused
Sadly, I don't have a 'go' command to share with you. I just tell CuteChess to play 200 games with this command:

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
And then it starts four threads ("-concurrency 4") and does it's thing and only logs the resulting PGNs in a log file. And I posted the PGN that resulted in BitGenies disconnect. It contains the move sequence but not in the format that you need to copy and paste it to create the last "go" command. You need to do it by hand or you can try to load the PGN into a tool that allows you to extract the last position as FEN and feed that to your engine.

Also since I posted it has happened again after 50 games! So it's not super rare, chances are you'll be able to reproduce it too. (If it's not specific to my hardware, which is a Ryzen 3600)
Really surprised to see that. Can you clone the master and create your own build?
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: New open-source engine, Bit-Genie

Post by mvanthoor »

lithander wrote: Mon Mar 22, 2021 1:22 pm
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.
Richard Delorme (abulmo, author of Dumb & Dumber) showed that:

- For a simple engine, hash move sorting adds a lot of strength, TT cuts don't.
- For a more sophisticated engine, TT cuts add more strength than hash move sorting, but when you use them both together, they have a massive impact.

You play the best move from the last iteration first, which an engine with a hash table + TTMove sorting obviously also does. They overlap. Therefore you already have the largest Elo gainer. Adding a hash table, the TT Cuts would add a bit, but not 170 Elo. To an engine that has neither no TT/TT Move sorting and doesn't play best move from the previous iteration first, and is at the same development stage as MinimalChess and Rustic Alpha 1, the TT would add 170 Elo.

As Richard also showed, the TT's impact becomes bigger as the engine becomes faster and does more pruning.

But you're right, because you already have the best move from previous iteration, and a slower move generator (and thus less depth), the hash table's impact would be (much) less. I haven't implemented best move from previous iteration in Alpha 1 on purpose, because I knew it should be covered by the hash table.

I'm already wondering what Killers and History are going to add on top of Alpha 2; they decrease the search tree, and thus should add (some) depth, where the TT becomes more effective. I expect those functions to be synergistic, where they strengthen on another, just like PST's + QSearch.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
lithander
Posts: 925
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 »

This reproducably crashes the build you provided on my computer!

Code: Select all

position startpos moves e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c7c6 g1f3 d8a5 e1g1 c8e6 c4b3 b8d7 f3d4 d5c3 d2c3 e6b3 c2b3 e7e5 d4f5 g7g6 f5d6 f8d6 d1d6 a5c5 d6d2 f7f5 d2h6 f5f4 c1d2 e8c8 a1d1 d7f6 h6h3 c8c7 b3b4 c5e7 f1e1 d8d7 e1e2 h8d8 h3h4 f6d5 h4h6 f4f3 g2f3 d5f4 d2f4 d7d1 g1g2 e7f7 e2e5 c7c8 e5c5 d8f8 h6h3 f7d7 h3h6 f8e8 f4e3 b7b6 c5c4 d7d5 b2b3 e8e7 h6f8 c8d7 f8b8 b6b5 c4c5 d5d6 b8a7 d7e6 a7a8 e6f7 a8c6 d6c6 c5c6 d1a1 c6a6 a1b1 g2g3 e7e6 a6a7 e6e7 a7a5 b1g1 g3f4 e7b7 a5a8 f7e6 a8e8 e6f7 e8h8 f7f6 e3d4 f6e6 h8e8 e6f7 e8h8 f7e6 h8d8 b7f7 f4e4 g1e1 d4e3 f7a7 d8d2 a7a8 e4d4 a8d8 d4c5 d8d2 e3d2 e1e2 d2e3 e2a2 c5b5 a2a1 b5c4 a1h1 b4b5 h1h2 b5b6 h2h4 c4b5

go wtime 12071 btime 1767 winc 500 binc 500
aryan1508 wrote: Mon Mar 22, 2021 2:05 pm Can you clone the master and create your own build?
Not at the moment. If the above doesn't crash your build let me know and I'll see if I can make some time later.
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:59 pm
aryan1508 wrote: Mon Mar 22, 2021 1:46 pm Can you also paste in your `go` command? I haven't seen any crash in 1000+ games so im really confused
Sadly, I don't have a 'go' command to share with you. I just tell CuteChess to play 200 games with this command:

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
And then it starts four threads ("-concurrency 4") and does it's thing and only logs the resulting PGNs in a log file. And I posted the PGN that resulted in BitGenies disconnect. It contains the move sequence but not in the format that you need to copy and paste it to create the last "go" command. You need to do it by hand or you can try to load the PGN into a tool that allows you to extract the last position as FEN and feed that to your engine.

Also since I posted it has happened again after 50 games! I'll run another test and try to reproduce it with -debug enabled.
Actually I got the issue. It was a mis-understanding from my side😁.

When I set the movetime I also include the increment, so the movetime would be `give time + increment`. However I found out the increment is already included in the movetime. This is what must be causing the issue!
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:37 pm
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!
I could verify the time losses with 40/5+1 (5 was seconds right)? It seems Aryan has the found the issue with this tc already.

I want to mention that funnily Loki 1.20 has the same problem it seems from my short test for reproducing this error! ;-)

Code: Select all

[Event "Test@CuteCGdv"]
[Site "RWBC-CAPPUCCINO Win7U64 Q8200 2.33Ghz + Nvidia GT 710"]
[Date "2021.03.22"]
[Round "1"]
[White "Loki_120-64"]
[Black "Bit-Genie_100-64"]
[Result "0-1"]
[ECO "A06"]
[GameDuration "00:01:17"]
[GameEndTime "2021-03-22T14:04:06.092 Mitteleuropäische Zeit"]
[GameStartTime "2021-03-22T14:02:48.980 Mitteleuropäische Zeit"]
[Opening "Reti"]
[PlyCount "72"]
[Termination "time forfeit"]
[TimeControl "40/5+1"]
[Variation "Nimzovich-Larsen attack"]

1. Nf3 {book} d5 {book} 2. b3 {book} Bg4 {book} 3. d4 {book} Nd7 {book}
4. Bb2 {-0.13/7 1.12s} e6 {+1.13/7 1.11s} 5. e3 {-0.11/7 1.11s}
Qf6 {+0.83/6 1.11s} 6. Be2 {+0.58/6 1.11s} Bd6 {+1.27/6 1.11s}
7. O-O {+0.52/7 1.11s} Bf5 {+1.12/6 1.12s} 8. c4 {+0.84/5 1.12s}
Ne7 {+1.43/6 1.12s} 9. Nc3 {+0.52/6 1.12s} c6 {+1.34/6 1.12s}
10. Nd2 {+0.65/6 1.13s} O-O {+1.69/6 1.12s} 11. Rc1 {+0.26/7 1.13s}
g5 {+1.88/6 1.12s} 12. e4 {+0.98/8 1.12s} Bg6 {+1.36/6 1.12s}
13. e5 {+0.99/7 1.12s} Nxe5 {+0.88/6 1.13s} 14. dxe5 {+0.93/8 1.13s}
Bxe5 {+0.80/6 1.13s} 15. Nf3 {+0.93/8 1.13s} d4 {+0.21/6 1.13s}
16. Na4 {+0.72/7 1.14s} Rfd8 {+0.28/6 1.13s} 17. Nc5 {+0.67/7 1.13s}
b6 {-0.10/6 1.14s} 18. Nd3 {+0.80/8 1.14s} Bc7 {-0.01/7 1.14s}
19. Nxd4 {+0.77/8 1.14s} Rxd4 {+0.15/6 1.14s} 20. Bxd4 {+0.65/8 1.14s}
Qxd4 {+0.31/7 1.14s} 21. c5 {+0.43/7 1.15s} Rd8 {+0.36/6 1.14s}
22. Rc4 {+0.25/7 1.14s} Qd5 {+0.08/6 1.15s} 23. Rc3 {+0.18/7 1.15s}
Be4 {+0.58/6 1.15s} 24. g4 {+0.62/6 1.15s} Bh1 {+2.57/6 1.15s}
25. f3 {-1.46/8 1.15s} Qd4+ {+1.80/7 1.15s} 26. Kxh1 {-1.55/8 1.15s}
Qxc3 {+1.62/6 1.16s} 27. b4 {-1.55/7 1.17s} Rd5 {+2.59/6 1.16s}
28. Kg2 {-1.46/7 1.17s} Ng6 {+2.88/6 1.17s} 29. cxb6 {-2.39/8 1.17s}
Bxb6 {+3.43/6 1.17s} 30. Qc1 {-2.60/7 1.18s} Rxd3 {+3.53/7 1.18s}
31. Bxd3 {-3.18/9 1.17s} Qxd3 {+3.66/7 1.18s} 32. Qd1 {-3.92/7 1.18s}
Qc4 {+3.70/7 1.18s} 33. a3 {-4.23/8 1.18s} Nf4+ {+5.59/7 1.19s}
34. Kh1 {-5.75/9 1.20s} Qa2 {+4.84/7 1.20s} 35. Rg1 {-5.75/8 1.21s}
Qxa3 {+5.68/7 1.21s} 36. Re1 {-6.31/8 1.22s}
Qb2 {+5.68/7 1.22s, White loses on time} 0-1

[Event "Test@CuteCGdv"]
[Site "RWBC-CAPPUCCINO Win7U64 Q8200 2.33Ghz + Nvidia GT 710"]
[Date "2021.03.22"]
[Round "1"]
[White "Bit-Genie_100-64"]
[Black "Loki_120-64"]
[Result "0-1"]
[ECO "A06"]
[GameDuration "00:01:17"]
[GameEndTime "2021-03-22T14:05:24.345 Mitteleuropäische Zeit"]
[GameStartTime "2021-03-22T14:04:07.102 Mitteleuropäische Zeit"]
[Opening "Reti"]
[PlyCount "72"]
[Termination "time forfeit"]
[TimeControl "40/5+1"]
[Variation "Nimzovich-Larsen attack"]

1. Nf3 {book} d5 {book} 2. b3 {book} Bg4 {book} 3. d4 {book} Nd7 {book}
4. Nc3 {+0.07/7 1.11s} e6 {+0.04/7 1.12s} 5. Qd3 {-0.51/6 1.11s}
Ngf6 {+0.44/7 1.11s} 6. e4 {-0.30/6 1.11s} Bb4 {+0.78/7 1.11s}
7. Bd2 {-0.32/6 1.12s} Bxc3 {+1.70/8 1.12s} 8. Qxc3 {-0.92/7 1.12s}
Nxe4 {+1.68/7 1.12s} 9. Qe3 {-1.19/6 1.14s} O-O {+1.66/6 1.13s}
10. Qf4 {-1.12/6 1.12s} Bxf3 {+1.85/8 1.11s} 11. gxf3 {-0.92/7 1.12s}
Nxd2 {+2.73/8 1.12s} 12. Kxd2 {-1.02/7 1.12s} c5 {+2.58/7 1.12s}
13. dxc5 {-1.09/7 1.13s} Nxc5 {+2.48/7 1.12s} 14. Rg1 {-1.09/6 1.13s}
Qe7 {+2.61/5 1.13s} 15. Re1 {-0.67/6 1.13s} Rad8 {+2.46/5 1.13s}
16. b4 {-0.46/6 1.13s} Nd7 {+2.79/6 1.13s} 17. Bd3 {-0.62/6 1.13s}
e5 {+2.94/6 1.13s} 18. a3 {-0.73/6 1.14s} a5 {+2.70/7 1.13s}
19. Bf5 {-0.62/6 1.14s} axb4 {+2.87/7 1.14s} 20. Bxd7 {-0.56/6 1.14s}
exf4 {+3.04/8 1.15s} 21. Rxe7 {+0.51/8 1.14s} bxa3 {+2.87/8 1.15s}
22. Ba4 {+0.66/7 1.15s} Ra8 {+2.81/7 1.15s} 23. Bb3 {+0.34/7 1.15s}
b6 {+2.57/7 1.15s} 24. Bxd5 {+0.50/7 1.15s} Rad8 {+2.46/8 1.15s}
25. c4 {+1.80/8 1.16s} b5 {+1.69/8 1.15s} 26. Kc3 {+1.83/7 1.16s}
bxc4 {+1.45/8 1.16s} 27. Bxc4 {+1.84/7 1.16s} Ra8 {+1.47/7 1.16s}
28. Ra1 {+1.68/7 1.17s} h6 {+1.13/7 1.17s} 29. Rb7 {+2.08/7 1.17s}
Ra4 {+0.37/8 1.17s} 30. Kb3 {+2.01/7 1.17s} Rfa8 {-0.17/9 1.17s}
31. Ra2 {+2.26/7 1.18s} Kh7 {-0.63/8 1.18s} 32. Rxf7 {+2.46/8 1.18s}
h5 {-0.79/8 1.19s} 33. Bb5 {+3.05/8 1.19s} R4a5 {-0.71/8 1.19s}
34. Kb4 {+3.24/8 1.20s} Kh6 {-0.88/8 1.20s} 35. Rxf4 {+3.54/7 1.21s}
Kg5 {-2.05/7 1.21s} 36. Rf7 {+4.25/8 1.22s}
g6 {-2.38/8 1.22s, White loses on time} 0-1
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
lithander
Posts: 925
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 2:18 pm This is what must be causing the issue!
Well, it explains the TC issue but not the crash!

Code: Select all

uci
position startpos moves e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c7c6 g1f3 d8a5 e1g1 c8e6 c4b3 b8d7 f3d4 d5c3 d2c3 e6b3 c2b3 e7e5 d4f5 g7g6 f5d6 f8d6 d1d6 a5c5 d6d2 f7f5 d2h6 f5f4 c1d2 e8c8 a1d1 d7f6 h6h3 c8c7 b3b4 c5e7 f1e1 d8d7 e1e2 h8d8 h3h4 f6d5 h4h6 f4f3 g2f3 d5f4 d2f4 d7d1 g1g2 e7f7 e2e5 c7c8 e5c5 d8f8 h6h3 f7d7 h3h6 f8e8 f4e3 b7b6 c5c4 d7d5 b2b3 e8e7 h6f8 c8d7 f8b8 b6b5 c4c5 d5d6 b8a7 d7e6 a7a8 e6f7 a8c6 d6c6 c5c6 d1a1 c6a6 a1b1 g2g3 e7e6 a6a7 e6e7 a7a5 b1g1 g3f4 e7b7 a5a8 f7e6 a8e8 e6f7 e8h8 f7f6 e3d4 f6e6 h8e8 e6f7 e8h8 f7e6 h8d8 b7f7 f4e4 g1e1 d4e3 f7a7 d8d2 a7a8 e4d4 a8d8 d4c5 d8d2 e3d2 e1e2 d2e3 e2a2 c5b5 a2a1 b5c4 a1h1 b4b5 h1h2 b5b6 h2h4 c4b5
go
Does that not crash BitGenie's release build on anyone else's computer? :roll:
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 2:27 pm
aryan1508 wrote: Mon Mar 22, 2021 2:18 pm This is what must be causing the issue!
Well, it explains the TC issue but not the crash!

Code: Select all

uci
position startpos moves e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c7c6 g1f3 d8a5 e1g1 c8e6 c4b3 b8d7 f3d4 d5c3 d2c3 e6b3 c2b3 e7e5 d4f5 g7g6 f5d6 f8d6 d1d6 a5c5 d6d2 f7f5 d2h6 f5f4 c1d2 e8c8 a1d1 d7f6 h6h3 c8c7 b3b4 c5e7 f1e1 d8d7 e1e2 h8d8 h3h4 f6d5 h4h6 f4f3 g2f3 d5f4 d2f4 d7d1 g1g2 e7f7 e2e5 c7c8 e5c5 d8f8 h6h3 f7d7 h3h6 f8e8 f4e3 b7b6 c5c4 d7d5 b2b3 e8e7 h6f8 c8d7 f8b8 b6b5 c4c5 d5d6 b8a7 d7e6 a7a8 e6f7 a8c6 d6c6 c5c6 d1a1 c6a6 a1b1 g2g3 e7e6 a6a7 e6e7 a7a5 b1g1 g3f4 e7b7 a5a8 f7e6 a8e8 e6f7 e8h8 f7f6 e3d4 f6e6 h8e8 e6f7 e8h8 f7e6 h8d8 b7f7 f4e4 g1e1 d4e3 f7a7 d8d2 a7a8 e4d4 a8d8 d4c5 d8d2 e3d2 e1e2 d2e3 e2a2 c5b5 a2a1 b5c4 a1h1 b4b5 h1h2 b5b6 h2h4 c4b5
go
Does that not crash BitGenie's release build on anyone else's computer? :roll:
No sign here, sorry

Code: Select all

Bit Genie by Aryan Parekh
Hash table initialized with 2 Mb ( 125000 entries )
uci
id name Bit-Genie 1.0.0
id author Aryan Parekh
option name Hash type spin default 2 min 2 max 3000
option name Clear Hash type button
uciok
isready
readyok
position startpos moves e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c7c6 g1f3 d8a5 e1g1 c8e6 c4b3 b8d7 f3d4 d5c3 d2c3 e6b3 c2b3 e7e5 d4f5 g7g6 f5d6 f8d6 d1d6 a5c5 d6d2 f7f5 d2h6 f5f4 c1d2 e8c8 a1d1 d7f6 h6h3 c8c7 b3b4 c5e7 f1e1 d8d7 e1e2 h8d8 h3h4 f6d5 h4h6 f4f3 g2f3 d5f4 d2f4 d7d1 g1g2 e7f7 e2e5 c7c8 e5c5 d
8f8 h6h3 f7d7 h3h6 f8e8 f4e3 b7b6 c5c4 d7d5 b2b3 e8e7 h6f8 c8d7 f8b8 b6b5 c4c5 d5d6 b8a7 d7e6 a7a8 e6f7 a8c6 d6c6 c5c6 d1a1 c6a6 a1b1 g2g3 e7e6 a6a7 e6e7 a7a5 b1g1 g3f4 e7b7 a5a8 f7e6 a8e8 e6f7 e8h8 f7f6 e3d4 f6e6 h8e8 e6f7 e8h8 f7e6 h8d8 b7f7 f4e4 g1e1 d4e3 f7a7 d8d2 a7a8 e4d4 a8d8 d4c5 d8d2 e3d2 e
1e2 d2e3 e2a2 c5b5 a2a1 b5c4 a1h1 b4b5 h1h2 b5b6 h2h4 c4b5
go
info depth 1 seldepth 2 nodes 53 score cp -59 time 0 pv h4h1
info depth 2 seldepth 3 nodes 265 score cp -88 time 10 pv h4h3 f3f4
info depth 3 seldepth 4 nodes 1069 score cp -59 time 20 pv h4h5 b5a4 h5h1
info depth 4 seldepth 6 nodes 1944 score cp -88 time 30 pv h4h5 b5a4 h5h3 f3f4
info depth 5 seldepth 7 nodes 12212 score cp -69 time 44 pv h4h5 b5a4 h5h3 b6b7 h3f3
info depth 6 seldepth 9 nodes 52217 score cp -154 time 70 pv e6d7 b6b7 d7c7 b5a6 h4h1 c3c4
info depth 7 seldepth 9 nodes 173587 score cp -116 time 126 pv h4h5 b5c6 h5a5 b6b7 a5a6 e3b6 a6a2
info depth 8 seldepth 11 nodes 356784 score cp -356 time 249 pv h4h5 b5a6 h5d5 b6b7 d5d6 e3b6 d6b6 a6b6
info depth 9 seldepth 13 nodes 2359826 score cp -337 time 835 pv h4h5 b5a6 h5d5 b6b7 d5d6 e3b6 d6b6 a6b6 h7h5
info depth 10 seldepth 15 nodes 5081059 score cp -527 time 2426 pv h4h5 b5a6 h5d5 b6b7 d5d8 a6a7 h7h5 b7b8q d8b8 a7b8
info depth 11 seldepth 15 nodes 21521776 score cp -518 time 7963 pv h4h5 b5a6 h5d5 b6b7 d5d8 a6a7 h7h5 b7b8q d8b8 a7b8 h5h4
and this from the other post:

Code: Select all

Bit Genie by Aryan Parekh
Hash table initialized with 2 Mb ( 125000 entries )
uci
id name Bit-Genie 1.0.0
id author Aryan Parekh
option name Hash type spin default 2 min 2 max 3000
option name Clear Hash type button
uciok
isready
readyok
position startpos moves e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c7c6 g1f3 d8a5 e1g1 c8e6 c4b3 b8d7 f3d4 d5c3 d2c3 e6b3 c2b3 e7e5 d4f5 g7g6 f5d6 f8d6 d1d6 a5c5 d6d2 f7f5 d2h6 f5f4 c1d2 e8c8 a1d1 d7f6 h6h3 c8c7 b3b4 c5e7 f1e1 d8d7 e1e2 h8d8 h3h4 f6d5 h4h6 f4f3 g2f3 d5f4 d2f4 d7d1 g1g2 e7f7 e2e5 c7c8 e5c5 d
8f8 h6h3 f7d7 h3h6 f8e8 f4e3 b7b6 c5c4 d7d5 b2b3 e8e7 h6f8 c8d7 f8b8 b6b5 c4c5 d5d6 b8a7 d7e6 a7a8 e6f7 a8c6 d6c6 c5c6 d1a1 c6a6 a1b1 g2g3 e7e6 a6a7 e6e7 a7a5 b1g1 g3f4 e7b7 a5a8 f7e6 a8e8 e6f7 e8h8 f7f6 e3d4 f6e6 h8e8 e6f7 e8h8 f7e6 h8d8 b7f7 f4e4 g1e1 d4e3 f7a7 d8d2 a7a8 e4d4 a8d8 d4c5 d8d2 e3d2 e
1e2 d2e3 e2a2 c5b5 a2a1 b5c4 a1h1 b4b5 h1h2 b5b6 h2h4 c4b5

go wtime 12071 btime 1767 winc 500 binc 500
info depth 1 seldepth 2 nodes 53 score cp -59 time 0 pv h4h1
info depth 2 seldepth 3 nodes 265 score cp -88 time 6 pv h4h3 f3f4
info depth 3 seldepth 4 nodes 1069 score cp -59 time 12 pv h4h5 b5a4 h5h1
info depth 4 seldepth 6 nodes 1944 score cp -88 time 18 pv h4h5 b5a4 h5h3 f3f4
info depth 5 seldepth 7 nodes 12212 score cp -69 time 27 pv h4h5 b5a4 h5h3 b6b7 h3f3
info depth 6 seldepth 9 nodes 52217 score cp -154 time 50 pv e6d7 b6b7 d7c7 b5a6 h4h1 c3c4
info depth 7 seldepth 9 nodes 173587 score cp -116 time 100 pv h4h5 b5c6 h5a5 b6b7 a5a6 e3b6 a6a2
info depth 8 seldepth 11 nodes 356784 score cp -356 time 218 pv h4h5 b5a6 h5d5 b6b7 d5d6 e3b6 d6b6 a6b6
bestmove h4h5
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
lithander
Posts: 925
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 »

Code: Select all

PS D:\Projekte\Chess\Other Engines> .\Bit-Genie_100ssse3.exe
Bit Genie by Aryan Parekh
Hash table initialized with 2 Mb ( 125000 entries )
uci
id name Bit-Genie 1.0.0
id author Aryan Parekh
option name Hash type spin default 2 min 2 max 3000
option name Clear Hash type button
uciok
position startpos moves e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c7c6 g1f3 d8a5 e1g1 c8e6 c4b3 b8d7 f3d4 d5c3 d2c3 e6b3 c2b3 e7e5 d4f5 g7g6 f5d6 f8d6 d1d6 a5c5 d6d2 f7f5 d2h6 f5f4 c1d2 e8c8 a1d1 d7f6 h6h3 c8c7 b3b4 c5e7 f1e1 d8d7 e1e2 h8d8 h3h4 f6d5 h4h6 f4f3 g2f3 d5f4 d2f4 d7d1 g1g2 e7f7 e2e5 c7c8 e5c5 d8f8 h6h3 f7d7 h3h6 f8e8 f4e3 b7b6 c5c4 d7d5 b2b3 e8e7 h6f8 c8d7 f8b8 b6b5 c4c5 d5d6 b8a7 d7e6 a7a8 e6f7 a8c6 d6c6 c5c6 d1a1 c6a6 a1b1 g2g3 e7e6 a6a7 e6e7 a7a5 b1g1 g3f4 e7b7 a5a8 f7e6 a8e8 e6f7 e8h8 f7f6 e3d4 f6e6 h8e8 e6f7 e8h8 f7e6 h8d8 b7f7 f4e4 g1e1 d4e3 f7a7 d8d2 a7a8 e4d4 a8d8 d4c5 d8d2 e3d2 e1e2 d2e3 e2a2 c5b5 a2a1 b5c4 a1h1 b4b5 h1h2 b5b6 h2h4 c4b5

go
info depth 1 seldepth 2 nodes 53 score cp -59 time 0 pv h4h1
info depth 2 seldepth 3 nodes 265 score cp -88 time 1 pv h4h3 f3f4
info depth 3 seldepth 4 nodes 1069 score cp -59 time 3 pv h4h5 b5a4 h5h1
info depth 4 seldepth 6 nodes 1944 score cp -88 time 5 pv h4h5 b5a4 h5h3 f3f4
info depth 5 seldepth 7 nodes 12212 score cp -69 time 8 pv h4h5 b5a4 h5h3 b6b7 h3f3
info depth 6 seldepth 9 nodes 52217 score cp -154 time 16 pv e6d7 b6b7 d7c7 b5a6 h4h1 c3c4
info depth 7 seldepth 9 nodes 173587 score cp -116 time 36 pv h4h5 b5c6 h5a5 b6b7 a5a6 e3b6 a6a2
info depth 8 seldepth 11 nodes 356784 score cp -356 time 84 pv h4h5 b5a6 h5d5 b6b7 d5d6 e3b6 d6b6 a6b6
info depth 9 seldepth 13 nodes 2359826 score cp -337 time 301 pv h4h5 b5a6 h5d5 b6b7 d5d6 e3b6 d6b6 a6b6 h7h5
PS D:\Projekte\Chess\Other Engines>
For me it just quits after depth 9. I use the procompiled release build from github on a Ryzen 3600. Strange.

Edit:

Well I cloned the git, compiled a debug build.

...in position.cpp

Code: Select all

#if defined (_MSC_VER)
inline Square get_lsb(uint64_t b)
{
	assert(b);
	unsigned long idx;
	_BitScanForward64(&idx, b);
	return to_sq(idx);
}
The assert triggers because the expression "pieces.bitboards[King] & friend_bb()" from line 299 evaluates to zero.
The release build will just call _BitScanForward64 and pass the uninitialized variable index on to to_sq(idx). Famous C++ undefined behavior. This is why I don't personally like using C++ btw! :P

Code: Select all

 	Bit-Genie.exe!get_lsb(unsigned __int64 b) Zeile 44	C++
	Bit-Genie.exe!Position::move_is_legal(Move move) Zeile 299	C++
 	Bit-Genie.exe!`MovePicker::next'::`2'::<lambda_1>::operator()(Move m) Zeile 128	C++
 	Bit-Genie.exe!MovePicker::next(Move & move) Zeile 136	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 139	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 150	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 150	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!`anonymous namespace'::pvs(Position & position, Search & search, TTable & tt, int depth, int alpha, int beta) Zeile 147	C++
 	Bit-Genie.exe!search_position(Position & position, Search & search, TTable & tt) Zeile 296	C++
 	Bit-Genie.exe!uci_input_loop(int argc, char * * argv) Zeile 129	C++
 	Bit-Genie.exe!main(int argc, char * * argv) Zeile 27	C++
 	[Externer Code]	
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess