3750931251377831dbab77b157ad3094d2176973
Implements three high-impact improvements from NCS-43: 1. Incremental L1 accumulator — L1 pre-activations are maintained per-ply on a stack and updated by column-add/subtract when pieces move, reducing L1 cost from O(768×1536) to O(pieces×1536) for root init and O(changed_pieces×1536) per node. Column-major weight transposition (l1WeightsT) makes each update sequential in memory. 2. Eval cache — a 256 K direct-mapped cache keyed by Zobrist hash skips the L2-L5 forward pass for positions seen during quiescence, where the same position often recurs across capture sequences. 3. Dynamic time allocation — NNUEBot now grants 1 500 ms in complex positions (> 30 legal moves) and 500 ms in nearly-terminal ones (< 5 moves), instead of a fixed 1 000 ms budget. Accumulator hooks (initAccumulator, pushAccumulator, copyAccumulator, evaluateAccumulator) are added to the Evaluation trait with no-op defaults, so ClassicalBot and HybridBot are unaffected. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
Scala
80.3%
Python
14.6%
Bru
3.5%
HTML
1%
Shell
0.2%
Other
0.2%