Skip to content

Dolphin 2.6

Choose a tag to compare

@aiagentvn aiagentvn released this 05 Nov 11:12

Dolphin 2.6 comes with a new network (net7). The search and the Syzygy support are the same as in 2.5.

What's new

  • New network. It was trained on about 91 million positions from seven generations of Dolphin's own self-play games (2.5 used 54 million). The seventh generation (36.7 million positions) was played with Dolphin 2.5. Part of it used the data generation options added after 2.5: a soft limit of 2,500 nodes per move, a balance check of every starting position, more natural random openings (weighted=1), and a second set of starting positions taken from Dolphin's own games on the CCRL rating lists (book2). The network size is still 384. Every training position was played and scored by Dolphin itself; no data or networks from other engines were used.
    • Against the previous network, in the same engine: +25.2 ± 12.4 Elo at 20,000 nodes per move (1795 games, SPRT stopped) and +30.2 ± 13.6 Elo at 10+0.1 (981 games, SPRT stopped).
  • Engine name now reports Dolphin 2.6 NNUE. bench node count changed to 1856356 (new network).

Download

File Use it if
Dolphin-2.6.0-windows-x64.zip Recommended. Self-contained: includes its own .NET runtime, nothing to install. Keep all files of the folder together.
Dolphin-2.6.0-windows-x64-requires-dotnet.zip You already have the .NET Runtime 5.0 or newer. Keep Dolphin2.exe, Dolphin2.dll, Dolphin2.deps.json, Dolphin2.runtimeconfig.json (and fathom.dll for tablebases) together.

Unzip and load Dolphin2.exe into your GUI as a UCI engine. The network is embedded in the program. For Syzygy tablebases set SyzygyPath (see the README).

Testing

All games with cutechess-cli 1.5.1 on an i7-11800H, openings from tools/openings8.epd, against the Dolphin 2.5 release package. Both engines used Syzygy 3-4-5 piece tablebases.

Time control Settings Games Result (W-L-D) Elo vs 2.5
10+0.1 1 thread, 64 MB 500 130 - 89 - 281 +28.6 ± 20.1
5+0.05, engine restarted every game 1 thread, 64 MB 100 32 - 24 - 44 +27.9 ± 51.3 (3 time losses, see below)
5+0.05, engine restarted every game (repeat) 1 thread, 64 MB 100 33 - 22 - 45 +38.4 ± 50.9
5+0.05, engine restarted every game (second repeat) 1 thread, 64 MB 200 63 - 44 - 93 +33.1 ± 35.3
10+0.1, one game at a time 4 threads, 1 GB (both engines) 20 6 - 5 - 9 too few games
5+0.05, engine restarted every game self-contained 2.6 vs framework-dependent 2.6 100 20 - 27 - 53 (same engine)

1020 games in total: no crashes and no illegal moves. Dolphin 2.6 lost 3 games on time, all in the first 5+0.05 restart run (games 51, 52 and 54 of 100, which finished close together), each with less than 0.2 s left on the clock. The two repeats of that run (300 games), the self-contained check at the same time control and all 500 games at 10+0.1 had no time losses. The time management code is the same as in 2.5. These are self-play results, so the gain against other engines will most likely be smaller.

Verify

  • Dolphin2.exe perft 5 must print Nodes searched: 4865609
  • Dolphin2.exe bench must print Nodes searched : 1856356
  • SHA-256:
    • Dolphin-2.6.0-windows-x64.zip: B04DDF77B63897F6590973BE88166FDE31A849F59AE2FD812CCA0DAD6606255C
    • Dolphin-2.6.0-windows-x64-requires-dotnet.zip: 9929A167509649F3E66D076813203C9D28F2EC21B77DE53AF220AD9A84AF3E31

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.