Triumviratus 8.1 20261028 - new version strong chess engine
Triumviratus is a strong, UCI-compliant chess engine written in C++.
Author: Francesco (fraTorsello) Rating Chess Engines Diary CEDR=3849
Triumviratus what's new?
Triumviratus 8.1: pre-release (28 October 2026)
This is a pre-release for testing. bench 219346.
Strength
- Against 8.0 (official release): +14.5 ± 6.5 Elo over 2,728 games, SPRT [0, 5] passed. Both universal PGO
builds, 8+0.08, 1 thread per engine, UHO openings. - At 15+0.15 and 30+0.3: estimated at about +10 Elo, from shorter runs.
- The network alone: +10.3 ± 4.3 Elo over Consilium (the 8.0 network) with the same search, 30k nodes per move,
8,332 games.
What is new
New network: Consilium Plebis
- Each side has its own expert, chosen by the non-pawn material that side is facing (8.0 chose one expert for both
sides by the total piece count). - Eight experts; the king-relative weights are int8, so the eight take the memory of four.
- A small pawn-king subnetwork, cached per thread, adds its view of the pawns and kings to every layer stack.
- Trained from 21 to 28 October 2026: pretraining of 496 epochs, finetune of 60 and a continuation of 3 down to a zero
learning rate. The final network is the average of the last 3 epochs. - Inference written for this network, faster than the first version with the same evaluations.
Search
- The search code was rewritten in the project's own form, block by block, each block first at the identical search
tree. - One table of piece values for the whole search (exchange evaluation, futility, capture order, threats), ready
for a value per network expert; in this build the values are the same for every expert. - Pruning margins per expert for the three experts with the most material (reverse futility, futility,
reductions, null move), from an SPSA run. - HistGrad: the quiet history learns more from a surprising best move and punishes little a move the ordering
already rated low. +0.90 ± 3.41 over 11,166 games. - No null move with a minor piece or less (NmpNpmFloor 3). +1.32 ± 2.29 over 6,844 endgame games.
- Every update of the move statistics and correction tables in one learning module (identical tree).
Fixes
- Zobrist keys from a 64-bit generator. The old keys had only 32 independent bits, which caused false hash hits:
the 37.Re4 blunder of 8.0 in a CCRL game, reported by A Tin Man. +4.57 ± 3.56 over 9,660 games at 5+0.05. - Race between threads in the transposition table, dead work in the evaluation, and a static exchange evaluation
that ignored the gain of a promotion: found by Bastiii in a code review. go,dorevalbefore anypositioncommand no longer crashes: the engine starts from the initial position
(issue #7).- Tablebase wins print as cp 20000 minus the distance (GUIs show ±199.xx) instead of about ±94.
- Printed evaluation recalibrated for the new network: +1.00 again means a 50% chance of winning (fitted on
183,630 positions of 8.1 in 3,588 games; with the 8.0 scale the 50% point was at +0.94). Display only: the search
and the games do not change.
Speed
- Legal move generator ported from Zoomies and an AVX-VNNI variant, by A Tin Man (+6% to +9% on the Raptor Lake CPUs
measured).
Thanks
- Maurizio Platino (MortalSin), the project's main tester, who also shares the cost of training the networks.
Maurizio has been a fundamental asset for this project: without Maurizio, the fast development that started with
version 4 would never have been possible. - A Tin Man and Bastiii, for the code contribution and the code review in this release.
- CCRL and the computer chess community.
Comments
Post a Comment