Lucky Season #13 for Top Chess Engine Championship
Season 13 of the Top Chess Engine Championship is going to start this August 3rd. A total of 32 engines will compete for the title in the premier computer chess event.
This will be the 3rd season where TCEC is going to use a league system with divisions. The defending champion Stockfish (winner of Season 12 and holder of four TCEC titles) will be seeded 1st in the Premier Division, together with Komodo, Houdini, Fire, Andscacs, Ginkgo, and the two best engines from Division 1. Scroll down for the full participants list.
Two Neural Network engines in TCEC
The Neural Network engine AlphaZero, by the Google owned AI research company DeepMind, shocked the chess world in the end of 2017 when it defeated soundly Stockfish 8 in a test match. While many pointed out that Stockfish was far from the optimal settings, it proved a concept that traditional AB engines can be challenged by deep learning algorithms. It was clear that a new set of engines is coming – the Neural Network (NN) chess engines.
For the first time ever the TCEC competition is going to see two NN engines competing. This will be Leela Chess Zero and DeusX.
Leela Chess Zero aka LC0 was the first public project that showed promising results. The engine is based on the Leela Zero Go engine, which in turn was based on Google’s AlphaGo Zero project, and it was spearheaded by one of Stockfish developers Gary Linscott. Currently the project is advancing fast, with multiple developers and a bigger network coming. People involved in the development share that LC0 is gaining ELO very fast and is ready for the top 10 or more.
DeusX is relatively newer Neural Network and will have its first public appearance this season of TCEC. The author thinks that the engine plays decent level of chess to climb from the lower divisions, but he hopes for an update between divisions. He believes that, “The coming version of DeusX will be ready for Premier division, the top three and more.” Information on DeusX and interview with the author will be available on Chessdom.com in the coming days before the start of the season.
When AlphaZero defeated Stockfish, Grandmaster Hikaru Nakamura commented, “I don’t necessarily put a lot of credibility in the results simply because my understanding is that AlphaZero is basically using the Google supercomputer and Stockfish doesn’t run on that hardware; [...] If you wanna have a match that’s comparable you have to have Stockfish running on a supercomputer as well.” Exactly this will be one of the goals of TCEC this season, to find high end, yet balanced and fair option to compare the strength of the NN engines and the traditional chess engines.
The traditional chess engines will once again run on a 44 cores computer. The NN engines will be provided with 2x GTX 1080 Ti GPU hardware. According to experts in the TCEC chat, this is approximately 35% of the power that Google supplied to Alpha Zero.
Such a setup will not overpower the NN engines, yet it will give them enough power to show their capabilities in the competition.
Specific rules for TCEC Season 13
The rules and regulations for Season 13 will be practically identical to the ruleset of the previous seasons. The only difference will be the use of two servers for the engines. The standard (AB search) engines will run on a 44 core CPU machine, while the NN engines will run on a remote 2x GTX 1080 Ti GPU machine. The two will communicate via a secure protocol. In the rare (and very unlikely) case that the communication stops, the game will be restarted from the starting position.
This season will again require that the engines are stable. No testing will be done between divisions and authors will submit new versions at their own risk. The ’3 strikes and you’re out’ rule applies i.e. in case an engine crashes three times, the scores are annulled for any games played so far and any games remaining.
TCEC Season 13 participants list
The TCEC participants list is based on the final standings of Season 12. Division 4 is entirely invitational and three more engines will be announced in the coming hours in this article. The first games will start on August 3. One game will be played at a time, immediately after it will start the next one.
- P1 from Div 1
- P2 from Div 1
- P1 from Div 2
- P2 from Div 2
- P1 from Div 3
- P2 from Div 3
- P1 from Div 4
- P2 from Div 4
- Deus X
Classical time control will be used through the season and it is increased the deeper the Season goes. For Division 2, 3 and 4, the time control is 30 minutes + 10 seconds added per move for the whole game. For Division 1, the time control is 60 minutes + 10 seconds added per move for the whole game. For Division Premier, the time control is 90 minutes + 10 seconds added per move for the whole game. For the Superfinal, the time control is 120 minutes + 15 seconds added per move for the whole game. If an engine loses on time, the result will not be changed or the game replayed. If the TCEC game server locks up at any time during a game (BSOD, freeze etc), that game will be restarted unless the last position was a 6-man or less tablebase position, then it will be manually adjudicated. Prior to Season 9, different time controls have been used. Check the individual games in the “Archive page”" for info.
A game can be drawn by the normal 3-fold repetition rule or the 50-move rule. However, a game can also be drawn at move 40 or later if the eval from both playing engines are within +0.05 to -0.05 pawns for the last 5 moves, or 10 plies. If there is a pawn advance, or a capture by any kind, this special draw rule will reset and start over. In the website this rule is shown as “TCEC draw rule” with a number indicating how many plies there are left until it kicks in. It will adjudicate as won for one side if both playing engines have an eval of at least 6.50 pawns (or -6.50 in case of a black win) for 4 consecutive moves, or 8 plies – this rule is in effect as soon as the game starts. In the website this rule is shown as “TCEC win rule” with a number indicating how many plies there are left until it kicks in. Cutechess will also adjudicate 5-men or less endgame positions automatically with Gaviota tablebases. The Gaviota adjudication ignores the 50-move rule.
When you enter “Archive page” in the File menu, you can see the official TCEC ratings in the bottom right corner – it is updated after each Division or Superfinal and is calculated by using Ordo. The calculation is global and will always include all new and previous games since Season 4. Any games with losses on time, stalls or disconnections are discarded, as are engines that has only losses. If there is a new engine entering TCEC for the first time, it will get a “temporary” rating taken from the CCRL 40/40 4CPU list. If an engine isn’t found here, or if it has played very few games, an approximate ELO rating will be given to that engine based on tests from the programmer. Then after this new engine has played an event, the official rating will be calculated using Ordo as explained earlier.
Engines that promote to a new Division are allowed to update at the cost of taking 1 strike to fix bugs uncovered during the previous Division. All other engines that promote to the next Division will use the version initially submitted. Promoting engines may update UCI/xboard settings. The deadline for engine submission is the last game of the current Division unless the programmer is given a specific deadline from the Tournament Director – the goal is to be able to start the next Division as soon as possible without any significant delay.
Critical Engine Bugs
In the case of a serious, play-limiting bug (like crashing or interface communication problems, not including losses on time) not discovered during the pre-Season testing, the engine can be updated once per Division to fix this/these bug/bugs only. If this update still doesn’t fix the problem(s) or if there is no update available, the engine might have the number of cores reduced, have the hash size reduced or have the tablebase access disabled – these changes will remain for the rest of the Division.
If necessary, tiebreaks can be used to determine advancement. For all Divisions (not the Superfinal), the first tiebreak criteria is the “crash” tiebreak, meaning that if an engine has crashed once or more during the Division, it will fail qualification versus another engine that has not crashed if both of them has the same amount of points. In case of still being tied, then the direct encounter between the tied engines decides. The next criterion is the greatest number of wins, then the greatest number of wins with black. The Sonneborn-Berger is the next criteria. If they are still tied, then the tournament organizers will decide which engine gets the promotion.
The TCEC Division System
As soon as a Division starts, it will run 24/7 until all games have been played. One game is played at a time – the next one starts automatically. There will be a short break between the Divisions, to make sure everything is ok with the TCEC game server and to prepare for the next Division.
Division 4 is the preliminary Division, involving 8 engines that enter the championship on invitational basis, playing a 4x round robin (112 games). The time control of the games will be 30 mins + 10 sec/move. The top 2 engines qualify for Division 3 while the rest are out of TCEC for the current Season.
Division 3 consists of the 6 engines that qualified from Season 12 plus the top 2 engines from Division 4. It is a 4x round robin (112 games). The top 2 engines promote to Division 2 and the bottom 2 engines are relegated.
Division 2 consists of the 6 engines that qualified from Season 12 plus the top 2 engines from Division 3. It is a 4x double round robin (112 games). The top 2 engines promote to Division 1 and the bottom 2 engines are relegated to Division 3.
Division 1 consists of the 6 engines that qualified from Season 12 plus the top 2 engines from Division 2. It is a 4x round robin (112 games). The top 2 engines promote to Division Premier and the bottom 2 engines are relegated to Division 2
Division Premier consists of the 6 engines that qualified from Season 12 plus the top 2 engines from Division 1. It is a 8x round robin (224 games). The top 2 engines promote to the Superfinal and the bottom 2 engines are relegated to Division 1
This match is played with 50 different openings so that each engine plays both black and white of the same position. The match will be presented with opening 1 used in games 1 and 2, then opening 2 used in games 3 and 4 etc. If the match is theoretically won for one side before game 100, the match will still continue until all 100 games have been played. In the case of a drawn match there will be a rapid match of 16 games with a time control of 25′ + 10″ with random openings selected from earlier in the same Season. In case it is still tied there will be a Blitz match of 8 games with a time control of 3′ + 2″. When the Superfinal is over, the current Season ends.
The TCEC Grand Champion
The winner of the Superfinal will be crowned the TCEC Grand Champion and will keep this title until there is a winner in the next Superfinal. There is no automatic qualification for the reigning Grand Champion, it will have to go all the way through the next Season for it to be able to defend the title.
Engine Specific Configuration
UCI and Xboard (Winboard) engines are supported. To identify the protocol an engine is using you can click the gears next to the engine logo during a game. This info will be saved for the archive, but does not work for Season 5 or older games.
Many engines come with different .exe files. 64-bit .exes are always preferred over 32-bit. Also, compiles that support SSE 4.2, AVX/AVX2 or similar instruction sets are preferred.
Some engines can utilize a function in Windows called large pages, that gives a speed boost. However, after a while the memory in the computer will be fragmented, so that one engine might receive large pages and the opponent won’t, which would be unfair. Therefore, this has been disabled. Large pages are often useful when you are running infinite analysis on a position.
Number of Cores / Threads
Each engine can use up to 43 cores of the processors, if this is supported. Some engines have a prefix like “deep”, but this has been omitted from the engine name to make it shorter. When watching a game you can see the number of cores that are in use for the engines currently playing by clicking the gears next to the engine logo.
The split depth parameter basically defines the minimum depth for work to be split between threads. If no specific settings are given from the programmer, the default value will be used.
Main Hash Size
Each engine is allowed to use up to 16384 MB of hash. Not all engines supports this much hash, so the maximum for that engine will be used in this case, typically 2048 MB or 4096 MB. When watching a game you can see the size of the hash that is in use for the engines currently playing by clicking the gears next to the engine logo.
Minor Hash Sizes
Some engines have an option to configure the size of other hash tables, often called pawn hash or evaluation hash. The combined, total limit for hash types like these is 4096 MB (8192 MB in case of the Superfinal).
Own Opening Book
All opening books shipped with the engines are removed and/or disabled and any engine found to be using hidden, internal opening books will be disqualified and replaced with another engine chosen by the Tournament Director.
For Season 13 all divisions, 5-men Nalimov/Gaviota/Scorpio, and 6-men Syzygy are available thanks to the 256 GB SSD. When watching a game you can see the type of the tablebases (if any) that is in use for the engines currently playing by clicking the gears next to the engine logo.
Ponder / Permanent Brain
Basically this means that the engines can think during their opponents turn. It is not allowed so it will be disabled because of performance limitations with only 1 computer. This might change in a future Season of TCEC.
Contempt / Draw Score
Some engines have a setting that can adjust their own view of the positions throughout a game to avoid draws. This setting is not changed from the default unless it is a request from the programmer.
Any configurable option not described above, are not normally adjusted in any way, except if the programmer of an engine wants specific settings for each specific Division. Options like “keep hash tables” or similar is usually enabled.
CPUs: 44 Cores -> 2 x Intel Xeon E5 2699 v4 @ 2.8 GHz
Motherboard: Supermicro X10DRL-i
RAM: 64 GB DDR4 ECC
SSD: Crucial CT250M500 240 GB
OS: Windows Server 2012 R2
Thanks to the devoted audience and its support, the server has received a huge upgrade from Season 10 on, allowing TCEC to start with a 44 cores machine right from Division 4.
Again thanks to support by the audience, this season will have GPU power of 35% of the power available for Alpha Zero by Google DeepMind. If you want to contribute to upgrading the hardware even more and help the event improve, check out how to support TCEC
GPUs: 2x GTX 1080 ti
CPUs: Intel Xeon E5-2609v4 1.7 GHz
RAM: 32 GB RAM
SSD:480 GB SSD
Port: 1 Gbps Port
OS: Windows Server 2016
Pre-Season 8 TCEC Server
CPUs: 2 x 8 core Intel Xeon E5-2689 @ 3300 MHz
CPU Coolers: 2 x Corsair H80i
Motherboard: Asus Z9PE-D8 WS
RAM: 64 GB Kingston KVR16R11D4K4/32 Reg/ECC
PSU: Corsair AX 760
SSD: Samsung 840 Pro 128 GB
Chassis: Silverstone Raven RV03B-WA
OS: Windows 7 Professional