Project Plateau
Project Plateau는 네 개의 유리판과 하나의 살아있는 계곡, 캠프로 돌아가는 길을 의미
Kestrel은 하나의 C++17 파일로 구현된 UCI 체스 엔진입니다
Kestrel is a UCI chess engine in one C++17 file. Version 3.2 evaluates every position with one large neural network, reads Syzygy tablebases and searches with up to 128 threads.
게임C++ · CGitHub @Alon-Berg온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
UCI chess engine in one C++17 file, made by Claude. Since version 2.0 it uses one large neural network (NNUE, 39 million parameters) stored inside the executable; 3.0 added Syzygy tablebases, 3.1 up to 128 search threads and a hash of up to 1,048,576 MB, and 3.2 a smoother time management. Latest release: 3.2.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A UCI chess engine in one C++17 file, written by Claude, an AI model made by Anthropic, with one exception: the Syzygy tablebase reader inside it is Fathom (MIT licence, see THIRD_PARTY_NOTICES.txt). Since version 2.0 it judges every position with one large neural network (39.1 million parameters) that is stored inside the executable.
Download the latest release (Windows, Linux, macOS) · Web page · Play in the browser · Changelog · UCI options · Syzygy tablebases · licence MIT
All numbers are my own, from fastchess matches on one laptop (1 thread, 64 MB hash, no book, no learning, no adjudication, the same openings for both sides, every engine process at full speed with Windows' efficiency throttling switched off). No rating list has tested Kestrel yet. Elo is Kestrel 3.0 against the older version, with fastchess's 95 % interval. Kestrel 3.1 has the network and the search of 3.0 and plays exactly like it with one thread, and 3.2 plays like 3.1 except for the time management of searches with a clock, so the numbers below hold for 3.1 and 3.2 with one thread. Kestrel 4.0 has the same network and a faster, changed search: its numbers are in the paragraph 'Speed and search (4.0)' below.
| Time per game (base + increment, seconds) | Kestrel 3.0 against Kestrel 2.3 |
|---|---|
| 1 + 0.01 | +192 ± 23 |
| 2 + 0.02 | +150 ± 23 |
| 3 + 0.03 | +146 ± 17 |
| 5 + 0.1 | +105 ± 14 |
| 10 + 0.1 | +102 ± 22 |
| 20 + 0.5 | +102 ± 28 |
Pooled over all time controls: +130 ± 8 Elo against 2.3 (3,800 games, inverse-variance weights). The gain is largest at the shortest time controls and levels off with more time: from 5 s + 0.1 s per game on it is +104 ± 11 Elo (1,600 games). The gain comes from the network alone: the search and the time management are those of 2.3, and in a match of the two networks inside the same engine at 20,000 nodes per move the 3.0 network is +138 ± 11 Elo ahead (2,000 games). The network has the same size as before, so the cost of one node is almost the same (1.07 million nodes per second in the depth-12 bench on a performance core against 1.13 million for 2.3, 5 % fewer), but the stronger network makes the search tree smaller: the bench needs 859,322 nodes instead of 1,051,844 and takes about 808 ms instead of 935 ms (14 % less time).
In my own round robin against 100 other engines (5 s + 0.1 s per game, one thread, this laptop, every engine at full speed) 3.0 scored 76.0 of 200 games; fitted onto the CCRL Blitz scale through the engines whose ratings did not change that is about 3576 (95 % bootstrap interval 3552 to 3597), which would put it 71 of 101 in that table. This is an estimate under my own conditions, not a rating-list result.
Raw results: logs/fast_matches_3_0.txt.
Many threads (3.1): 8 threads score +123 ± 24 Elo against 1 thread of the same build at 10 s + 0.1 s per game (200 games with a development build; +108 ± 38 in 100 games with the release exe; on a laptop with 22 logical processors). 64 and 128 threads on the same 22 processors gain nothing (+11 ± 71 and +11 ± 57, 32 games each), so use at most as many threads as the computer has logical processors. Lazy SMP does not scale linearly (the nodes per second grow 2.9 times with 8 threads and 3.7 times with 20 on that laptop), and I could not test a computer with many more processors; details in CHANGELOG.md.
Time management (3.2): a smoother rule for when to stop searching, in games with a clock: Kestrel 3.2 against 3.1 scored +11.2 ± 6.2 Elo at 3 s + 0.03 s per game (4,000 games) and +6.2 ± 7.5 at 5 s + 0.1 s (2,000 games), packaged builds, one thread; together +9.2 ± 4.8 Elo (6,000 games). No change at all with a fixed move time, depth or node limit. Raw results: logs/fast_matches_3_2.txt.
Speed and search (4.0): Kestrel 4.0 against 3.2 scored +31.9 ± 5.8 Elo at 3 s + 0.03 s per game (4,000 games) and +26.8 ± 7.1 at 5 s + 0.1 s (2,000 games), packaged builds, one thread; together +29.9 ± 4.5 Elo (6,000 games). The network is the one of 3.0 - 3.2: the gain comes from a search that makes 10 % more nodes per second (the depth-12 bench takes 24 % less time) at the same strength per node, and from two changes to the move ordering (+22.9 ± 6.1 Elo at 20,000 nodes per move). Raw results: logs/fast_matches_4_0.txt.
For comparison, Kestrel 2.0 against the older versions (the same kind of match): +37 ± 11 Elo against 1.1 (1,900 games) and +48 ± 13 against 1.0 (1,500 games), see logs/fast_matches_2_0.txt.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