Skip to content

Releases: mhonert/velvet-chess

v8.1.1

06 Nov 21:27
Compare
Choose a tag to compare

This patch release fixes some bugs that were introduced in v8.1.0

Changes

  • Fixed a bug where the PV info did not fit to the returned bestmove
  • Fixed a bug where the ponder move did not fit to the returned bestmove
  • Fixed a bug where bestmove 0000 was returned, if the search limit was not sufficient to complete at least one iteration

Notes

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

Installation

The chess engine is available for Windows, macOS 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-avx512 Higher performance for CPUs supporting AVX-512 x86-64-v4 AVX-512
x86_64-avx2 Recommended for best performance on most modern CPUs without AVX-512 support 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

v8.1.0

28 Oct 17:45
Compare
Choose a tag to compare

This minor release comes with some search improvements and a partial switch to 8-bit quantized weights

Estimated strength increase (using the default network): ~ 40 Elo

  • 40 Elo - 60+0.6s TC against a gauntlet of other engines with unbalanced openings
  • 60 Elo - 60+0.6s TC in self-play against the previous version 8.0.0

Results may vary depending upon time control, opponents and opening selection.

Changes

  • Switch from 16- to 8-bit quantized weights in the input layer
  • Several search improvements
  • Minor time management improvement
  • Support for AVX-512 (Linux only at the moment)
  • Changed default value for UCI option RatingAdvAdaptiveStyle from true to false
  • Update to Rust 1.82.0

Notes

Due to the lack of an ARM-based (Apple Silicon) computer, the "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-avx512 Higher performance for CPUs supporting AVX-512 x86-64-v4 AVX-512
x86_64-avx2 Recommended for best performance on most modern CPUs without AVX-512 support 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

v8.1.0-dev1

27 Sep 05:46
Compare
Choose a tag to compare
v8.1.0-dev1 Pre-release
Pre-release

This is just a pre-release not intended for rating lists

Changes

  • Switch from 16- to 8-bit quantized weights in the input layer
  • Search improvements
  • Support for AVX-512 (Linux only at the moment)
  • New SPRT testing tool
  • New tournament (gauntlet) testing tool
  • New tuning tool
  • Changed default value for UCI option RatingAdvAdaptiveStyle from true to false

Notes

Due to the lack of an ARM-based (Apple Silicon) computer, the "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-avx512 Higher performance for CPUs supporting AVX-512 x86-64-v4 AVX-512
x86_64-avx2 Recommended for best performance on most modern CPUs without AVX-512 support 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

v8.0.0

17 Aug 09:46
Compare
Choose a tag to compare

This new major release introduces configurable playing strength, adaptive styles, and a small strength increase

Estimated strength increase (using the default network): ~ 35 Elo

New features

Configurable strength

In order to make Velvet a viable sparring partner for human players of different skill levels, its strength can now be limited.
To enable this feature, set UCI_LimitStrength to true and adjust UCI_Elo to your desired Elo rating (between 1225 and 3000).

Please note that these Elo ratings might not yet correspond well to Elo ratings of human players.
A better calibration would require a lot of games against human players of different skill levels.
I recommend to experiment with different settings to find the optimal match for your current skill.

In addition, the new SimulateThinkingTime option allows Velvet to mimic human-like thinking times by utilizing a portion of its remaining time budget.
You can disable this feature by setting SimulateThinkingTime to false.

These options can be combined with the new "style" settings.

Support for different playing styles

Velvet now offers two distinct embedded neural networks, each designed to reflect a different playing style.
You can easily toggle between these styles using the Style UCI option to match your strategic preferences.

  • Normal Style: The default setting, offering a balanced approach to gameplay. While Velvet is still capable of sacrifices and aggressive attacks, it places slightly more emphasis on avoiding unfavorable positions if an attack doesn’t succeed, compared to the Risky style.
  • Risky Style: This setting pushes Velvet to adopt a bolder, more aggressive approach, taking greater risks to create dynamic and challenging positions on the board.

Note: the riskier playing style comes with the downside, that the strength is reduced by around 25 Elo depending upon the opponent.

New bench Command for Performance Benchmarking

Velvet now includes support for the bench command, allowing users to perform a quick benchmark test to evaluate the engine's performance.
This command runs searches from several predefined positions and reports key metrics,
including the total number of nodes processed, the duration of the test, and the nodes per second (NPS) achieved.

Example output:

bench
[...]

info string bench total time    : 2005ms
info string bench nodes         : 5199862
info string bench NPS           : 2593447

Support for UCI_RatingAdv and UCI_Opponent options

Velvet now supports the UCI_RatingAdv and UCI_Opponent options, allowing the engine to dynamically adjust its playing style based on the set rating advantage.
When Velvet detects a significant rating advantage, it will adopt a more aggressive, risk-taking approach.

This is mainly relevant for the TCEC event, where these two options are provided to the engines.

If desired, this adaptive behavior can be disabled by setting the RatingAdvAdaptiveStyle option to false.

Additional Changes

