Releases: mhonert/velvet-chess
v8.1.1
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
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
fromtrue
tofalse
- 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
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
fromtrue
tofalse
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
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
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
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
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
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
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
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 |