Skip to content

Dolphin 2.2

Latest

Choose a tag to compare

@aiagentvn aiagentvn released this 12 Oct 13:43

Dolphin 2.2 is a search-only update: the same network as 2.1, with better move ordering. Self-play gain about +48 Elo at fast time controls.

Download

File Use it if
Dolphin-2.2.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.2.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. Requires Windows on a 64-bit (x64) CPU; CPUs with AVX2 use a faster NNUE path. Each package contains a README.txt with setup and troubleshooting notes.

What's new

Three changes to the search, each kept only after it passed a self-play SPRT test (fixed 40k nodes per move, bounds [0, 5] Elo):

  • History from the evaluation trend. After each move the opponent's previous quiet move is rewarded or penalised by how much it changed the static evaluation in its favour. Self-play: +29 ± 13 Elo.
  • Heavier penalties for refuted moves. Quiet moves and captures that were tried and failed are now penalised more than the winning move is rewarded, and a first-move cutoff at depth 3 or less no longer touches the history tables. Self-play: +25 ± 12 Elo.
  • Transposition-table prefetch after every move: about 2% more nodes per second.

Three other ideas (quiescence-search pruning, deeper/shallower LMR re-search, a stricter TT cutoff) were tested and rejected because they did not gain.

The combined build scored +48.5 ± 17.1 Elo against Dolphin 2.1 at 8+0.08 (519 games, 1 thread, no time losses).

  • Engine name now reports Dolphin 2.2 NNUE.
  • bench node count changed to 1627584 (search changes; the network is unchanged).

Testing

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

Time control Settings Games Result (W-L-D) Elo vs 2.1
10+0.1 1 thread, 64 MB 500 160 - 62 - 278 +69.0 ± 20.2
40 moves / 30 s 1 thread, 64 MB 100 19 - 15 - 66 +13.9 ± 39.8
10+0.1 4 threads, 1 GB (both engines) 20 6 - 2 - 12 too few games
5+0.05, engine restarted every game 1 thread, 64 MB 100 42 - 11 - 47 +111.4 ± 50.0
5+0.05, engine restarted every game (final packages) both 2.2 packages against each other 100 28 - 22 - 50 (same engine)
40 moves / 30 s (final packages) self-contained 2.2 package, 1 thread, 64 MB 100 22 - 15 - 63 +24.4 ± 41.5

920 games in total: no time losses, no crashes, no illegal moves. The rows without a note were played with the release build of the 2.2 source; the packages are built from the same source (same bench node count, verified after unzipping).

Verify

  • Dolphin2.exe perft 5 must print Nodes searched: 4865609
  • Dolphin2.exe bench must print Nodes searched : 1627584
  • SHA-256:
    • Dolphin-2.2.0-windows-x64.zip: F8B3802BE1998D91031C7FD02F8F2A2DF80E98253C05BB46CFAD9FDB75A90371
    • Dolphin-2.2.0-windows-x64-requires-dotnet.zip: C90B90A768BBD99F5AE401096C3C75E1AF741E421622D60A3B10A1BB67CFBAB4

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.