Skip to content

Dolphin 2.3

Choose a tag to compare

@aiagentvn aiagentvn released this 27 Oct 14:15

Dolphin 2.3 is a search update. The network is the same as in 2.2. Against 2.2.1 it scored +62.5 ± 19.1 Elo at 10+0.1 (500 games, see Testing).

What's new

Five changes to the search. Each was kept only after a self-play SPRT test at a fixed 40,000 nodes per move:

  • Correction history from five sources. The static evaluation is corrected by what earlier searches found in similar positions. The positions are grouped by pawn structure, by each side's other pieces, and by the last two pairs of moves. +14.3 ± 11.2 Elo against 2.2.1.
  • No reverse futility pruning at PV-like nodes (TT-PV nodes), or when the transposition-table move is a quiet move. +12.0 ± 10.8 Elo against 2.2.1.
  • Material-scaled evaluation. The evaluation shrinks as material comes off the board, because the same advantage is harder to convert with fewer pieces. +51.1 ± 18.1 Elo on top of the correction history.
  • Fail-high scores pulled toward beta at non-PV nodes, more strongly at low depth. +29.8 ± 13.4 Elo on top of the correction history.
  • Penalty for the opponent's previous move when it is refuted at once (by the first or second move tried, or by a transposition-table cutoff). +11.3 ± 10.9 Elo on top of the other four changes.

About fifteen further ideas were tested and rejected because they did not gain.

Other changes:

  • Engine name now reports Dolphin 2.3 NNUE.
  • bench node count changed to 1717319 (search changes only, the network is unchanged).
  • tools/match.py now adjudicates a win only when both engines agree.

Download

File Use it if
Dolphin-2.3.0-windows-x64.zip Recommended. Self-contained: includes its own .NET runtime, nothing to install. Keep all five files of the folder together.
Dolphin-2.3.0-windows-x64-requires-dotnet.zip You already have the .NET Runtime 5.0 or newer and want the small package. Keep the four files Dolphin2.exe, Dolphin2.dll, Dolphin2.deps.json, Dolphin2.runtimeconfig.json together.

Unzip and load Dolphin2.exe into your GUI as a UCI engine. The network is embedded in the program.

Testing

All games with cutechess-cli 1.5.1 on an i7-11800H, openings from tools/openings8.epd. The opponent is the Dolphin 2.2.1 release package.

Time control Settings Games Result (W-L-D) Elo vs 2.2.1
10+0.1 1 thread, 64 MB 500 145 - 56 - 299 +62.5 ± 19.1
40 moves / 30 s 1 thread, 64 MB 100 22 - 13 - 65 +31.4 ± 40.3
5+0.05, engine restarted every game 1 thread, 64 MB 100 31 - 19 - 50 +41.9 ± 48.4
10+0.1 4 threads, 1 GB (both engines) 20 2 - 3 - 15 too few games
5+0.05, engine restarted every game self-contained 2.3 build vs framework-dependent 2.3 build 100 24 - 23 - 53 (same engine)

820 games in total: no time losses, no crashes, no illegal moves. Earlier, a build with the first four changes scored +44.4 ± 16.6 against 2.2.1 at 10+0.1 (630 games, tools/match.py).

Verify

  • Dolphin2.exe perft 5 must print Nodes searched: 4865609
  • Dolphin2.exe bench must print Nodes searched : 1717319
  • SHA-256:
    • Dolphin-2.3.0-windows-x64.zip: 897F622135DF90D22C8FB425DBA59A9283E2468DCFB956CEF082677657603798
    • Dolphin-2.3.0-windows-x64-requires-dotnet.zip: A14EDC5CD60BB33CDF8BFC1249CF65129EE426FC0D06B521EBC767BD6EEF0971

Build from source

git clone https://github.com/aiagentvn/dolphin.git
cd dolphin
dotnet build -c Release

The binaries in this release were built from the source at this tag.