Coda 0.9.5 - new version chess engine
Coda is a rewrite of GoChess in Rust, 100% vibe-coded with Claude Code. The initial implememntation - board representation, search, NNUE evaluation, SIMD, and UCI protocol — was written from scratch in a single session - building on top of the work done in gochess.
Author: Adam Twiss Rating Chess Engines Diary CEDR=3862
Coda what's new?
Network Improvements
Added Pawn features to the NNUE model - an idea first implemented in Pawnocchio, and since now widely implemented and proven in many other engines.
A new linear readout from the first hidden layer keeps the evaluation monotonic in material in decided positions; previously, saturated hidden layers left the net indifferent to winning or losing further material.
Added extra fine-tuning steps to the training recipe.
NPS Performance Improvements
Added SIMD kernel for Dual activation in L1.
Replaced various pieces of code with alternate branchless implementations
Lazy evaluation of various threat deltas and pins to avoid wasted compute.
Multiple Coda processes on one machine now share the NNUE weights in memory instead of loading a copy each.
ARM NEON performance work: TT prefetch on aarch64 and restructured NEON threat kernels.
Search Improvements
Share continuation and correction tables between SMP threads rather than thread-local versions.
Search refinements to RFP, LMR, ProbCut, Singular Extensions and Quiescence Search.
Several improvements to how EGTB values are probed and used.
Improvements to how fail-low TT cases are treated in PV and cut nodes.
Made several tunables root depth aware, so parameters that pull in different directions in STC and LTC tunes, can vary according to depth. This has helped boost strength at longer time controls.
Fixed a handful of minor elo-impacting bugs.
Time management: spend less when behind on the clock, more after an unexpected reply, and several ponder fixes.
Chess960 Support
Chess960 / Double Fischer Random support (UCI_Chess960, X-FEN and Shredder-FEN); coda_bot is now one of the top lichess Chess960 bots, and has held the number 1 spot.
Bug Fixes
Fixed a bug with final PV rendering in SMP games; previously final PV was often just 1 move.
Comments
Post a Comment