Skip to content

Releases: jhonnold/berserk

Berserk 13

31 Mar 05:10
Compare
Choose a tag to compare

Details

Berserk 13 is officially available!

LTC vs Berserk 12

Elo   | 52.78 +- 3.25 (95%)
Conf  | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 20034 W: 6114 L: 3094 D: 10826
Penta | [12, 1122, 4775, 4050, 58]
http://chess.grantnet.us/test/36089/

Thanks

Berserk wouldn't be possible without Andrew Grant (Ethereal + Torch), Finn Eggers (Koivisto + Torch), and Kim KΓ₯hre (Koivisto + Torch). They are excellent developers with an immeasurable amount of knowledge - it is a pleasure to discuss CC concepts with them and have the opportunity to work alongside them on the Torch Chess Engine.

Choosing a binary

Binaries currently require popcnt. Each binary is labeled with a standard minimum instruction set requirement. x86-64, sse2, ssse3, avx2 and avx512.

For those labeled with pext, your system requires bmi2 support. For AMD users, if you're using a Zen or Zen 2 processor, you should avoid the pext binaries as they will be slow.

If you're unsure which to use or what your processor supports

  • Download them all
  • Open them and run go depth 24
    • If it crashes, you can't use it.
  • Pick the fastest one

I highly recommend you follow the build guide in the readme to compile your own version. This will generate a native build for your machine and should be optimal as a result.

Contacting

I can be reached in the OpenBench discord if you'd like a custom binary for your system and can't compile it yourself.

Berserk 12.1

12 Nov 14:21
Compare
Choose a tag to compare

Note: You can ignore this release if you don't use Berserk with FRC

Details

This release adds a two bugfixs on top of Berserk 12. One is for FRC gameplay, one is for use with Windows Terminals. It was identified that kings starting on C1 or G1 (324 of 960 positions) would result in Berserk thinking it could mate randomly. Thanks to @hadynthepadawan who spotted this problem in #526 and gave perfect examples. Also, thanks to @SzotsGabor who spotted a weird terminal issue in #518 and suggested a fix.

Elo   | 22.81 +- 3.13 (95%)
Conf  | 10.0+0.10s Threads=1 Hash=8MB
Games | N: 20000 W: 4905 L: 3594 D: 11501
Penta | [143, 1761, 5150, 2534, 412]
http://chess.grantnet.us/test/34383/

Berserk 12

26 Oct 00:24
Compare
Choose a tag to compare

Details

Berserk 12 is officially available!

LTC vs Berserk 11

Elo   | 81.33 +- 4.53 (95%)
Conf  | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 10000 W: 3390 L: 1091 D: 5519
Penta | [7, 367, 2000, 2572, 54]
http://chess.grantnet.us/test/34166/

LTC DFRC vs Berserk 11

Elo   | 63.05 +- 4.15 (95%)
Conf  | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 10000 W: 2796 L: 1001 D: 6203
Penta | [25, 423, 2514, 1808, 230]
http://chess.grantnet.us/test/34167/

Thanks

Berserk wouldn't be possible without Andrew Grant (Ethereal + Torch), Finn Eggers (Koivisto + Torch), and Kim KΓ₯hre (Koivisto + Torch). They are excellent developers with an immeasurable amount of knowledge - it is a pleasure to discuss CC concepts with them and have the opportunity to work alongside them on the Torch Chess Engine.

