jhonnold / berserk

UCI Chess Engine written in C
GNU General Public License v3.0
198 stars 30 forks source link

12 bit eval range with 20 bit move #514

Closed jhonnold closed 9 months ago

jhonnold commented 9 months ago

Bench: 3680773

This patch does three things:

Combining these three patches, I'm able to store the move and static eval in the TT in a singular int32_t, allowing a 10 byte TT entry. This can be used with a 2 byte padding with 3 entries to create a 32 byte bucket, increasing the # of TT entries by 50%.

High Hash Pressure Tests

ELO | 4.88 +- 3.30 (95%) SPRT | 6.0+0.06s Threads=1 Hash=2MB LLR | 2.95 (-2.94, 2.94) [0.00, 3.00] GAMES | N: 20928 W: 5314 L: 5020 D: 10594 http://chess.grantnet.us/test/33940/

ELO | 6.47 +- 3.88 (95%) SPRT | 30.0+0.30s Threads=1 Hash=8MB LLR | 2.97 (-2.94, 2.94) [0.00, 3.00] GAMES | N: 14552 W: 3580 L: 3309 D: 7663 http://chess.grantnet.us/test/33943/

ELO | 10.21 +- 5.11 (95%) SPRT | 4.0+0.04s Threads=8 Hash=8MB LLR | 2.96 (-2.94, 2.94) [0.00, 3.00] GAMES | N: 8650 W: 2241 L: 1987 D: 4422 http://chess.grantnet.us/test/33945/

No-Adjudication Verification

Elo | 1.66 +- 2.82 (95%) SPRT | 8.0+0.08s Threads=1 Hash=8MB LLR | 2.94 (-2.25, 2.89) [-2.50, 0.50] Games | N: 27912 W: 6751 L: 6618 D: 14543 Penta | [106, 3140, 7336, 3263, 111]