Difference between revisions of "Ethereal"

From Chessprogramming wiki
Jump to: navigation, search
(2020 ...)
 
(32 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
'''Ethereal''',<br/>
 
'''Ethereal''',<br/>
 
an [[UCI]] compliant [[:Category:Open Source|open source chess engine]] written by [[Andrew Grant]] in [[C]], licensed under the [[Free Software Foundation#GPL|GNU GPL]] and first officially released in June 2016 <ref>[http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=7&t=8645 Ethereal - Official Release] by [[Andrew Grant]], [[Computer Chess Forums|CCRL Discussion Board]], June 25, 2016</ref>. Ethereal is greatly influenced from [[Crafty]], [[Stockfish]], [[TSCP]], [[MadChess]], and [[Fruit]] <ref>[https://github.com/AndyGrant/Ethereal/blob/master/README.md Ethereal/README.md at master · AndyGrant/Ethereal · GitHub]</ref>.  
 
an [[UCI]] compliant [[:Category:Open Source|open source chess engine]] written by [[Andrew Grant]] in [[C]], licensed under the [[Free Software Foundation#GPL|GNU GPL]] and first officially released in June 2016 <ref>[http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=7&t=8645 Ethereal - Official Release] by [[Andrew Grant]], [[Computer Chess Forums|CCRL Discussion Board]], June 25, 2016</ref>. Ethereal is greatly influenced from [[Crafty]], [[Stockfish]], [[TSCP]], [[MadChess]], and [[Fruit]] <ref>[https://github.com/AndyGrant/Ethereal/blob/master/README.md Ethereal/README.md at master · AndyGrant/Ethereal · GitHub]</ref>.  
 +
On October 09, 2020, Andrew Grant initially announced his withdrawal from Ethereal's development with the releases of Ethereal '''V12.75'''
 +
<ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335 Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], October 09, 2020</ref>
 +
and Ethereal '''12.75 SF-NNUE''', the latter a [[NNUE]] implementation based on [[Stockfish NNUE]], to deliberately demonstrate how everybody may considerably improve the [[Playing Strength|playing strength]] of their engines without much effort
 +
<ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335&start=91 Re: Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], October 09, 2020</ref>.
 +
However, Andrew Grant voted for another direction, and announced a commercial release of Ethereal '''13.00''' (NNUE) ,
 +
the free standard version still available on [https://en.wikipedia.org/wiki/GitHub Github] <ref name="Ethereal13NNUE">[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77438 Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems] by [[Andrew Grant]], [[CCC]], June 04, 2021</ref>.
 +
 +
=Ethereal 13 (NNUE)=
 +
'''Ethereal 13 (NNUE)''', the commercial Ethereal version for [[AVX2]] systems was released on June 04, 2021. The program comes with two [[NNUE|NNUEs]] for  [[Evaluation|evaluation]],
 +
one for standard chess, and the secondary network trained exclusively for [[Chess960]]. The NNUEs are not derived from, trained on, nor duplicated from the works of the [[Stockfish]] team  <ref name="Ethereal13NNUE"/>. Andrew Grant on his NNUE approach <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77438&start=17 Re: Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems] by [[Andrew Grant]], [[CCC]], June 04, 2021</ref>:
 +
 +
Ethereal is using the [[Stockfish NNUE#NNUE Structure|HalfKP]] paradigm, with a 40960x256 -> 512x32x32x1 Network. This is the textbook approach, but with some changes. Firstly, not all weights are quantized to int8 / int16 for the input layer. Instead, the network goes like this: int16_t => int16_t => (int32_t -> [[Float|float_t]]) => float_t => float_t. This approach allows us to never have to pack the data downwards, saving many operations, and also lets us take a slightly more expensive approach to the later layers in exchange for massively increased precision. If I eventually add support for [[AVX]] (not avx2) machines, it will be a significant gain as AVX does not have 256-bit vector support for integer types in a meaningful way.
 +
 +
During training the Network actually has 43850 input parameters, using a few factorization of the board to aid in training without having tens of billions of positions. In practice, each Net was trained somewhere between 2 and 4 billion positions total, evaluated by Ethereal / Ethereal NNUE. The networks are trained using a modified form of the [https://en.wikipedia.org/wiki/Stochastic_gradient_descent#Adam Adam] optimizer, which allows better performance for datasets with extremely sparse input fields. For example, with a Batch Size of 16384, only about 50% of the 43,850 parameters are used on average.
 +
 +
Data generation for a given network takes about 3 weeks, completed on a 104 core machine. From there, processing that data down into a list of [[Forsyth-Edwards Notation|FENs]] and then into the format used by Ethereal's NNTrainer takes another 12 hours or so. Finally, training the actual Network can take a few days, with many stops and starts to drop the learning rate and find a global optima.
 +
 +
The trainer itself is a fully original work, written in [[C]] and making use of all 104 threads. It includes some AVX2 and even AVX512 code for use in updating the network parameters. This toolkit was used in training the Halogen networks as well. It is fairly flexible and trying things like HalfKA, changing layer sizes, adding layers, changing activation functions, or adding more factorizers is only a few minutes of effort in the code. It rivals speeds of [[GPU]] based trainers, by leveraging massive SMP and efficient implementations.
  
 
=Features=
 
=Features=
Line 26: Line 44:
 
** [[Razoring]]
 
** [[Razoring]]
 
** [[Reverse Futility Pruning]] (Static Null Move Pruning)
 
** [[Reverse Futility Pruning]] (Static Null Move Pruning)
 +
** [[Static Exchange Evaluation|Static Exchange Evaluation Pruning]]
 +
** [[Multi-Cut]] (12.00)
 
* [[Move Ordering]]
 
* [[Move Ordering]]
 
** [[Internal Iterative Deepening]]
 
** [[Internal Iterative Deepening]]
Line 31: Line 51:
 
** [[Killer Heuristic]]
 
** [[Killer Heuristic]]
 
** [[History Heuristic]]
 
** [[History Heuristic]]
** [[Piece-Square Tables]]
+
** [[Piece-Square Tables]]  
 
==[[Evaluation]]==
 
==[[Evaluation]]==
 +
* [[NNUE]] (Ethereal 13.00 NNUE)
 
* [[Tapered Eval]]
 
* [[Tapered Eval]]
 
* [[Material]]
 
* [[Material]]
Line 43: Line 64:
 
* [[Pawn Hash Table]]
 
* [[Pawn Hash Table]]
 
* [[Pawn Structure]]
 
* [[Pawn Structure]]
 +
* [[Automated Tuning]] by [[Automated Tuning#LogisticRegression|Logistic Regression]], [https://en.wikipedia.org/wiki/Stochastic_gradient_descent#AdaGrad AdaGrad] (12.50) <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74877 Evaluation & Tuning in Chess Engines] by [[Andrew Grant]], [[CCC]], August 24, 2020 </ref><ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75350 Ethereal Tuning - Data Dump] by [[Andrew Grant]], [[CCC]], October 10, 2020</ref>
 
==Misc==
 
==Misc==
* [[Syzygy Bases]] using [[Syzygy Bases#Fathom|Fathom's]] probing code (9.65)  
+
* [[Syzygy Bases]] using [[Syzygy Bases#Fathom|Fathom's]] probing code (9.65), superseded by 7-men [[Syzygy Bases#Pyrrhic|Pyrrhic]] (12.50)
  
=See also=
+
=Publications=
* [[:Category:Astronomy|Astronomy]]
+
* [[Andrew Grant]] ('''2020'''). ''Evaluation & Tuning in Chess Engines''. <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74877 Evaluation & Tuning in Chess Engines] by [[Andrew Grant]], [[CCC]], August 24, 2020 </ref> <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75350 Ethereal Tuning - Data Dump] by [[Andrew Grant]], [[CCC]], October 10, 2020</ref>
  
 
=Forum Posts=
 
=Forum Posts=
==2016==
+
==2016 ...==
 
* [http://www.talkchess.com/forum/viewtopic.php?t=60023&start=18 Re: How to speed up my engine] by [[Günther Simon]], [[CCC]], May 03, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=60023&start=18 Re: How to speed up my engine] by [[Günther Simon]], [[CCC]], May 03, 2016
 
: [http://www.talkchess.com/forum/viewtopic.php?t=60023&start=19 Re: How to speed up my engine] by [[Andrew Grant]], [[CCC]], May 03, 2016
 
: [http://www.talkchess.com/forum/viewtopic.php?t=60023&start=19 Re: How to speed up my engine] by [[Andrew Grant]], [[CCC]], May 03, 2016
Line 57: Line 79:
 
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=7&t=8645 Ethereal - Official Release] by [[Andrew Grant]], [[Computer Chess Forums|CCRL Discussion Board]], June 25, 2016
 
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=7&t=8645 Ethereal - Official Release] by [[Andrew Grant]], [[Computer Chess Forums|CCRL Discussion Board]], June 25, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=61335 Release of Ethereal7.78] by [[Andrew Grant]], [[CCC]], September 04, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=61335 Release of Ethereal7.78] by [[Andrew Grant]], [[CCC]], September 04, 2016
==2017==
+
'''2017'''
 
* [http://www.talkchess.com/forum/viewtopic.php?t=64162 Official release of Ethereal8.16] by [[Andrew Grant]], [[CCC]], June 03, 2017
 
* [http://www.talkchess.com/forum/viewtopic.php?t=64162 Official release of Ethereal8.16] by [[Andrew Grant]], [[CCC]], June 03, 2017
 
* [http://www.talkchess.com/forum/viewtopic.php?t=65165 Ethereal8.28 Release] by [[Andrew Grant]], [[CCC]], September 13, 2017
 
* [http://www.talkchess.com/forum/viewtopic.php?t=65165 Ethereal8.28 Release] by [[Andrew Grant]], [[CCC]], September 13, 2017
Line 64: Line 86:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=65989 Ethereal 8.61 -- Small bugfix to 8.60] by [[Andrew Grant]], [[CCC]], December 12, 2017
 
* [http://www.talkchess.com/forum/viewtopic.php?t=65989 Ethereal 8.61 -- Small bugfix to 8.60] by [[Andrew Grant]], [[CCC]], December 12, 2017
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66099 Time Managment translating to SMP] by [[Andrew Grant]], [[CCC]], December 23, 2017 » [[Parallel Search]], [[Time Management]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66099 Time Managment translating to SMP] by [[Andrew Grant]], [[CCC]], December 23, 2017 » [[Parallel Search]], [[Time Management]]
==2018==
+
'''2018'''
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66606 Official Release of Ethereal9.00] by [[Andrew Grant]], [[CCC]], February 15, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66606 Official Release of Ethereal9.00] by [[Andrew Grant]], [[CCC]], February 15, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66882 Official Release of Ethereal9.30] by [[Andrew Grant]], [[CCC]], March 20, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66882 Official Release of Ethereal9.30] by [[Andrew Grant]], [[CCC]], March 20, 2018
Line 70: Line 92:
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67602&p=763874 Official Release of Ethereal 10.00 (Two-years Anniversary)] by [[Andrew Grant]], [[CCC]], May 30, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67602&p=763874 Official Release of Ethereal 10.00 (Two-years Anniversary)] by [[Andrew Grant]], [[CCC]], May 30, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67993&p=76840 Official Release of Ethereal 10.55] by [[Andrew Grant]], [[CCC]], July 16, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67993&p=76840 Official Release of Ethereal 10.55] by [[Andrew Grant]], [[CCC]], July 16, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68293 Ethereal 10.88 NUMA] by [[Norman Schmidt]], [[CCC]], August 24, 2018 » [[NUMA]]
 +
'''2019'''
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69669 Official Release of Ethereal 11.25] by [[Andrew Grant]], [[CCC]], January 21, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=72215 For those that like to toy with Ethereal...]  by [[Dann Corbit]], [[CCC]], October 30, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72299 Official Release of Ethereal 11.75, supporting MultiPV] by [[Andrew Grant]], [[CCC]], November 11, 2019
 +
==2020 ...==
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=73233 Official Release of Ethereal 12.00] by [[Andrew Grant]], [[CCC]], February 29, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=73629 Pawn structure tuning] by [[Vivien Clauzon]], [[CCC]],  April 11, 2020 » [[Pawn Structure]], [[Automated Tuning]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74809 Pyrrhic, Fathom for Humanoids] by [[Andrew Grant]], [[CCC]], August 16, 2020 » [[Syzygy Bases#Pyrrhic|Pyrrhic]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74877 Evaluation & Tuning in Chess Engines] by [[Andrew Grant]], [[CCC]], August 24, 2020 » [[Automated Tuning]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75047 Official Release of Ethereal 12.50] by [[Andrew Grant]], [[CCC]], September 08, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75159 Ethereal Pawn-King NN] by [[Andrew Grant]], [[CCC]], September 19, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335 Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], October 09, 2020
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335&start=91 Re: Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], October 09, 2020
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335&start=134 Re: Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], November 12, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75345 Request for someone to train an NNUE for Ethereal] by [[Andrew Grant]], [[CCC]], October 09, 2020 » [[NNUE]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75350 Ethereal Tuning - Data Dump] by [[Andrew Grant]], [[CCC]], October 10, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76049 Ethereal questions] by [[Gabor Szots]], [[CCC]], December 12, 2020
 +
'''2021'''
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77438 Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems] by [[Andrew Grant]], [[CCC]], June 04, 2021
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77438&start=17 Re: Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems] by [[Andrew Grant]], [[CCC]], June 04, 2021
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77503&start=55 Re: will Tcec allow Stockfish with a Leela net to play?] by [[Connor McMonigle]], [[CCC]], June 17, 2021 » [[NNUE]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77571 I declare that HCE is dead...] by [[Andrew Grant]], [[CCC]], June 29, 2021 » [[Evaluation|HCE]], [[NNUE]]
 +
'''2022'''
 +
* [https://www.talkchess.com/forum3/viewtopic.php?f=7&t=79160 Resolving once in a trillion crashes] by [[Andrew Grant]], [[CCC]], January 18, 2022 » [[Debugging]]
 +
* [https://www.talkchess.com/forum3/viewtopic.php?f=2&t=79179 Commercial Release of Ethereal 13.50] by [[Andrew Grant]], [[CCC]], January 20, 2022
 +
'''2023'''
 +
* [https://talkchess.com/forum3/viewtopic.php?f=2&t=82750 Commercial Release of Ethereal 14.25] by [[Andrew Grant]], [[CCC]], October 21, 2023
  
 
=External Links=
 
=External Links=
 
==Chess Engine==
 
==Chess Engine==
 +
* [http://chess.grantnet.us/Ethereal/ Ethereal 13.00 (NNUE)]
 
* [https://github.com/AndyGrant/Ethereal GitHub - AndyGrant/Ethereal: Ethereal UCI Chess Engine]
 
* [https://github.com/AndyGrant/Ethereal GitHub - AndyGrant/Ethereal: Ethereal UCI Chess Engine]
* [http://www.computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Ethereal&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Ethereal] in [[CCRL|CCRL 40/4]]
+
* [http://www.computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Ethereal&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Ethereal] in [[CCRL|CCRL Blitz]]
 +
* [http://www.computerchess.org.uk/ccrl/4040/cgi/compare_engines.cgi?family=Ethereal&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Ethereal] in [[CCRL|CCRL 40/15]]
 +
* [http://www.chessdom.com/ethereal-wins-tcec-division-4/ Ethereal wins TCEC Division 4], Interview with [[Andrew Grant]], [[Chessdom]], April 30, 2018 » [[TCEC Season 12]]
 +
* [http://www.chessdom.com/ethereal-chess-engine-leads-tcec-div-3-convincingly/ Ethereal chess engine leads TCEC Div 3 convincingly], [[Chessdom]], August 12, 2018 » [[TCEC Season 13]]
 +
* [http://www.chessdom.com/ethereal-chess-engine-wins-the-gold-at-tcec-div-3/ Ethereal chess engine wins the gold at TCEC Div 3], [[Chessdom]], August 17, 2018
 
==Misc==
 
==Misc==
 
* [https://en.wiktionary.org/wiki/ethereal ethereal - Wiktionary]
 
* [https://en.wiktionary.org/wiki/ethereal ethereal - Wiktionary]
Line 83: Line 138:
 
* [https://www.truth-is-beauty.com/blog/style-identities-the-ethereal The Ethereal] from [https://www.truth-is-beauty.com/home.html Truth is Beauty], July 07, 2015
 
* [https://www.truth-is-beauty.com/blog/style-identities-the-ethereal The Ethereal] from [https://www.truth-is-beauty.com/home.html Truth is Beauty], July 07, 2015
 
* [[:Category:Jean-Luc Ponty|Jean-Luc Ponty]] - [https://en.wikipedia.org/wiki/Cosmic_Messenger Ethereal Mood] (1978), [https://en.wikipedia.org/wiki/YouTube YouTube] Video
 
* [[:Category:Jean-Luc Ponty|Jean-Luc Ponty]] - [https://en.wikipedia.org/wiki/Cosmic_Messenger Ethereal Mood] (1978), [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: {{#evu:https://www.youtube.com/watch?v=JwibRL7Eqq4|alignment=left|valignment=top}}
+
: {{#evu:https://www.youtube.com/watch?v=Va5_Y4QS3Eo|alignment=left|valignment=top}}
  
 
=References=  
 
=References=  
 
<references />
 
<references />
 
 
'''[[Engines|Up one Level]]'''
 
'''[[Engines|Up one Level]]'''
 +
[[Category:Open Source]]
 +
[[Category:GPL]]
 +
[[Category:UCI]]
 +
[[Category:PC]]
 +
[[Category:X86]]
 +
[[Category:X64]]
 +
[[Category:Linux]]
 +
[[Category:Windows]]
 +
[[Category:Chess960]]
 +
[[Category:OpenBench]]
 +
[[Category:Commercial]]
 +
[[Category:NNUE]]
 
[[Category:Jean-Luc Ponty]]
 
[[Category:Jean-Luc Ponty]]
 
[[Category:Astronomy]]
 
[[Category:Astronomy]]
[[Category:UCI]]
 
[[Category:Open Source]]
 
[[Category:GPL]]
 

Latest revision as of 09:37, 21 October 2023

Home * Engines * Ethereal

Ethereal night sky [1]

Ethereal,
an UCI compliant open source chess engine written by Andrew Grant in C, licensed under the GNU GPL and first officially released in June 2016 [2]. Ethereal is greatly influenced from Crafty, Stockfish, TSCP, MadChess, and Fruit [3]. On October 09, 2020, Andrew Grant initially announced his withdrawal from Ethereal's development with the releases of Ethereal V12.75 [4] and Ethereal 12.75 SF-NNUE, the latter a NNUE implementation based on Stockfish NNUE, to deliberately demonstrate how everybody may considerably improve the playing strength of their engines without much effort [5]. However, Andrew Grant voted for another direction, and announced a commercial release of Ethereal 13.00 (NNUE) , the free standard version still available on Github [6].

Ethereal 13 (NNUE)

Ethereal 13 (NNUE), the commercial Ethereal version for AVX2 systems was released on June 04, 2021. The program comes with two NNUEs for evaluation, one for standard chess, and the secondary network trained exclusively for Chess960. The NNUEs are not derived from, trained on, nor duplicated from the works of the Stockfish team [6]. Andrew Grant on his NNUE approach [7]:

Ethereal is using the HalfKP paradigm, with a 40960x256 -> 512x32x32x1 Network. This is the textbook approach, but with some changes. Firstly, not all weights are quantized to int8 / int16 for the input layer. Instead, the network goes like this: int16_t => int16_t => (int32_t -> float_t) => float_t => float_t. This approach allows us to never have to pack the data downwards, saving many operations, and also lets us take a slightly more expensive approach to the later layers in exchange for massively increased precision. If I eventually add support for AVX (not avx2) machines, it will be a significant gain as AVX does not have 256-bit vector support for integer types in a meaningful way.
During training the Network actually has 43850 input parameters, using a few factorization of the board to aid in training without having tens of billions of positions. In practice, each Net was trained somewhere between 2 and 4 billion positions total, evaluated by Ethereal / Ethereal NNUE. The networks are trained using a modified form of the Adam optimizer, which allows better performance for datasets with extremely sparse input fields. For example, with a Batch Size of 16384, only about 50% of the 43,850 parameters are used on average.
Data generation for a given network takes about 3 weeks, completed on a 104 core machine. From there, processing that data down into a list of FENs and then into the format used by Ethereal's NNTrainer takes another 12 hours or so. Finally, training the actual Network can take a few days, with many stops and starts to drop the learning rate and find a global optima.
The trainer itself is a fully original work, written in C and making use of all 104 threads. It includes some AVX2 and even AVX512 code for use in updating the network parameters. This toolkit was used in training the Halogen networks as well. It is fairly flexible and trying things like HalfKA, changing layer sizes, adding layers, changing activation functions, or adding more factorizers is only a few minutes of effort in the code. It rivals speeds of GPU based trainers, by leveraging massive SMP and efficient implementations.

Features

[8]

Board Representation

Search

Evaluation

Misc

Publications

Forum Posts

2016 ...

Re: How to speed up my engine by Andrew Grant, CCC, May 03, 2016

2017

2018

2019

2020 ...

Re: Final Release of Ethereal, V12.75 by Andrew Grant, CCC, October 09, 2020
Re: Final Release of Ethereal, V12.75 by Andrew Grant, CCC, November 12, 2020

2021

Re: Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems by Andrew Grant, CCC, June 04, 2021

2022

2023

External Links

Chess Engine

Misc

References

  1. A total eclipse of the Moon is an impressive spectacle. But it also provides another viewing opportunity: a dark, moonlight-free starry sky. At Cerro Paranal in the Chilean Atacama Desert, one of the most remote places in the world, the distance from sources of light pollution makes the night sky all the more remarkable during a total lunar eclipse. This panoramic photo, taken by ESO Photo Ambassador Yuri Beletsky, shows the view of the starry sky from the site of ESO’s Very Large Telescope (VLT) at Cerro Paranal during the total lunar eclipse of December 21, 2010. The reddish disc of the Moon is seen on the right of the image, while the Milky Way arches across the heavens in all its beauty. Another faint glow of light is also visible, surrounding the brilliant planet Venus in the bottom left corner of the picture. This phenomenon, known as zodiacal light, is produced by sunlight reflecting off dust in the plane of the planets. It is so faint that it’s normally obscured by moonlight or light pollution. Image by ESO, Yuri Beletsky, CC BY 4.0, Wikimedia Commons, Beauty from Wikipedia
  2. Ethereal - Official Release by Andrew Grant, CCRL Discussion Board, June 25, 2016
  3. Ethereal/README.md at master · AndyGrant/Ethereal · GitHub
  4. Final Release of Ethereal, V12.75 by Andrew Grant, CCC, October 09, 2020
  5. Re: Final Release of Ethereal, V12.75 by Andrew Grant, CCC, October 09, 2020
  6. 6.0 6.1 Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems by Andrew Grant, CCC, June 04, 2021
  7. Re: Commercial Release of Ethereal 13.00 (NNUE) for AVX2 Systems by Andrew Grant, CCC, June 04, 2021
  8. Features based on GitHub - AndyGrant/Ethereal: Ethereal UCI Chess Engine
  9. Ethereal's 8.60 Lazy SMP inspired by Demolito by Lucas Braesch, see Release of Ethereal 8.60 SMP by Andrew Grant, CCC, December 10, 2017
  10. Evaluation & Tuning in Chess Engines by Andrew Grant, CCC, August 24, 2020
  11. Ethereal Tuning - Data Dump by Andrew Grant, CCC, October 10, 2020
  12. Evaluation & Tuning in Chess Engines by Andrew Grant, CCC, August 24, 2020
  13. Ethereal Tuning - Data Dump by Andrew Grant, CCC, October 10, 2020

Up one Level