In addition to the new features, Velvet has undergone several internal improvements:

  • Search Enhancements: Various optimizations to improve search efficiency and accuracy.
  • Updated Rust Version: Velvet has been updated to Rust 1.80.0
  • Neural Network Upgrade: The size of the hidden layer has been increased from 2x768 to 2x1024
  • Improved Training Data: Adjustments have been made to training data, including reduced scores for positions where sacrifices led to a loss or draw, and score adjustments based on statistical analysis of similar material combinations
  • Code Refinements: Minor refactorings to improve code clarity and maintainability

Notes

Due to the lack of an ARM-based (Apple Silicon) computer, the "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

v7.3.0

08 Apr 20:17
Compare
Choose a tag to compare

This minor release contains an updated neural network

Estimated strength increase: ~ 10 Elo

Changes

v7.2.0 introduced a bigger neural network (hidden layer size increased from 2x512 to 2x768 hidden nodes).
Unfortunately it was trained with some experimental changes and the resulting network was only slightly better than the smaller network.

For this new v7.3.0 release, a new network was trained.

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

v7.2.0

07 Apr 07:39
Compare
Choose a tag to compare

This is another minor release with some small search improvements and a bigger neural network

Estimated strength increase: ~ 20 Elo

Changes

  • Bigger neural network (hidden layer size increased from 2x512 to 2x768 nodes)
  • Training data for drawn games adjusted to scale down scores for certain material combinations
  • Search improvements
  • Time management improvements

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

v7.1.0

08 Mar 15:14
Compare
Choose a tag to compare

This is just a minor release with some bug-fixes, performance improvements and a small strength increase

Estimated strength increase: ~ 20 Elo

Changes

  • Search improvements
  • Performance optimizations

Fixed bugs

  • UCI option handling: support spaces inside the 'value' part
  • 50-move draw rule logic: checkmate at 100th half-move evaluated as draw

Statistics

  • Elo change: v7.1.0 compared to v7.0.0 against the same set of opponents
  • Move range: grouped by games won in less than x moves (each game only belongs to one group, so a game that ended in 57 moves would belong to the group "60", but not "80", "100", etc.)
Move range Elo change
40 +42
60 +9
80 +28
100 +31
120 +26
>= 120 +2

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

v7.0.0

20 Feb 20:36
Compare
Choose a tag to compare

This release improves the strength and performance in later game stages, while maintaining the early game strength

Estimated strength increase: ~ 65 Elo

New Features

  • Support for UCI "Move Overhead" option

Changes

  • Increase default move overhead from 16 to 20 milliseconds
  • Performance optimizations
  • Cache evaluation scores in transposition table / Up to 50% higher performance in positions with fewer pieces
  • Rescaled evaluation scores in training data
  • Store scores internally with additional bit: eval range now from -9999 to 9999 (was -7650 to 7650 before)
  • Perform check evasions in quiescence search
  • Collect PV (for UCI output) also during quiescence search
  • Several search improvements

Fixed bugs

  • Eval scores reaching into mate score range
  • Time management issue causing search to be stopped too early

Statistics

  • Elo change: v7.0.0 compared to v6.0.0 against the same set of opponents
  • Move range: grouped by games won in less than x moves (each game only belongs to one group, so a game that ended in 57 moves would belong to the group "60", but not "80", "100", etc.)
Move range Elo change
40 +4
60 +51
80 +88
100 +100
120 +88
>= 120 +33

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

v6.0.0

21 Dec 09:00
Compare
Choose a tag to compare

This releases comes with a new neural network architecture and some small search improvements 🎄

Estimated strength increase: ~ 35 Elo

Notes:

  • The strength increase in FRC/DFRC is much lower (< 10 Elo)
  • Generating more DFRC training positions for the bigger neural network is planned for a future v6.1.0 release

Changes

  • Change neural network architecture from 3x5x768->2x512->1 to 32x768->2x512->1
  • New neural network trained from v5.3.0 (and v6.0.0 dev) self-play games
  • Updated training tools to support training of bigger networks
  • Some refactorings and optimizations

Statistics

  • Elo change: v6.0.0 compared to v5.3.0 against the same set of opponents
  • Move range: grouped by games won in less than x moves (each game only belongs to one group, so a game that ended in 57 moves would belong to the group "60", but not "80", "100", etc.)
Move range Elo change
40 +47
60 +27
80 +45
100 +58
120 +34
>= 120 +40

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.3.0

10 Aug 18:55
Compare
Choose a tag to compare

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

Estimated strength increase: ~ 25 Elo

Changes

  • New neural network trained from v5.2.0 training set + re-scored training sets from earlier Velvet versions
  • Updated training tools
  • Some minor search improvements and fixes
  • Some optimizations

Statistics

  • Elo change: v5.3.0 compared to v5.2.0 against the same set of opponents
  • Move range: grouped by games won in less than x moves (each game only belongs to one group, so a game that ended in 57 moves would belong to the group "60", but not "80", "100", etc.)
Move range Elo change
40 +24
60 +32
80 +22
100 +31
120 +37
>= 120 +12

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