Difference between revisions of "Scorpio"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
(23 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
'''Scorpio''',<br/> | '''Scorpio''',<br/> | ||
− | a sophisticated [[Open Source | + | a sophisticated [[:Category:Open Source|open source chess engine]] by [[Daniel Shawul]], written in [[Cpp|C++]] and compliant to the [[Chess Engine Communication Protocol]] with builds running under [[Windows]] and [[Linux]]. Scorpio participated at the [[CCT9]], [[CCT11]] and [[CCT12]] [[Tournaments and Matches#online|online tournaments]], and played the [[ICT 2007]] over the board. It is base of Daniel's [[General Game Playing|general game playing]] engine [[Nebiyu]], able to play [[Chess#Variants|Chess variants]], [[Checkers]], [[Othello|Reversi]], [[Go]] and [[Amazons]] <ref>[http://sites.google.com/site/dshawul/home Scorpio Chess and Nebiyu Alien]</ref>. |
=Description= | =Description= | ||
Line 19: | Line 19: | ||
==Evaluation== | ==Evaluation== | ||
Scorpio's [[Evaluation|evaluation]] includes following features and techniques <ref>[https://github.com/dshawul/Scorpio/blob/master/eval.cpp Scorpio/eval.cpp at master · dshawul/Scorpio · GitHub]</ref> : | Scorpio's [[Evaluation|evaluation]] includes following features and techniques <ref>[https://github.com/dshawul/Scorpio/blob/master/eval.cpp Scorpio/eval.cpp at master · dshawul/Scorpio · GitHub]</ref> : | ||
+ | * [[NNUE]] (3.0.9) | ||
* [[Candidate Passed Pawn]] | * [[Candidate Passed Pawn]] | ||
* [[Evaluation Hash Table]] | * [[Evaluation Hash Table]] | ||
Line 38: | Line 39: | ||
''see main article [[Scorpio Bitbases]]'' | ''see main article [[Scorpio Bitbases]]'' | ||
− | Scorpio has its own [[Endgame Bitbases|endgame bitbase]] format, which might be probed by other programs via a [https://en.wikipedia.org/wiki/Library_%28computing%29#Shared_libraries shared library]. | + | Scorpio has its own [[Endgame Bitbases|endgame bitbase]] format, which might be probed by other programs via a [https://en.wikipedia.org/wiki/Library_%28computing%29#Shared_libraries shared library] '''egbbdll'''. |
+ | |||
+ | ==ScorpioNN== | ||
+ | The [[Neural Networks|neural network]] version of Scorpio '''2.9.0''' (2019) works using [[Scorpio#Bitbases|egbbdll]] shared library <ref>[https://github.com/dshawul/egbbdll GitHub - dshawul/egbbdll: Probing code for scorpio bitbases]</ref> that provides neural network inference via [https://en.wikipedia.org/wiki/TensorFlow TensorFlow] and/or ''TensorRT'' <ref>[https://developer.nvidia.com/tensorrt NVIDIA TensorRT | NVIDIA Developer]</ref> backends <ref>[https://github.com/dshawul/Scorpio#nns GitHub - dshawul/Scorpio: Scorpio chess engine - Neural Networks (NNs)]</ref>. | ||
+ | |||
+ | ==ScorpioNNUE== | ||
+ | With the the advent of [[NNUE]] and its huge success in [[Stockfish NNUE]], [[CFish#NNUE|CFish NNUE]] and other engines, [[Daniel Shawul]] added NNUE support à la CFish into his [[Scorpio#Bitbases|egbbdll]] probing library <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75400&start=22 Re: Hacking around CFish NNUE] by [[Daniel Shawul]], [[CCC]], October 15, 2020</ref> <ref>[https://github.com/dshawul/nnue-probe GitHub - dshawul/nnue-probe]</ref>, and reported more than 400 Elo out of his implementation with a shared library with Scorpio '''3.0.9''' <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75415&start=3 Re: How to scale stockfish NNUE score?] by [[Daniel Shawul]], [[CCC]], October 17, 2020</ref>. | ||
=See also= | =See also= | ||
− | * [[ | + | * [[BBC#NNUE|BBC NNUE]] |
− | |||
* [[DanChess]] | * [[DanChess]] | ||
− | * [[ | + | * [[Nebiyu]] |
=Dedicated Namesake= | =Dedicated Namesake= | ||
Line 62: | Line 68: | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=18497 Scorpio 2.0 Windows x64 build available] by [[Jim Ablett]], [[CCC]], December 22, 2007 | * [http://www.talkchess.com/forum/viewtopic.php?t=18497 Scorpio 2.0 Windows x64 build available] by [[Jim Ablett]], [[CCC]], December 22, 2007 | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=18506 Scorpio 64 bit questions] by [[Denis Mendoza|Denis P. Mendoza]], [[CCC]], December 23, 2007 | * [http://www.talkchess.com/forum/viewtopic.php?t=18506 Scorpio 64 bit questions] by [[Denis Mendoza|Denis P. Mendoza]], [[CCC]], December 23, 2007 | ||
+ | * [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=49618 Interesting Scorpio design] by [[Kerwin Medina]], [[Computer Chess Forums|Winboard Forum]], November 05, 2008 » [[Iterative Search]] | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=24146 Scorpio 202 Under Linux Resolved] by [[Joshua Shriver]], [[CCC]], October 03, 2008 | * [http://www.talkchess.com/forum/viewtopic.php?t=24146 Scorpio 202 Under Linux Resolved] by [[Joshua Shriver]], [[CCC]], October 03, 2008 | ||
==2010 ...== | ==2010 ...== | ||
Line 73: | Line 80: | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=65599 Happy halloween - scorpio 2.7.8] by [[Daniel Shawul]], [[CCC]], October 31, 2017 | * [http://www.talkchess.com/forum/viewtopic.php?t=65599 Happy halloween - scorpio 2.7.8] by [[Daniel Shawul]], [[CCC]], October 31, 2017 | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=66032 Scorpio 2.7.9] by [[Daniel Shawul]], [[CCC]], December 16, 2017 | * [http://www.talkchess.com/forum/viewtopic.php?t=66032 Scorpio 2.7.9] by [[Daniel Shawul]], [[CCC]], December 16, 2017 | ||
− | * [http://www.talkchess.com/forum/viewtopic.php?t=66414 Alpha-Beta as a rollouts algorithm] by [[Daniel Shawul]], [[CCC]], January 25, 2018 » | + | '''2018''' |
+ | * [http://www.talkchess.com/forum/viewtopic.php?t=66414 Alpha-Beta as a rollouts algorithm] by [[Daniel Shawul]], [[CCC]], January 25, 2018 » [[Alpha-Beta]], [[MCαβ]], [[Monte-Carlo Tree Search]] | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=66552 Scorpio 2.8] by [[Daniel Shawul]], [[CCC]], February 10, 2018 | * [http://www.talkchess.com/forum/viewtopic.php?t=66552 Scorpio 2.8] by [[Daniel Shawul]], [[CCC]], February 10, 2018 | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=66886 comparing minimax and averaging MCTS with alphabeta rollouts] by [[Daniel Shawul]], [[CCC]], March 20, 2018 » [[Monte-Carlo Tree Search]] | * [http://www.talkchess.com/forum/viewtopic.php?t=66886 comparing minimax and averaging MCTS with alphabeta rollouts] by [[Daniel Shawul]], [[CCC]], March 20, 2018 » [[Monte-Carlo Tree Search]] | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68119 Instruction for running Scorpio with neural network on linux] by [[Daniel Shawul]], [[CCC]], August 01, 2018 » [[Neural Networks]] | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=68362 Multithreaded batching on GPU for montecarlo and also alpha-beta] by [[Daniel Shawul]], [[CCC]], September 03, 2018 | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68393 Scorpio 2.8.7 MCTS+NN windows version] by [[Daniel Shawul]], [[CCC]], September 08, 2018 | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68595 Scorpio 2.8.9 with TensorRT support] by [[Daniel Shawul]], [[CCC]], October 07, 2018 | ||
+ | '''2019''' | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71295 How to get ScorpioNN to work?] by [[Torsten Schoop]], [[CCC]], July 16, 2019 | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71575 Scorpio 3.0] by [[Daniel Shawul]], [[CCC]], August 16, 2019 | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72018 Scorpio 3.0.2] by [[Werner Schüle]], [[CCC]], October 06, 2019 | ||
+ | ==2020 ...== | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75400&start=22 Re: Hacking around CFish NNUE] by [[Daniel Shawul]], [[CCC]], October 15, 2020 | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75415&start=3 Re: How to scale stockfish NNUE score?] by [[Daniel Shawul]], [[CCC]], October 17, 2020 | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77348 NNUE scoring (egbb lib)] by [[Michael Hoffmann|Desperado]], [[CCC]], May 19, 2021 » [[NNUE]],[[#ScorpioNNUE|Scorpio NNUE]] | ||
+ | * [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=77503&start=63 Re: will Tcec allow Stockfish with a Leela net to play?] by [[Daniel Shawul]], [[CCC]], June 18, 2021 | ||
+ | * [https://www.talkchess.com/forum3/viewtopic.php?f=7&t=75506&start=40 Re: NNUE Question - King Placements] by [[Daniel Shawul]], July 01, 2021 » [[#ScorpioNNUE|ScorpioNNUE]] | ||
=External Links= | =External Links= | ||
Line 81: | Line 104: | ||
* [http://sites.google.com/site/dshawul/home Scorpio Chess and Nebiyu Alien] | * [http://sites.google.com/site/dshawul/home Scorpio Chess and Nebiyu Alien] | ||
* [https://github.com/dshawul/Scorpio dshawul/Scorpio · GitHub] | * [https://github.com/dshawul/Scorpio dshawul/Scorpio · GitHub] | ||
+ | * [https://github.com/dshawul/egbbdll GitHub - dshawul/egbbdll: Probing code for scorpio bitbases] | ||
+ | * [https://github.com/dshawul/nn-probe GitHub - dshawul/nn-probe: Library for probing neural networks] | ||
+ | * [https://github.com/dshawul/nnue-probe GitHub - dshawul/nnue-probe: for probing NNUE] | ||
* [http://wbec-ridderkerk.nl/html/details1/Scorpio.html Engine: Scorpio] from [[WBEC|WBEC Ridderkerk]] | * [http://wbec-ridderkerk.nl/html/details1/Scorpio.html Engine: Scorpio] from [[WBEC|WBEC Ridderkerk]] | ||
− | |||
* [http://www.chessgames.com/perl/chessplayer?pid=111050 The chess games of Scorpio] from [http://www.chessgames.com/index.html chessgames.com] | * [http://www.chessgames.com/perl/chessplayer?pid=111050 The chess games of Scorpio] from [http://www.chessgames.com/index.html chessgames.com] | ||
==Misc== | ==Misc== | ||
Line 89: | Line 114: | ||
* [https://en.wikipedia.org/wiki/Scorpion Scorpion from Wikipedia] | * [https://en.wikipedia.org/wiki/Scorpion Scorpion from Wikipedia] | ||
* [https://en.wikipedia.org/wiki/Scorpion_%28disambiguation%29 Scorpion (disambiguation) from Wikipedia] | * [https://en.wikipedia.org/wiki/Scorpion_%28disambiguation%29 Scorpion (disambiguation) from Wikipedia] | ||
+ | * [https://en.wikipedia.org/wiki/Arthur_Jones_(musician) Arthur Jones] - Scorpio (1969), [https://en.wikipedia.org/wiki/YouTube YouTube] Video | ||
+ | : feat. [https://en.wikipedia.org/wiki/Beb_Gu%C3%A9rin Beb Guérin] and [https://de.wikipedia.org/wiki/Claude_Delcloo Claude Delcloo] | ||
+ | : {{#evu:https://www.youtube.com/watch?v=EQDLkdCX7Hc|alignment=left|valignment=top}} | ||
=References= | =References= | ||
Line 94: | Line 122: | ||
'''[[Engines|Up one level]]''' | '''[[Engines|Up one level]]''' | ||
+ | [[Category:Open Source]] | ||
+ | [[Category:WinBoard]] | ||
+ | [[Category:XBoard]] | ||
+ | [[Category:NN]] | ||
+ | [[Category:NNUE]] | ||
+ | [[Category:MCTS]] | ||
+ | [[Category:X86]] | ||
+ | [[Category:X64]] | ||
+ | [[Category:GPU]] | ||
+ | [[Category:PC]] | ||
+ | [[Category:Windows]] | ||
+ | [[Category:Linux]] | ||
+ | [[Category:Mac]] | ||
+ | [[Category:Arthropod]] | ||
+ | [[Category:Astronomy]] | ||
+ | [[Category:Mythology]] | ||
+ | [[Category:Music]] |
Latest revision as of 17:35, 16 March 2022
Scorpio,
a sophisticated open source chess engine by Daniel Shawul, written in C++ and compliant to the Chess Engine Communication Protocol with builds running under Windows and Linux. Scorpio participated at the CCT9, CCT11 and CCT12 online tournaments, and played the ICT 2007 over the board. It is base of Daniel's general game playing engine Nebiyu, able to play Chess variants, Checkers, Reversi, Go and Amazons [2].
Contents
Description
Board Representation
Scorpio combines Bitboards with a 0x88 board representation, and the coordinate transformation in scanning bits along with the lookup of the De Bruijn multiplication. The "unique" 64-bit routine was generated with the help of the De Bruijn Sequence Generator passing Daniel's birth date [3] . Magic bitboard implementation by Pradu Kannan [4] . Thanks for the acknowledgment of both!
Distributed Search
Scorpio performs a distributed search [5] [6] around an iterative depth-first search framework [7] :
Scorpio uses a decentralized approach (p2p) where neither memory nor jobs are centralized. Each host could have multiple processors in which case shared memory search (centralized search with threads) will be used. One processor per node will be started by mpirun, then each process at each node will create enough threads to engage all its processors.
MCTS
Scorpio 2.7.9, released in December 2017, optionally features a Monte-Carlo Tree Search (MCTS) [8]. Scorpio 2.8 in February 2018, MCTS with alpha-beta rollouts as suggested Bojun Huang [9]. The parallel search for MCTS uses virtual loss to distribute work among threads in standard MCTS rollouts, and ABDADA like BUSY flag for alpha-beta rollouts. ABDADA and parallel MCTS from the Go world are very similar in nature [10].
Evaluation
Scorpio's evaluation includes following features and techniques [11] :
- NNUE (3.0.9)
- Candidate Passed Pawn
- Evaluation Hash Table
- King Safety
- Lazy Evaluation
- Material
- Mobility of bishops and knights
- Outposts
- Passed Pawn
- Pawn Hash Table
- Pawn Structure
- Piece-Square Tables
- Rook on Open File
- Rook on Seventh
- Tapered Eval
- Trapped Pieces
Bitbases
see main article Scorpio Bitbases
Scorpio has its own endgame bitbase format, which might be probed by other programs via a shared library egbbdll.
ScorpioNN
The neural network version of Scorpio 2.9.0 (2019) works using egbbdll shared library [12] that provides neural network inference via TensorFlow and/or TensorRT [13] backends [14].
ScorpioNNUE
With the the advent of NNUE and its huge success in Stockfish NNUE, CFish NNUE and other engines, Daniel Shawul added NNUE support à la CFish into his egbbdll probing library [15] [16], and reported more than 400 Elo out of his implementation with a shared library with Scorpio 3.0.9 [17].
See also
Dedicated Namesake
Forum Posts
2005 ...
- Scorpio chess engine by Daniel Shawul by Dann Corbit, CCC, April 18, 2005
- Scorpio chess engine by Daniel Shawul by Dann Corbit, Winboard Forum, April 19, 2005
- Gauntlet Scorpio v1.0 - games - new entry! by Karl-Heinz Söntges, CCC, April 21, 2005
- Gauntlet Scorpio v1.1 - games - replaced DanChess by Karl-Heinz Söntges, CCC, June 02, 2005
- Scorpio 1.3 looks promising by Dann Corbit, CCC, June 29, 2005
- Scorpio 1.5 is very strong! by Ómar Skúlason, CCC, August 22, 2005
- Has anyone tried the Scorpio engine? by Lance Perkins, CCC, October 05, 2005
- Standardgauntlet - Scorpio is fighting for a place in the sun ! by Karl-Heinz Söntges, CCC, February 26, 2006
- Special Scorpio 1.91 build for Core2Duo/Quad/Xeon by Jim Ablett, CCC, July 21, 2007
- Scorpio 2.0 Windows x64 build available by Jim Ablett, CCC, December 22, 2007
- Scorpio 64 bit questions by Denis P. Mendoza, CCC, December 23, 2007
- Interesting Scorpio design by Kerwin Medina, Winboard Forum, November 05, 2008 » Iterative Search
- Scorpio 202 Under Linux Resolved by Joshua Shriver, CCC, October 03, 2008
2010 ...
- asynchronous search by Daniel Shawul, CCC, April 6, 2010
- Scorpio 2.6 JA available by Jim Ablett, CCC, June 25, 2010
- Scorpio 2.7 Linux by Jon Dart, CCC, December 02, 2011
- Scorpio Chess 2.7 by Jim Ablett is out by Norbert Raimund Leisner, CCC, January 24, 2012
2015 ...
- scorpio can run on 8192 cores by Daniel Shawul, CCC, August 22, 2015
- Scorpio 2.7.7 by Krzysztof Grzelak, CCC, March 21, 2016
- Happy halloween - scorpio 2.7.8 by Daniel Shawul, CCC, October 31, 2017
- Scorpio 2.7.9 by Daniel Shawul, CCC, December 16, 2017
2018
- Alpha-Beta as a rollouts algorithm by Daniel Shawul, CCC, January 25, 2018 » Alpha-Beta, MCαβ, Monte-Carlo Tree Search
- Scorpio 2.8 by Daniel Shawul, CCC, February 10, 2018
- comparing minimax and averaging MCTS with alphabeta rollouts by Daniel Shawul, CCC, March 20, 2018 » Monte-Carlo Tree Search
- Instruction for running Scorpio with neural network on linux by Daniel Shawul, CCC, August 01, 2018 » Neural Networks
- Multithreaded batching on GPU for montecarlo and also alpha-beta by Daniel Shawul, CCC, September 03, 2018
- Scorpio 2.8.7 MCTS+NN windows version by Daniel Shawul, CCC, September 08, 2018
- Scorpio 2.8.9 with TensorRT support by Daniel Shawul, CCC, October 07, 2018
2019
- How to get ScorpioNN to work? by Torsten Schoop, CCC, July 16, 2019
- Scorpio 3.0 by Daniel Shawul, CCC, August 16, 2019
- Scorpio 3.0.2 by Werner Schüle, CCC, October 06, 2019
2020 ...
- Re: Hacking around CFish NNUE by Daniel Shawul, CCC, October 15, 2020
- Re: How to scale stockfish NNUE score? by Daniel Shawul, CCC, October 17, 2020
- NNUE scoring (egbb lib) by Desperado, CCC, May 19, 2021 » NNUE,Scorpio NNUE
- Re: will Tcec allow Stockfish with a Leela net to play? by Connor McMonigle, CCC, June 17, 2021 » NNUE
- Re: will Tcec allow Stockfish with a Leela net to play? by Daniel Shawul, CCC, June 18, 2021
- Re: NNUE Question - King Placements by Daniel Shawul, July 01, 2021 » ScorpioNNUE
External Links
Chess Engine
- Scorpio Chess and Nebiyu Alien
- dshawul/Scorpio · GitHub
- GitHub - dshawul/egbbdll: Probing code for scorpio bitbases
- GitHub - dshawul/nn-probe: Library for probing neural networks
- GitHub - dshawul/nnue-probe: for probing NNUE
- Engine: Scorpio from WBEC Ridderkerk
- The chess games of Scorpio from chessgames.com
Misc
- Scorpio (astrology) from Wikipedia
- Scorpius from Wikipedia
- Scorpion from Wikipedia
- Scorpion (disambiguation) from Wikipedia
- Arthur Jones - Scorpio (1969), YouTube Video
- feat. Beb Guérin and Claude Delcloo
References
- ↑ Scorpio symbol, Book of Hours, the Falstof Master, Bodleian Library, Oxford, Scorpio (astrology) from Wikipedia
- ↑ Scorpio Chess and Nebiyu Alien
- ↑ Scorpio/scorpio.h at master · dshawul/Scorpio · GitHub
- ↑ Scorpio/magics.cpp at master · dshawul/Scorpio · GitHub
- ↑ Scorpio/parallel.cpp at master · dshawul/Scorpio · GitHub
- ↑ asynchronous search by Daniel Shawul, CCC, April 6, 2010
- ↑ Scorpio/search.cpp at master · dshawul/Scorpio · GitHub
- ↑ Scorpio 2.7.9 by Daniel Shawul, CCC, December 16, 2017
- ↑ Bojun Huang (2015). Pruning Game Tree by Rollouts. AAAI
- ↑ Scorpio 2.8 by Daniel Shawul, CCC, February 10, 2018
- ↑ Scorpio/eval.cpp at master · dshawul/Scorpio · GitHub
- ↑ GitHub - dshawul/egbbdll: Probing code for scorpio bitbases
- ↑ NVIDIA TensorRT | NVIDIA Developer
- ↑ GitHub - dshawul/Scorpio: Scorpio chess engine - Neural Networks (NNs)
- ↑ Re: Hacking around CFish NNUE by Daniel Shawul, CCC, October 15, 2020
- ↑ GitHub - dshawul/nnue-probe
- ↑ Re: How to scale stockfish NNUE score? by Daniel Shawul, CCC, October 17, 2020