Skip to content

Releases: mhonert/velvet-chess

v5.2.1

12 Jun 16:58
Compare
Choose a tag to compare

This is just a small bug-fix release ...

According to my tests, the fix has no or only a minimal Elo impact.
Playing strength should be the same as v5.2.0.

Changes

Notes

Due to the lack of an ARM-based (Apple Silicon) computer, the new "apple-silicon" builds are untested.

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

Starting with Velvet v4.1.0 there are also builds for macOS provided.
Currently there are no specific optimizations for the ARM-based/Apple Silicon builds implemented, so
the macOS builds for x86_64 might be faster.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV
apple-silicon Native builds for Apple Silicon processors (ARM aarch64) Apple M1

v5.2.0

13 May 12:17
Compare
Choose a tag to compare

This releases comes with a new neural network, search improvements and some fixes

Estimated strength increase: ~ 40 Elo standard chess / 60 Elo FRC

Changes

  • New neural network trained from v5.1.0 and v5.2.0dev self-play games
  • Search improvements
  • Fixed fathom compilation issue for no-popcount Windows build
  • Improved tablebase probing
  • Switched transposition table replacement scheme
  • Make tablebase probes resilient to incomplete TB sets

Statistics

Overview of match statistics from two Gauntlets with the same set of opponent engines.

5.2.0

Move range Game % Win % Draw % Loss % Rel. Strength
<= 40 14.0 39.2 59.6 1.2 +88
41..60 43.4 51.8 38.3 9.9 +110
61..80 24.9 38.9 33.6 27.5 +35
81..100 9.7 15.2 49.0 35.8 -37
101..120 4.3 10.1 59.7 30.2 -34
> 120 3.9 6.9 72.6 20.5 -18

Note: the relative strength calculation does not take the absolute Elo of the opponents into account

5.1.0

Move range Game % Win % Draw % Loss % Rel. Strength
<= 40 14.5 43.6 54.5 1.9 +93
41..60 43.0 45.6 38.2 16.2 +78
61..80 25.8 28.2 35.2 36.5 -17
81..100 9.5 12.7 44.5 42.8 -62
101..120 3.7 4.6 62.4 33.0 -52
> 120 3.5 3.1 74.8 22.1 -23

Comparison

The main strength increase is in games with 61 to 80 moves, where Velvet v5.1.0 previously was -17 Elo below the
average opponent in the set and v5.2.0 is now at +37 Elo.

Also the range of 41..60 moves has clearly improved: v5.1.0 with +78 vs. v5.20 with +110 Elo.
In games with increasing number of move numbers (81 moves and more), Velvet is still weaker than the average opponent in the Gauntlet,
but the situation improved.

The strength in games with 40 moves and less is still very high, but did not improve with the new version.
There is even a slight reduction, which is within the error bounds, but could also indicate a minor regression in that area.

Notes

Due to the lack of an ARM-based (Apple Silicon) computer, the new "apple-silicon" builds are untested.

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

Starting with Velvet v4.1.0 there are also builds for macOS provided.
Currently there are no specific optimizations for the ARM-based/Apple Silicon builds implemented, so
the macOS builds for x86_64 might be faster.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV
apple-silicon Native builds for Apple Silicon processors (ARM aarch64) Apple M1

v5.1.0

13 Feb 07:49
Compare
Choose a tag to compare

This releases comes with a bigger neural network and support for Syzygy Tablebase

Estimated strength increase: ~ 40 Elo

Changes

  • Increased hidden layer size
  • Re-introduced GPU trainer
  • Fixed UCI compatibility issue with Nibbler Chess UI
  • Fixed analysis mode issue when search reaches the maximum depth
  • Integrated Fathom for Syzygy Tablebase support
  • Some minor search-related improvements

Note

Due to a compilation issue the no-popcount compatibility build for Windows has been temporarily removed.

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

Starting with Velvet v4.1.0 there are also builds for macOS provided.
Currently there are no specific optimizations for the ARM-based/Apple Silicon builds implemented, so
the macOS builds for x86_64 might be faster.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV
apple-silicon Native builds for Apple Silicon processors (ARM aarch64) Apple M1

v5.0.0

31 Dec 19:37
Compare
Choose a tag to compare

This release provides new engine features (e.g. MultiPV analysis) and a small strength increase 🎆

Estimated strength increase: ~ 30 Elo

