Rating CEDR=3544
v.12.0.0:
Long time no see! 159 days, to be exact. Viridithas 12.0.0 comes with a whole host of improvements, mainly concentrated on performance optimisations.
Upgrades, in chronological order:
LMR for winning captures (2.81 +- 2.22) (#86)
Modify LMR re-search depth using value (5.93 +- 3.74) (#88)
Introduce cut-nodes, use them for LMR (2.20 +- 1.79) (#90)
Use cut-nodes for TT-reductions (2.97 +- 2.31) (#91)
Reduce only quiets by the !PV condition (4.17 +- 2.96) (#92)
Boost history updates when static eval is low (2.97 +- 2.33) (#93)
New neural network, id artemis (4.27 +- 3.04) (#96)
Return the mean of the static evaluation and beta when RFP succeeds (2.13 +- 1.73) (#102)
SPSA tune at 20s+0.2s (2.97 +- 2.32) (#103)
Optimise SIMD forward pass (16.76 +- 6.68) (#105)
Calculate accumulators more quickly by fusing updates (8.88 +- 7.06) (#106)
New neural network with four king buckets, id signalis (5.47 +- 3.57) (#108)
Further NN optimisations (4.1 +- 4.3) (#114)
Significant performance optimisations (#116, #117, #118, #119, #120, #121)
Lazy NNUE updates (#122)
More accurate NNUE evaluation (9.06 +- 5.33) (#128)
Increase maximum double-extension count from 6 to 12 (2.78 +- 2.69) (#130)
Elo comparison against v11.0.0
STC:
Elo | 98.68 +- 9.20 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 3004 W: 1224 L: 393 D: 1387
Penta | [3, 126, 546, 691, 136]
https://chess.swehosting.se/test/5642/
LTC:
Elo | 63.71 +- 8.84 (95%)
Conf | 60.0+0.60s Threads=1 Hash=128MB
Games | N: 3000 W: 1026 L: 482 D: 1492
Penta | [0, 145, 695, 631, 29]
https://chess.swehosting.se/test/5643/
(D)FRC:
Elo | 69.95 +- 7.83 (95%)
Conf | 40.0+0.40s Threads=1 Hash=16MB
Games | N: 3000 W: 902 L: 306 D: 1792
Penta | [3, 143, 701, 561, 92]
https://chess.swehosting.se/test/5652/
Version 11 of Viridithas had an inbuilt EPD test runner. This has now been split out into the uci-suite program, which works with any UCI engine.
Thanks as always to everyone who helps me out with viri's development, especially everyone on https://chess.swehosting.se, you're a great bunch.
Binaries are separated by the microarchitecture levels. Most people should use v3!
v1 is supported on all x86-64 CPUs.
v2 has POPCNT, SSE3, etc.
v3 has AVX2, BMI, LZCNT, etc.
I'm currently not providing v4 (AVX512) binaries, as I haven't written AVX512 SIMD, and rustc doesn't generate it (as of Rust 1.76).

Comments
Post a Comment