Grail 1.1.0 what's new?
The biggest update to Grail so far!
New features, a reworked search, and a new NNUE for a roughly +270 Elo gain over 1.0.4.
New Features
Lazy SMP Threading
Grail now supports multi-threaded search via the Threads UCI option. Helper threads search at varied depths and pre-populate their results in the transposition table and correction history, seeding the main thread with data on positions it hasn't reached yet.
Multi-PV Search
New MultiPV UCI option for analyzing multiple principal variations. Useful for analysis and opening exploration where you want to see more than the top choice.
Search Improvements
- Singular extensions with multi-cut pruning for uniquely strong moves.
- Correction history tables for static eval adjustment.
- Score-based aspiration window scaling.
- Anti-reductions for tactical moves replace the old zero-reduction bypass.
- SEE pruning extended to quiet moves.
- Removed null move verification search.
- Triangular PV table.
- Unified transposition table.
- Fractional reductions.
Move Ordering Improvements
- Threat-based bonuses in move ordering.
- MVV-LVA with proper LVA tiebreaking.
- Quiet check bonus gated behind SEE to filter out junk checks.
- Capture history updated from quiescence search.
- New bad quiets move ordering bucket.
- Removed killer moves.
New NNUE
New February 2026 net trained on 500M self-play positions. The training pipeline now blends eval and game outcome targets in WDL space, and uses multi-PV sampling to produce more varied training data.
Bug Fixes
- Fixed aspiration window overflow bug for mate scores.
- Fixed that the timer could fire during a subsequent search, causing
0000output. - Pawn attack maps now include all controlled squares.
- Removed buggy piece repetition penalty.
More technical details in #179.
Elo Improvement over 1.0.4 (1 thread)
STC (10+0.1): +272.51 ± 6.69 Elo (10k games)
LTC (60+0.6): +271.99 ± 11.29 Elo (3k games)
VLTC (180+1.8): +257.02 ± 17.40 Elo (1k games)

Comments
Post a Comment