Engineering Efficient Self-Play Chess: Search, Replay, and Throughput Under Limited Compute
Abstract
How strong can an AlphaZero-style chess system become under limited training compute when its entire learning loop is engineered for efficiency? We train from random initialization through searched self-play on a single eight-GPU node for 2.5 days. The resulting 6.32-million-parameter model reaches 3,251 benchmark Elo [3,206, 3,297] at 100,000 searches per move (estimated at under five seconds of thinking time) against a fixed-node Stockfish 13 ladder. The run ingests 3.25 million completed games, involves an estimated 100 billion search simulations, and makes 836.6 million training presentations. We investigate search allocation, replay and restart-state selection, policy representation, progressive model sizing, quantized inference, and throughput engineering. Alongside the retained design, we document plausible alternatives that failed to improve the complete learning loop or did not justify their cost. The reported strength is a result of the integrated system, not an isolated Elo gain attributable to any single choice.
Figures & tables
| Model searches | Parallel | Stockfish nodes | W/D/L | Score | Benchmark Elo (95% CI) |
|---|---|---|---|---|---|
| Policy only | – | 1,000 | 32/24/44 | 0.440 | 1,658 [1,608, 1,710] |
| Policy only | – | 2,000 | 16/22/62 | 0.270 | 1,717 [1,638, 1,790] |
| 100 | 1 | 5,000 | 51/28/21 | 0.650 | 2,328 [2,276, 2,384] |
| 100 | 1 | 10,000 | 39/18/43 | 0.480 | 2,456 [2,400, 2,512] |
| 1,000 | 1 | 20,000 | 47/40/13 | 0.670 | 2,823 [2,774, 2,873] |
| 1,000 | 1 | 50,000 | 21/48/31 | 0.450 | 2,925 [2,875, 2,977] |
| Leaves | Elo | Time (min) | Elo change |
|---|---|---|---|
| 1 | 2,823 | 18.1–18.5 | 0 |
| 4 | 2,804 | 3.4–3.8 | 19 |
| 16 | 2,778 | 1.3–1.8 | 45 |
| Actors | Train (k/s) | Search (k/s) | Estimated cycle time (s) |
|---|---|---|---|
| 8 | 21.5 | 506 | 117 |
| 16 | 17.1 | 606 | 113 |
| 32 | 9.21 | 742 | 111 |
| Quantity | Final training |
|---|---|
| Duration | 2.5 days |
| Model parameters | 6.32 million |
| Completed games | 3.25 million |
| Mean game length | ~104 plies |
| Estimated search simulations | ~100 billion |
| Materialized positions | 209 million |
| Searches | Elo | 95% interval |
|---|---|---|
| 10,000 | 2,697 | 2,640–2,753 |
| 100,000 | 2,873 | 2,819–2,935 |
Appendix figures & tables9 assets
Supplementary material from the paper’s appendix.
Appendix
| Depth width | Positions/s (k) | Measured ratio | Arithmetic ratio |
|---|---|---|---|
| 12 96 | 133 | 1.284 | 1.778 |
| 12 112 | 95.9 | 0.926 | 1.306 |
| 12 120 | 93.4 | 0.903 | 1.138 |
| 12 128 | 103 | 1.000 | 1.000 |
| 12 136 | 59.7 | 0.577 | 0.886 |
| 12 144 | 63.8 | 0.617 | 0.790 |
| Model | Reference | Batch 512 | Batch 320 | Batch 64 |
|---|---|---|---|---|
| 20 128 | 14 152 | 1.36 | 1.20 | 0.730 |
| 10 176 | 14 152 | 1.35 | 1.24 | 1.34 |
| 13 160 | 14 152 | 1.23 | 1.13 | 1.10 |
| 14 160 | 14 152 | – | 1.05 | 1.01 |
| 15 160 | 14 152 | – | 0.980 | 0.930 |
| 16 160 | 14 152 | – | 0.918 | 0.960 |
| Active actors | Training samples/s | Estimated cycle time (s) |
|---|---|---|
| 0 | 25,275 | – |
| 8 | 21,492 | 117.1 |
| 16 | 17,139 | 112.9 |
| 32 | 9,210 | 111.2 |
| Checkpoint | Searches | W/D/L | Score | Benchmark Elo |
|---|---|---|---|---|
| 900 | 64 | 18/26/56 | 31.0% | 2,331.0 |
| 960 | 64 | 16/31/53 | 31.5% | 2,335.0 |
| 1020 | 64 | 16/34/50 | 33.0% | 2,347.0 |
| 900 | 400 | 31/41/28 | 51.5% | 2,710.4 |
| 960 | 400 | 33/38/29 | 52.0% | 2,713.9 |
| 1020 | 400 | 26/36/38 | 44.0% | 2,658.1 |
| Plane indices | Feature, in channel order | Encoding |
|---|---|---|
| 0, 1, 2, 3, 4, 5 | Own pawn, knight, bishop, rook, queen, king | Piece-location masks |
| 6, 7, 8, 9, 10, 11 | Opponent pawn, knight, bishop, rook, queen, king | Piece-location masks |
| 12 | Own kingside castling right | Constant 0 or 1 |
| 13 | Own queenside castling right | Constant 0 or 1 |
| 14 | Opponent kingside castling right | Constant 0 or 1 |
| 15 | Opponent queenside castling right | Constant 0 or 1 |
Self-Play RL
Self-play reinforcement learning trains agents through repeated interaction with copies, opponents, or co-evolving task generators.
See all 83 papers