Difference between revisions of "TCEC Season Further information"

From TCEC wiki
Jump to: navigation, search
(removing winners - this should be a stable page)
(Add flags and about multithread)
 
(12 intermediate revisions by 2 users not shown)
Line 7: Line 7:
  
 
'''Compiles'''
 
'''Compiles'''
:Many engines come with different executable files. 64-bit executables are always preferred over 32-bit. Also, compiles that support SSE 4.2, AVX/AVX2 or similar instruction sets are preferred. An author can also submit an update.sh script that is then used to download/clone and compile the engine. Not stripping the optimized executable of debugging information is recommended.
+
:Many engines come with different executable files. 64-bit executables are always preferred over 32-bit. Also, compiles that support AVX512, SSE 4.2, AVX/AVX2 or similar instruction sets are preferred. An author can also submit an update.sh script that is then used to download/clone and compile the engine. Not stripping the optimized executable of debugging information is recommended.
  
 
'''Large Pages'''
 
'''Large Pages'''
Line 13: Line 13:
  
 
'''Number of Cores / Threads'''
 
'''Number of Cores / Threads'''
:Each engine can use up to 176 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 by hovering over the king figure above the engine logos.
+
:Each engine can use up to 104 threads 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 by hovering over the king figure above the engine logos.
  
 
'''Split Depth'''
 
'''Split Depth'''
Line 19: Line 19:
  
 
'''Main Hash Size'''
 
'''Main Hash Size'''
:Each engine is allowed to use up to 256GiB of hash. Not all engines support this much hash or time control does not warrant using this much, so the maximum sensible for given time control for that engine will be used in this case. The author's preference for Hash size is always used up to the 256GiB limit. 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.
+
:Each engine is allowed to use up to 96GiB of hash if initialization is multithreaded, otherwise maximum is 64GiB or 32GiB. Not all engines support this much hash or time control does not warrant using this much, so the maximum sensible for given time control for that engine will be used in this case. The author's preference for Hash size is always used up to the 96GiB limit. 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'''
 
'''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 RAM usage limit is 288 GiB not including TB files cached by OS.
+
:Some engines have an option to configure the size of other hash tables, often called pawn hash or evaluation hash. The combined, total RAM usage limit is 112 GiB not including TB files cached by OS.
  
 
'''Own Opening Book'''
 
'''Own Opening Book'''
Line 28: Line 28:
  
 
'''Endgame Tablebases'''
 
'''Endgame Tablebases'''
:For all divisions, 5-men Nalimov/Gaviota/Scorpio, and 6-men Syzygy are available and cached in RAM if enough free RAM is available. 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.
+
:For all divisions, 6-men Scorpio, and 7-men Syzygy are available on NVMe SSD and some RAM is reserved for caching them. 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'''
 
'''Ponder / Permanent Brain'''
Line 43: Line 43:
 
Special thanks to ''noobpwnftw'' who sponsors TCEC with the current playing hardware mentioned hereafter!
 
Special thanks to ''noobpwnftw'' who sponsors TCEC with the current playing hardware mentioned hereafter!
  
===Current TCEC CPU server===
+
=== TCEC all in one box server since after S21 superfinal===
 +
 
 +
ALL IN ONE BOX SYSTEM
 +
 
 +
*CPU: 2x Xeon 6230R (52 cores/104 threads)
 +
*GPU: 2xA100-PCIE-40GB
 +
*RAM: 256GiB (~96GiB/engine)
 +
*Storage: 2TiB SSD + Starting from S23 VVLTC: 12TiB (4 drives) NVMe SSD for Syzygy3-7 (total 14TB) + 15TiB (2 drives raid1 (30TiB)) HDD for Syzygy7 DTZ
 +
*OS: CentOS Stream release 8
 +
*Drivers: nvidia-driver.x86_64 3:495.29.05-1.el8 cuda.x86_64 11.5.1-1 libcudnn8.x86_64 8.3.2.44-1.cuda11.5
 +
*Compilers: gcc 8.5.0, 9.2.1, 10.3.1, 11.2.1 and 12.1.1; clang 13.0.0; rust 1.58.1; java OpenJDK 1.8.0_322-b06
 +
*CPU flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
 +
 
 +
===TCEC CPU server until and including S21 superfinal===
  
 
*CPUs: 4 x Intel Xeon 4xE5-4669v4
 
*CPUs: 4 x Intel Xeon 4xE5-4669v4
Line 54: Line 67:
 
*Compilers if you submit source code: gcc version 8.3.1 20191121 (or optionally gcc (GCC) 9.2.1 20191120), clang version 9.0.1, java 14.0.1 2020-04-14
 
*Compilers if you submit source code: gcc version 8.3.1 20191121 (or optionally gcc (GCC) 9.2.1 20191120), clang version 9.0.1, java 14.0.1 2020-04-14
  
===Current TCEC GPU server===
+
===TCEC GPU server until and including S21 superfinal===
  
 
*GPUs: 4x V100
 
*GPUs: 4x V100

Latest revision as of 15:00, 21 January 2024

TCEC Season - Further information - this TCEC Season page is a supplement to TCEC Season Rules

Further information

Engine Specific Configuration

UCI and Xboard (Winboard) engines are supported. To identify the protocol an engine is using you can hover over the king figure placed above the engine logo during a game. This info will be saved for the archive, but does not work for Season 5 or older games.

Compiles