Changes

  • Add support for MultiPV analysis
  • Add support for UCI "go mate ..." command
  • Add support for UCI "go searchmoves ..." command
  • Improved training set generator and NN trainer
  • New neural network based upon 4.1.0 self-play training data
  • Some minor search improvements
  • Some minor optimizations
  • Update to latest Rust version (1.66.0)

Due to the lack of an ARM-based (Apple Silicon) computer, the new "apple-silicon" builds are untested.

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

Starting with Velvet v4.1.0 there are also builds for macOS provided.
Currently there are no specific optimizations for the ARM-based/Apple Silicon builds implemented, so
the macOS builds for x86_64 might be faster.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV
apple-silicon Native builds for Apple Silicon processors (ARM aarch64) Apple M1

v4.1.0

18 Aug 12:14
Compare
Choose a tag to compare

This release contains some search-related improvements

Self-play strength increase: ~ 40 Elo

Changes

  • Use counter and follow-up moves for history heuristics
  • Add multi-cut pruning
  • Adjust existing pruning logic
  • Restrict SEE-based reductions and pruning
  • Add jobs for automatically building macOS executables

Due to the lack of an ARM-based (Apple Silicon) computer, the new "apple-silicon" builds are untested.

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

Starting with Velvet v4.1.0 there are also builds for macOS provided.
Currently there are no specific optimizations for the ARM-based/Apple Silicon builds implemented, so
the macOS builds for x86_64 might be faster.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV
apple-silicon Native builds for Apple Silicon processors (ARM aarch64) Apple M1

v4.0.1

06 Jul 16:42
Compare
Choose a tag to compare

This release adds support for parsing DFRC ("Double Fischer Random Chess") positions

Besides this small enhancement to the FEN parser, this fix release does not contain any other changes.
So there are no changes to the playing strength or style compared to v4.0.0.

Changes

  • Support parsing DFRC positions

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV

v4.0.0

03 Jul 10:38
Compare
Choose a tag to compare

The main focus of this release was to experiment with a new neural network architecture

In order to allow the training of bigger neural networks, I implemented a new trainer which uses multiple CPU cores
instead of a GPU. There is still room for optimizations, but the iteration time was sufficiently low to experiment
with different neural network architectures and sizes.

Self-play strength increase: ~ 40 Elo / FRC: 100 Elo
(Note: strength increase is probably lower against a range of different opponents)

Changes

  • New trainer to train bigger networks in a reasonable amount of time

  • New neural network architecture

    • Input nodes: 768x24 instead of 768x5
    • Hidden nodes: 2x288 instead of 512
  • Some time management adjustments

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV

v3.3.0

18 Mar 15:09
Compare
Choose a tag to compare

This release provides support for Fischer Random Chess (Chess960) and a small strength increase

Estimated strength increase: ~ 30 Elo

Changes

  • Support Fischer random chess (Chess960)

  • Neural network evaluation

    • increased hidden layer size from 256 to 512
    • trained new network (including Chess960 positions)
  • Some refactorings and minor search improvements

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV

v3.2.0

05 Feb 10:01
Compare
Choose a tag to compare

This release improves the neural network based evaluation

Estimated strength increase: ~ 130 Elo

Changes

  • Neural network trainer

    • fixed a bug which prevented successful training of networks with bigger hidden layers
    • added data compression support for trained network files
  • Neural network evaluation

    • increased hidden layer size from 64 to 256
    • implemented some optimizations:
      • defer updates and calculations until eval is called
      • remove additional hidden layers

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV

v3.1.3

22 Jan 22:07
Compare
Choose a tag to compare

This patch release contains fixes to improve scalability for high thread counts

Changes

  • Update global node count in bulk

Installation

The chess engine is available for Windows and Linux and requires a 64 Bit CPU.
There are optimized executables available for different CPU micro-architecture generations.

If you have a relatively modern CPU (2013+) with AVX2 support, then the ...-x86_64-avx2 executable is highly recommended for best performance.

Executable Description Min. CPU Generation Required Instruction Sets
x86_64-avx2 Recommended for best performance on a modern CPU Intel Haswell / Zen1 AVX2, BMI1
x86_64-sse4-popcnt Lower performance, recommended for CPUs without AVX2 support Intel Nehalem / AMD Bulldozer SSE4.2, SSE3, POPCNT
x86_64-nopopcnt Lowest performance, but compatible with most x86_64 CPUs --- SSE2, CMOV