Releases: mhonert/velvet-chess
v5.2.1
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
- Fixes a draw by repetition detection bug as for example observed in TCEC S24 - FRC6 League A - Game 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 |
v5.2.0
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
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
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
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
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
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
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
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
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 |