I would also like to give a shout out to the SweBench developers and their engines. That group is motivated, talented, and frankly hilarious. Great to have them all in CC (you're trapped now) and pushing all engines forward.

Choosing a binary

Binaries currently require popcnt. Each binary is labeled with a standard minimum instruction set requirement. ssse3, avx2 and avx512.

For those labeled with pext, your system requires bmi2 support. For AMD users, if you're using a Zen or Zen 2 processor, you should avoid the pext binaries as they will be slow.

If you're unsure which to use or what your processor supports

  • Download them all
  • Open them and run go depth 24
    • If it crashes, you can't use it.
  • Pick the fastest one

I highly recommend you follow the build guide in the readme to compile your own version. This will generate a native build for your machine and should be optimal as a result.

Contacting

I can be reached in the OpenBench discord if you'd like a custom binary for your system and can't compile it yourself.

Berserk 11.1

21 Feb 03:27
Compare
Choose a tag to compare

Note: TCs with an increment are mostly un-impacted.

This is a bug fix release to resolve a major issue with TM in cyclical and no-increment TCs. Berserk would use all of it's time until playing completely random moves. Apologies for all testers who potentially wasted their time and CPU hours on a buggy Berserk.

ELO   | 22.92 +- 11.14 (95%)
SPRT  | 40/40.0+0.00s Threads=1 Hash=64MB
LLR   | 2.94 (-2.94, 2.94) [-5.00, 0.00]
GAMES | N: 1928 W: 560 L: 433 D: 935

Berserk 11

17 Feb 20:15
Compare
Choose a tag to compare

Elo Diff

LTC with a balanced book

ELO   | 43.92 +- 2.13 (95%)
CONF  | 40.0+0.40s Threads=1 Hash=64MB
GAMES | N: 20000 W: 3306 L: 791 D: 15903

FRC LTC

ELO   | 68.50 +- 2.85 (95%)
CONF  | 40.0+0.40s Threads=1 Hash=64MB
GAMES | N: 20000 W: 5578 L: 1685 D: 12737

What's Changed

New Contributors

Full Changelog: 10...11

Berserk 10

04 Oct 18:43
Compare
Choose a tag to compare

What's Changed

Full Changelog: 9...10

Berserk 9

15 Jun 00:16
Compare
Choose a tag to compare

Details

Another release for Berserk! This patch sees major changes in NNUE and many minor adjustments in search.

This patch introduces a new architecture in Berserk, a horizontally mirrored 8 bucket system. This results in a 6144 -> (512x2) -> 1 final architecture. This network was trained using Koivisto's Trainer using ~8B FENs from Berserk 8.5.1 self play games.

Along the way of working on NNUE, many minor search patches have been added. They were all minor, but lots of small changes add up.

STC on an imbalanced book

ELO   | 82.98 +- 5.14 (95%)
CONF  | 8.0+0.08s Threads=1 Hash=8MB
GAMES | N: 10000 W: 3985 L: 1641 D: 4374

LTC on a balanced book

ELO   | 54.37 +- 2.65 (95%)
CONF  | 40.0+0.40s Threads=1 Hash=64MB
GAMES | N: 17000 W: 3605 L: 966 D: 12429

Self play results vs Berserk 8.5.1, self play results do not reflect exactly when playing vs other engines.

Thanks

I'd like to personally thank two community members during this release. First, Finn Eggers (Koivisto Author), for helping getting Berserk setup on the Koivisto Trainer. His CUDA based trainer improved Berserk network training time from a week to four hours per network. This speedup is a large motivator for me to continue developing Berserk and its networks. Moving forward, I will spend my efforts working on the CudAD trainer alongside Finn to improve it for both Berserk and Koivisto.

I would also like to thank Dariusz DomagaΕ‚a. He has used his personal time to create a wonderful page for the Berserk chess engine, and I recommend you visit this page.

Changes

Search

  • Razoring
  • Static Evaluation values tuned
  • Hash move reduction on potential multicut
  • History indexing improved
    • Threats in main history now utilize entire opponent attack map
    • Continuation history in a single table utilizing color indexing

NNUE

  • New architecture utilizing a horizontally mirrored 8 bucket system
  • 6144 -> (512x2) -> 1
  • Fast refresh logic for ~3.5% speedup

Misc

  • go nodes support added
  • Prevent search from ending early while pondering
  • Low piece endgame specific evals
  • No increment timeouts fixed
  • Removed dynamic contempt
  • Prefetch executed prior to updates for ~6% speedup
  • Search explosions due to double extensions limited

Choosing a binary

Binaries currently require popcnt and sse2.
Binaries with the label avx2 require your processor to support avx2.
Binaries with the label pext require your processor to support bmi2.

If you're unsure which to use or what your processor supports

  • Download them all
  • Open them and run go depth 24
    • If it crashes, you can't use it.
  • Pick the fastest one

I highly recommend you follow the build guide in the readme to compile your own version. This will generate a native build for your machine and should be optimal as a result.

Berserk 8.5.1

03 Jan 23:15
Compare
Choose a tag to compare

Changes

There was a bug in Cyclical Time Controls and Arena analysis, this fixes both.

ELO   | 40.20 +- 13.89 (95%)
SPRT  | 40/40.0+0.00s Threads=1 Hash=64MB
LLR   | 2.97 (-2.94, 2.94) [-1.00, 4.00]
GAMES | N: 1224 W: 380 L: 239 D: 605

Berserk 8.5

30 Dec 16:40
80df1c7
Compare
Choose a tag to compare

I have no changed the network architecture so I'm not ready for a full release, but this is something for testers if they're interested.

It should be noticeably stronger than Berserk 8 already.

Choosing a binary

Binaries currently require popcnt.
Binaries with the label avx2 require your processor to support avx2.
Binaries with the label pext require your processor to support bmi2.

If you're unsure which to use or what your processor supports

  • Download them all
  • Open them and run go depth 24
    • If it crashes, you can't use it.
  • Pick the fastest one

Berserk 8

05 Dec 18:19
Compare
Choose a tag to compare

Details

Another release with an improved NNUE evaluation and small search patches (same as last time).

The newest network was trained using a custom trainer on 1.2B FENs from Berserk 6 self play games. Most of the improvements for this release come from tweaks in the trainer and not a largely improve architecture or better data. I was hoping to improve the architecture for this release, but all attempts at this time have failed (miserably I may add).

Minor search patches are included in this release as well.

STC

ELO   | 68.92 +- 4.47 (95%)
CONF  | 8.0+0.08s Threads=1 Hash=8MB
GAMES | N: 10000 W: 3160 L: 1202 D: 5638

LTC

ELO   | 47.90 +- 3.68 (95%)
CONF  | 40.0+0.40s Threads=1 Hash=64MB
GAMES | N: 10000 W: 2183 L: 813 D: 7004

Self play results vs Berserk 7, this Elo gain may not reflect exactly when playing against other engines

Choosing a binary

Binaries currently require popcnt.
Binaries with the label avx512 require your processor to support avx512.
Removed the 512 binaries due to reported issues
Binaries with the label avx2 require your processor to support avx2.
Binaries with the label pext require your processor to support bmi2.

If you're unsure which to use or what your processor supports

  • Download them all
  • Open them and run go depth 24
    • If it crashes, you can't use it.
  • Pick the fastest one

Changes

  • NN Trainer improvements
    • Tuned hyper parameters
    • Tuned Eval vs WDL weighting from training data
    • L1 Penalty
  • LMR Tweaks
    • Cut Node reduction added to captures/promotions in LMR
    • Simplified out useless reductions
  • RFP Tweaks
    • RFP Margin Adjusted
  • NMP Tweaks
    • Margin adjusted via improving flag
    • Raw null search score returned

Bugs

  • Resolved an issue with Berserk suffered from EG blindness due to NMP

Thanks

  • Connor McMonigle (Seer's Author) for continued guidance and advice on NNs
  • Andrew Grant (Ethereal's Author) for Open Bench. Development of Berserk would not be possible without this resource
  • Noob for his hardware on Open Bench. Tests run quickly and without issue thanks to Noob.
  • Kim KΓ₯hre (Koivisto's Author) for rubber duck debugging and theorizing
  • Ipmanchess for validating my AVX512 binary works