Many engines come with different executable files. 64-bit executables are always preferred over 32-bit. Also, compiles that support AVX512, SSE 4.2, AVX/AVX2 or similar instruction sets are preferred. An author can also submit an update.sh script that is then used to download/clone and compile the engine. Not stripping the optimized executable of debugging information is recommended.

Large Pages

Large pages are automatically in use, nothing needs to be done by engines.

Number of Cores / Threads

Each engine can use up to 104 threads 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 by hovering over the king figure above the engine logos.

Split Depth

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 96GiB of hash if initialization is multithreaded, otherwise maximum is 64GiB or 32GiB. Not all engines support this much hash or time control does not warrant using this much, so the maximum sensible for given time control for that engine will be used in this case. The author's preference for Hash size is always used up to the 96GiB limit. 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 RAM usage limit is 112 GiB not including TB files cached by OS.

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.

Endgame Tablebases

For all divisions, 6-men Scorpio, and 7-men Syzygy are available on NVMe SSD and some RAM is reserved for caching them. 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.

Other Settings

Any configurable option not described above, is 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.

TCEC Hardware

Thanks to our devoted audience for it's support in the form of donations, subscriptions and cheers!
Special thanks to noobpwnftw who sponsors TCEC with the current playing hardware mentioned hereafter!

TCEC all in one box server since after S21 superfinal

ALL IN ONE BOX SYSTEM

  • CPU: 2x Xeon 6230R (52 cores/104 threads)
  • GPU: 2xA100-PCIE-40GB
  • RAM: 256GiB (~96GiB/engine)
  • Storage: 2TiB SSD + Starting from S23 VVLTC: 12TiB (4 drives) NVMe SSD for Syzygy3-7 (total 14TB) + 15TiB (2 drives raid1 (30TiB)) HDD for Syzygy7 DTZ
  • OS: CentOS Stream release 8
  • Drivers: nvidia-driver.x86_64 3:495.29.05-1.el8 cuda.x86_64 11.5.1-1 libcudnn8.x86_64 8.3.2.44-1.cuda11.5
  • Compilers: gcc 8.5.0, 9.2.1, 10.3.1, 11.2.1 and 12.1.1; clang 13.0.0; rust 1.58.1; java OpenJDK 1.8.0_322-b06
  • CPU flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts pku ospke avx512_vnni md_clear flush_l1d arch_capabilities

TCEC CPU server until and including S21 superfinal

  • CPUs: 4 x Intel Xeon 4xE5-4669v4
  • Cores: 88 physical / 176 threads
  • RAM: 288 GiB DDR4 (available to engines)
  • RAM: 1 TiB (available to 6-pieces Syzygy)
  • HDD: 7 TB total
  • OS: CentOS Linux release 8.2.2004 (Core)
  • If no Linux version: wine-5.0 or Microsoft Windows Server 2019 Datacenter 10.0.17763 N/A Build 17763 running in VM
  • Compilers if you submit source code: gcc version 8.3.1 20191121 (or optionally gcc (GCC) 9.2.1 20191120), clang version 9.0.1, java 14.0.1 2020-04-14

TCEC GPU server until and including S21 superfinal

  • GPUs: 4x V100
  • CPU: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz, 32 vcores
  • RAM: 48GiB (available to engines)
  • RAM 128GiB (RAM unused by engines is used for caching tablebase files)
  • SSD: 500GB
  • 6-piece Syzygy and 6-piece Scorpio bitbases on SSD
  • OS: Ubuntu 18.04.5 LTS
  • Drivers and libraries: nvidia-driver-455.45.01-0ubuntu1, cuda 11.1.1-1, cuda 10.2.89-1, libcudnn 8.0.5.39-1+cuda11.1, libcudnn 7.6.5.32-1+cuda10.2
  • Compilers if you submit source code: gcc version 7.5.0, gcc version 8.4.0, clang version 6.0.0-1ubuntu2, meson 0.55.1

FAQ

Is this the official World Computer Chess Championship?

No, it is not, although many people regard it as such.

Did the engine move instantly?

Yes, some engines can move from hash, or move instantly (instamove of 0 seconds). However, sometimes it can seem that it moves instantly but in reality it doesn't, since there is a transmission delay from the playing server to the website. Refer to the "move time" for each engine to see how long it thought on its move.

Is there a special plugin required to view the games?

No, to view the games it is only required that you allow Javascript to run. The TCEC Web GUI has been developed by Octopoulo, improving on the ideas of Ben Reese and Arun Sathya. It will run on the latest Chrome, but also on the latest Firefox. There is no support for Internet Explorer versions below 9.

What are you using to play the games?

To play the games a special version of cutechess-cli is used. This is a command line tool without an actual GUI. This was made possible thanks to Jeremy Bernstein and Arun Sathya. Previously TCEC used ChessGUI by Matthias Gemuh.

Who are the authors of the GUI?

The current web GUI has been developed and created from scratch by Octopoulo, building on the ideas behind the older one created by Ben Reese and Arun Sathya. Previous seasons used a GUI by Martin Thoresen, currently known as legacy GUI.
As of Season 17 the new TCEC Official GitHub will be used for further development.

What is the name of the web framework that displays the games?

For the current web GUI it is chessboard.js and cutechess-cli. For the legacy GUI and archive GUI it is called pgn4web and is totally free. Paolo Casaschi is the mastermind behind it and has helped a lot on certain difficult programming challenges.

Who is the author of the opening books used?

The author of the Superfinal opening book (Book E) is Jeroen Noomen (aka Jeroen_TCEC); the author of all other opening books (Book A-D) used during TCEC tournament games is Nelson Hernandez (aka CatoTheYounger_TCEC).