PZChessBot v7.1 is here, featuring new tuned parameters as well as a number of technical features.
Major changes include:
- Several performance optimizations
- Bug fixes
- Syzygy DTZ tablebase probing
- ARM support
- Many new iterations of networks
The NNUE is provided for those who wish to compile, but you do not need to download it to run PZChessBot.
Estimated Rating: 3715 CCRL Blitz | 3580 CCRL 40/15.
This release of PZChessBot contains many more binaries than previous releases, so here is a guide on choosing the best binary for your system:
- If your system supports AVX-512, use the AVX-512 binary.
- If your CPU is on the Zen 2 architecture, use the nopext binary.
- If your CPU is ARM, use the NEON binary.
- Otherwise, use the AVX2-pext binary.
Tests
main vs v7.0 STC UHO
Elo | 29.37 +- 7.12 (95%)
Conf | 8.0+0.08s Threads=1 Hash=32MB
Games | N: 3012 W: 933 L: 679 D: 1400
Penta | [18, 277, 694, 467, 50]
https://ob.int0x80.ca/test/948/
main vs v7.0 LTC UHO
Elo | 26.73 +- 6.47 (95%)
Conf | 40.0+0.40s Threads=1 Hash=128MB
Games | N: 3008 W: 865 L: 634 D: 1509
Penta | [4, 277, 722, 486, 15]
https://ob.int0x80.ca/test/951/
main vs v7.0 LTC SMP UHO
Elo | 32.58 +- 7.63 (95%)
Conf | 40.0+0.40s Threads=4 Hash=1024MB
Games | N: 2000 W: 588 L: 401 D: 1011
Penta | [0, 163, 493, 338, 6]
https://ob.int0x80.ca/test/952/
main vs Raphael 4.1.0 LTC UHO
Elo | -9.15 +- 6.47 (95%)
Conf | 40.0+0.40s Threads=1 Hash=128MB
Games | N: 3002 W: 690 L: 769 D: 1543
Penta | [7, 422, 719, 349, 4]
https://ob.int0x80.ca/test/950/
What's Changed
- Fix issue in AVX512 reduce_add by @kevlu8 in #308
- Change all node counters to use relaxed loading by @kevlu8 in #309
- Make each node counter aligned to its own lane by @kevlu8 in #310
- Fix some instances of possible TT writes after search stops by @kevlu8 in #311
- Remove shared corrhist by @kevlu8 in #312
- Check for time limit more often by @kevlu8 in #313
- Fix an edge case with insufficient material detection by @kevlu8 in #314
- Fix castling SEE by @kevlu8 in #315
- Properly fix castling SEE by @kevlu8 in #316
- Lower min SE depth except in ttpv nodes by @kevlu8 in #317
- Do less LMR in high corrplexity positions by @kevlu8 in #318
- Add Syzygy DTZ probing at root by @kevlu8 in #320
- Fix and re-add NUMA first touch by @kevlu8 in #322
- Add 1280HL network by @kevlu8 in #323
- Add MADV_HUGEPAGE by @wdotmathree in #324
- Add PZNet48 by @kevlu8 in #325
- Add draw detection to qsearch by @kevlu8 in #326
- Add PZNet49 by @kevlu8 in #329
- Change to 10 input buckets by @kevlu8 in #331
- Add magic bitboards by @wdotmathree in #332
- Add ARM support by @wdotmathree in #333
- Fix castling by @wdotmathree in #334
- Fix an issue in DFRC fen loading by @kevlu8 in #335
- Add post-lmr conthist updates by @kevlu8 in #336
- Only do NMP in expected cutnodes by @kevlu8 in #337
- Change
ti.linetoti.ssby @wdotmathree in #338 - Remove line bounds checks by @wdotmathree in #339
- Add debug bench check for CI by @kevlu8 in #340
- Make the PV flag a template instead of a parameter by @kevlu8 in #342
- Update network to PZNet53 by @kevlu8 in #341
- Add SPSA values after 40k games by @kevlu8 in #344
- Do not do base LMR on i==1 by @kevlu8 in #345
- Do less triext if the move is a capture by @kevlu8 in #346
- Remove complexity TM by @kevlu8 in #347
- Pin to NUMA nodes by @kevlu8 in #348
- Add SPSA values after 30k games by @wdotmathree in #349
- Cleanup and fix Windows build by @wdotmathree in #343
Full Changelog: v7.0...v7.1