Releases: Vast342/Clarity
Clarity V7.2.0
I am back once again!
More crashes were found, many fixes were tried, and this one seems to work! I have played nearly 1000 games without a crash when before, with the same testing configuration, it crashed roughly 1 out of every 40 games. I deem that good enough.
I also have made it accept input during searches, which means that Banksia support is back!
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
Clarity V7.1.0
I am back again!
This time we have a few crashes in multithreading and with small TT that have been around for quite some time, and have now been fixed!
To solve the first issue I have unfortunately had to drop support for Banksia (sorry Lars) as Clarity now no longer accepts inputs during the search, which causes Banksia to freak out and believe the engine has gotten stuck. This is best for now; maybe a 7.2.0 will be out soon to bring it back. (don't get your hopes up though)
No tests here yet but at least 30000 games were made in locating, isolating, and testing fixes for the 2 separate crashing issues.
Main for this version is 2 commits later than GitHub is convinced that it is.
It Crashes Again!!
much anger is being had but I am well underway to finding a solution, I just need to let it run for enough games that I can be mostly statistically certain that it's fixed.
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
Clarity V7.0.0
Back again!
This release is a big one, as it marks the transition of Clarity from using my original data to using data generated by Leela, which with it comes much elo, but little originality. I will still work to find ways to be original, such as making my own trainer and inventing data-sorting methods. I understand that it may make it less eligible for events such as CCC or TCEC, however, due to my minimal hardware and time, I believe this is best since it means that data generation time is no longer the main thing preventing further NNUE developments.
The bulk of changes in this version are network improvements, such as horizontal mirroring, king bucketing, and an increase in size, and since they also have resulted in slowdowns, this version should scale much better than the speedup-heavy changes of V6.0.0
I have had much difficulty locating my multithreading crash, so I am temporarily dropping multithreading support until the issue can be located and solved.
UPDATE: I have already located one bug that caused most of the crashes, however, it seems that something else has broken it again from V5.0.0 until now, so now I am searching through the 55 commits since multithreading was added to figure out what broke it again so that I can fix it. I already know, however, that after I fix this I am going to need to temporarily drop support for Banksia since the main issue lay in the changes that allowed me to support it. The crash is about 1/500 games or so at 5+0.05 and 10 threads vs 10 threads, which takes quite a lot of time for me to run, so this search may take weeks.
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
As usual, tests are done using 8moves_v3, at whatever time control is mentioned.
Elo | 61.18 +- 13.18 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 1004 W: 299 L: 124 D: 581
Penta | [4, 66, 223, 169, 40]
https://vast342.pythonanywhere.com/test/16/
Elo | 94.87 +- 11.97 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 1002 W: 315 L: 48 D: 639
Penta | [0, 25, 228, 204, 44]
https://vast342.pythonanywhere.com/test/17/
Clarity V6.0.0
Woah, it's been a while.
Version 6 is finally out, with the to-do list that just kept on growing. Most changes for this version were speedups, so the elo isn't likely to scale well, however, I also tuned at 60+0.6 so that may counter it, we shall see.
The main features are the massive speedups and partial support for Syzygy Tablebases. I say partial because it doesn't probe them during the search, only at the root node.
Full Changelog: V5.1.0...V6.0.0
As usual, if there are any errors feel free to open an issue, I'll try to fix it as soon as I can.
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
Testing conditions are the following:
Opening book: 8moves_v3.epd
Hash varies by test
Single thread
No syzygy tablebases
Elo | 93.17 +- 9.15 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 2012 W: 646 L: 119 D: 1247
Penta | [3, 67, 434, 404, 98]
This test is still running, I will update it when it finishes.
Elo | 92.36 +- 11.09 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 2002 W: 783 L: 263 D: 956
Penta | [0, 76, 391, 472, 62]
Clarity V5.1.0
I know it hasn't been that long, but Clarity is back once again! This time fixing issue #46, where under occasional and very specific (and impossible to replicate) circumstances, Clarity would play a null move. This has since been fixed 3 separate ways!
This version should be fine now though, 20000 games have been played with the fixes implemented so far and no illegal moves have happened, but if another one does happen feel free to make an issue here on this repo and I'll attempt to fix it as fast as possible.
The cause of this issue has been found, and it was due to negative time being given to the engine by the game manager.
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
Clarity V5.0.0
Clarity is back! and with mild elo gains, but some very nice quality of life improvements!
Here is the total list of features:
- Singular extensions
- Multicut
- Double extensions
- (768->512)x2->1 network (net008)
- Lazy SMP (Multithreading!)
- Negative extensions
- Simplifications & adjustments
- Eval Normalisation (potentially still incorrect?)
An issue has been found that causes occasional null moves to be outputted (a1a1). I am currently attempting to fix this, and a V5.1.0 with a fix will most likely be out soon
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
Test conditions:
Opening book: 8moves_v3.epd
Hash: 32MB
Single thread
No adjudication
No syzygy tablebases
All games run on a Ryzen 5 5600x
Test Results:
8+0.08:
Score of Clarity Current Dev vs Clarity V4.1.0: 728 - 384 - 888 [0.586] 2000
... Clarity Current Dev playing White: 623 - 37 - 340 [0.793] 1000
... Clarity Current Dev playing Black: 105 - 347 - 548 [0.379] 1000
... White vs Black: 970 - 142 - 888 [0.707] 2000
Elo difference: 60.4 +/- 11.4, LOS: 100.0 %, DrawRatio: 44.4 %
60+0.6
Score of Clarity Current Dev vs Clarity V4.1.0: 704 - 319 - 977 [0.596] 2000
... Clarity Current Dev playing White: 642 - 23 - 335 [0.809] 1000
... Clarity Current Dev playing Black: 62 - 296 - 642 [0.383] 1000
... White vs Black: 938 - 85 - 977 [0.713] 2000
Elo difference: 67.7 +/- 10.9, LOS: 100.0 %, DrawRatio: 48.9 %
Clarity V4.1.0
This version is a bug-fix version with a few search improvements that were scheduled for v5 but are now released here. I was working on V5 (mostly planning and just constantly testing new ideas) and I discovered a crash in release V4.0.0 that happened in 1 out of every 40000 games played (at least, at 8+0.08) and now that crash has been fixed.
The new search features are:
- Wider razoring search margins
- staticEval corrections using TT
- Newly tuned search parameters
- The crash fix, which also fixed my capture history.
I do not have any tests for this version, since I am attempting to release it rapidly due to the previous release crashing, but judging by the SPRTs, this version has gained roughly 40 elo at short time controls.
If you are reading this and are a tester for CCRL or otherwise, please skip this version, it's not significant enough. Feel free to reach out if V4.0.0 crashes during testing.
How to choose what binary to use:
Each binary here is separated by the features that your CPU has, v1 has a simple popcnt instruction, but I'm not sure about v2, and v3 is divided into bmi2 and magic bitboard builds (if you have a Ryzen 3000 series CPU, go for the v3_magic), and v4 has everything.
If you are unsure about what features your CPU has, start from v4 and attempt to run it, if it doesn't run, move one lower, and keep doing that until a build runs. If none of them run, open an issue and I'll attempt to help.
Clarity V4.0.0
Clarity is back again with another new version! Improvements this time include Node TM, 2 new networks (newest is a (768->256)x2->1 net using SCReLU trained on 400m positions of self-play data), switching from GCC to Clang (a 3x speed improvement), improving, LMR adjustments based on many things, simplifications, search tuning, razoring, dedicated qsearch history, and potentially more things that I am forgetting about.
I think that the next major version won't be for quite some time, as feature ideas are running low, and the amount of time that it takes for tuning, testing, and data generation is growing exponentially.
Just as before, all of my testing is done with the 8moves_v3.epd opening book, and no syzygy adjudication of any kind.
Testing:
8+0.08
Score of Clarity Current Dev vs Clarity V3.0.0: 1183 - 10 - 207 [0.919] 1400
... Clarity Current Dev playing White: 625 - 3 - 72 [0.944] 700
... Clarity Current Dev playing Black: 558 - 7 - 135 [0.894] 700
... White vs Black: 632 - 561 - 207 [0.525] 1400
Elo difference: 421.8 +/- 23.7, LOS: 100.0 %, DrawRatio: 14.8 %
More soon!
Clarity V3.0.0
I'm back again! This time I have a much larger list of added features, including the big one: NNUE. I would like to give a special thanks to Ciekce for all of his help with NNUE, if it weren't for him this most likely couldn't have happened. The most recent network is a (768->128)x2->1 network trained on positions from self-play games. I have also done many frontend and backend improvements, including new supported commands, board optimizations, and several search features! Those search features are conthist, history malus, a better history formula, static exchange evaluation (and it's many uses), Late Move Pruning, and Futility Pruning.
Clarity offers five binary options based on feature sets. If unsure about your CPU's features, start with v4; if it crashes, try the next version until a stable one is found. Exception: For Zen 2 (Ryzen 3000 series) or earlier AMD CPUs, opt for the v3-Magic build due to performance issues with pext and pdep instructions.
Here are some results from my testing against V2. Each test is run with the opening book 8moves_v3 and a 256MB Hash table per engine.
1'+0.6" Gauntlet
Rank Name Elo +/- Games Score Draw
0 Clarity Current Dev 95 13 2100 63.3% 30.9%
1 Altair 5.0.0 105 28 350 64.7% 42.0%
2 4ku-panic4 -57 29 350 41.9% 36.3%
3 Polaris 1.8.1 -64 30 350 40.9% 33.1%
4 Renegade 0.12.0 -134 32 350 31.6% 28.3%
5 Pedantic 0.5.0 -139 31 350 31.0% 32.9%
6 Sirius 5.0 -376 50 350 10.3% 12.6%
10"+0.1"
Score of Clarity Current Dev vs Clarity V1.0.3: 2166 - 26 - 104 [0.966]
... Clarity Current Dev playing White: 1092 - 11 - 45 [0.971] 1148
... Clarity Current Dev playing Black: 1074 - 15 - 59 [0.961] 1148
... White vs Black: 1107 - 1085 - 104 [0.505] 2296
Elo difference: 581.5 +/- 32.0, LOS: 100.0 %, DrawRatio: 4.5 %
SPRT: llr 0 (0.0%), lbound -inf, ubound inf
2301 of 10000 games finished.
1'+0.6"
Score of Clarity Current Dev vs Clarity V1.0.3: 1331 - 9 - 48 [0.976]
... Clarity Current Dev playing White: 673 - 2 - 19 [0.983] 694
... Clarity Current Dev playing Black: 658 - 7 - 29 [0.969] 694
... White vs Black: 680 - 660 - 48 [0.507] 1388
Elo difference: 645.4 +/- 48.6, LOS: 100.0 %, DrawRatio: 3.5 %
SPRT: llr 0 (0.0%), lbound -inf, ubound inf
1388 of 10000 games finished.
Clarity V2.0.0
It's V2 time!
Here are some test results for how it went:
Score of Clarity V2.0.0 vs Clarity V1.0.0: 170 - 32 - 98 [0.730] 300
... Clarity V2.0.0 playing White: 88 - 18 - 44 [0.733] 150
... Clarity V2.0.0 playing Black: 82 - 14 - 54 [0.727] 150
... White vs Black: 102 - 100 - 98 [0.503] 300
Elo difference: 172.8 +/- 34.0, LOS: 100.0 %, DrawRatio: 32.7 %
This version has a known issue of claiming that it is Clarity V1.0.2, however that is false, and it has been fixed as part of the development of Clarity V3.0.0