Skip to content

Releases: aiagentvn/dolphin

Dolphin 2.2

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.

Dolphin 2.1

Choose a tag to compare

@aiagentvn aiagentvn released this 11 Oct 07:48

Dolphin 2.1 brings a stronger self-trained network and a self-contained Windows build that needs no .NET installation.

Download

File Use it if
Dolphin-2.1.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.1.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

  • New network, trained from scratch on about 44 million positions from Dolphin's own self-play games (five generations of data, each played with the best network available at the time). Same architecture as 2.0: 768 → 384×2 (SCReLU) → 8 output buckets.
  • Self-contained Windows package: no .NET installation needed.
  • Engine name now reports Dolphin 2.1 NNUE.
  • Hardening: stricter validation of moves taken from the transposition table, and PV bookkeeping is reset in every quiescence node. Neither changes the search (the bench node count is identical).
  • README: download guide and troubleshooting section.

Testing

All games with cutechess-cli 1.5.1 on an i7-11800H, using the release packages as downloaded, against Dolphin 2.0.0 (except the last row), openings from tools/openings8.epd.

Time control Settings Games Result (W-L-D) Elo vs 2.0
10+0.1 1 thread, 64 MB 1000 352 - 215 - 433 +47.9 ± 16.2
40 moves / 30 s 1 thread, 64 MB 100 36 - 20 - 44 +56.1 ± 51.4
40 moves / 30 s (final packages) 1 thread, 64 MB 200 69 - 25 - 106 +77.7 ± 32.9
2 min + 1 s 1 thread, 128 MB 40 14 - 5 - 21 +79.5 ± 75.1
10+0.1 4 threads, 1 GB (both engines) 20 4 - 5 - 11 too few games
5+0.05, engine restarted every game both 2.1 packages against each other 100 29 - 22 - 49 (same engine)

1460 games in total: no time losses, no crashes, no illegal moves. The rows without a note were played with the release candidate, which differs from the final build only by the two hardening checks above (identical bench node count). In one of those games cutechess reported a single PV line that continued one move past a checkmate (display only, the played moves were legal). Its cause has not been confirmed yet; the PV hardening addresses the most likely path, and the 200 games with the final packages produced no warnings, which is encouraging but not proof. Reports of any remaining PV warnings are welcome.

Verify

  • Dolphin2.exe perft 5 must print Nodes searched: 4865609
  • Dolphin2.exe bench must print Nodes searched : 3292308
  • SHA-256:
    • Dolphin-2.1.0-windows-x64.zip: 494B28BDA2216D0CBBABE06A58C4F8013082A39B01F34D3C40001B18CA7EFE0C
    • Dolphin-2.1.0-windows-x64-requires-dotnet.zip: 59B1A928DF8A9FC33879EE4DA8E2348E27B8C8170A94B53FF6A175D7B159FEAB

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.

Dolphin 2.0

Choose a tag to compare

@aiagentvn aiagentvn released this 11 Oct 00:11

First public release of Dolphin, a UCI chess engine written in C# with an NNUE evaluation trained from scratch on its own self-play games.

Download

Dolphin-2.0.0-windows-x64.zip (below, under Assets). Unzip it anywhere and keep these four files together in one folder:

Dolphin2.exe
Dolphin2.dll
Dolphin2.deps.json
Dolphin2.runtimeconfig.json

The engine does not start if only Dolphin2.exe is copied elsewhere. The neural network is embedded in Dolphin2.dll, so no extra network file is needed.

Requirements: Windows, 64-bit (x64) CPU, and the .NET Runtime 5.0 or newer (6, 7, 8, ... also work). CPUs with AVX2 use a faster NNUE code path.

Use it in a chess GUI

Arena: Engines → Install New Engine... → select Dolphin2.exe → choose UCI.
Cute Chess / BanksiaGUI / others: set the engine command to the full path of Dolphin2.exe, protocol UCI.

If the engine does not move and loses on time, run Dolphin2.exe in a command prompt and type uci. You should see uciok. An error about hostpolicy.dll / runtimeconfig.json means one of the four files is missing. An error that the framework Microsoft.NETCore.App was not found means the .NET Runtime is not installed. The included README.txt has more details.

What's inside

  • Bitboards with magic bitboard attacks, fully legal move generation (perft-verified)
  • Principal Variation Search with iterative deepening, aspiration windows, null-move pruning, LMR, singular extensions, ProbCut, SEE and more
  • Multi-threaded search (Lazy SMP), time management for all common time controls, pondering
  • NNUE evaluation: 768 inputs → 384 hidden neurons per perspective (SCReLU) → 8 output buckets, incrementally updated, AVX2 fast path
  • The bundled network was trained only on positions from Dolphin's own self-play games (about 28 million positions)
  • Built-in datagen and train commands to generate data and train your own network
  • UCI options: Hash, Threads, Move Overhead, Ponder, Clear Hash, UseNNUE, EvalFile

See the README for full documentation.

Verify

  • Dolphin2.exe perft 5 must print Nodes searched: 4865609
  • SHA-256 of Dolphin-2.0.0-windows-x64.zip:
    BECCB1DF98D6A68CFD499BBC0E9EAAAECF598552D29EABE0449C0E67EE066008

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.