Panda 2.0 what's new?
This is the fourth significant release of Panda (following 1.0, 1.1 and 1.2). Unfortunately, it's likely to be the last release for a while, but it is quite a good one!
The main focus of the release is a significant improvement in Panda's move ordering and selectivity, although I also had the time to train a new network.
Here is a mostly-accurate changelog:
- smaller 50MR-indexed repetition table (+3)
- accumulator stack (+8)
- probcut (+8)
- minor bugfixes (+4)
- skip SEE pruning in good movepicker stages (+3)
- en passant move ordering simplification (+2)
- piece-square as well as square-square history (+12)
- history pruning (+15)
- no static eval in check (+7)
- SPSA of all search parameters #1 (+14)
- singularity triple extension (+8)
- SPSA round 2 (+8)
- SPSA round 3 with added tuneable params (+6)
- minor/major corrhist + gravity formula for corrhist over EMA (+15)
- new net: 512 HL nodes and 8 output buckets (+55)
- SPSA round 4 after adding new net (+11)
- introduce temperature with initial tuned values (+6)
- retune temp parameters (+7)
- remove check extension (+2)
- include SEE-losing captures as killers (+3)
- weighting between pc-sq and sq-sq history (+2)
- greater history bonus when static eval is low (+5)
- static eval in tt (+4)
- return alpha when no moves found in singular search (+8)
- use moves failing low for temp updates (+5)
- better conthist (+10)
- correlation histories (+18)
- greater history bonus for very low static eval (+4)
The elo gains above are all at STC with an unbalanced book (very inflated compared to CCRL conditions). Hopefully it might be interesting to see the relative gains of each change, though.
Even though it only accounts for a small part of the elo gain (regression tests combining all the temperature-related changes suggest it's responsible for about 8-12 elo at STC in Panda), I particularly liked working on Panda's temperature parameter (described here and here).
I also really enjoyed working on improving Panda's move ordering, so I'm very glad that seems to have paid off.
Self-Play Results
Based on my local tests, Panda 2.0 is much stronger than its predecessor:
--------------------------------------------------
Results of Panda vs Panda-1_2 (5+0.05, 1t, 16MB, 8moves_v3.pgn):
Elo: 209.91 +/- 39.77, nElo: 323.28 +/- 48.15
LOS: 100.00 %, DrawRatio: 21.00 %, PairsRatio: 25.33
Games: 200, Wins: 119, Losses: 11, Draws: 70, Points: 154.0 (77.00 %)
Ptnml(0-2): [0, 3, 21, 41, 35], WL/DD Ratio: 0.62
--------------------------------------------------
I'd estimate its strength on the CCRL 40/15 scale to be a bit over 3450.
Overall, I'm very happy with the release and I'm looking forward to seeing it tested.
NOTE: If you downloaded this in the first ~20 mins after release, the engine will accidentally print its name as "Panda 1.2" when responding to the uci command (see the recent commit "oops").

Comments
Post a Comment