Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
538 commits
Select commit Hold shift + click to select a range
9786942
Time-out readyok thread (#98)
QueensGambit May 5, 2021
93b12e0
update engine version to 0.9.2
QueensGambit May 5, 2021
d5da8c1
* update to engine version 0.9.2.post0 (#99)
QueensGambit May 6, 2021
e254e69
Simplified state interface (#100)
QueensGambit May 8, 2021
9ad8807
removed inCheck from unit tests (#100)
QueensGambit May 8, 2021
eaa6465
Syzygy probe fix (#102)
QueensGambit May 9, 2021
157a870
Fix potential crash (#103)
QueensGambit May 9, 2021
53f252e
added nullptr check (#103)
QueensGambit May 9, 2021
15b7d7b
deactivate Timeout_MS thread for value 0 (#99)
QueensGambit May 10, 2021
ed7b13a
reply "readyok" only once (#99)
QueensGambit May 12, 2021
ff89157
Rise v3.3 (#104)
QueensGambit May 13, 2021
c3132c1
addresses automatic code review for #104
QueensGambit May 13, 2021
94e1a89
Author information (#106)
QueensGambit May 13, 2021
c0386ed
Racing kings - no board flip (#107)
QueensGambit May 14, 2021
6884a36
make sure bestMoveIdx != bestQIdx for veto move (#86)
QueensGambit May 15, 2021
ac182a7
synchronize gc for RL (#97)
QueensGambit May 15, 2021
e172465
Terminal TB nodes (#108)
QueensGambit May 15, 2021
2182cae
fix play_move_and_update() because of #100
QueensGambit May 15, 2021
d18bdf0
Chess960 support (#110)
magehrke May 16, 2021
97784f2
fix && into || for #110
QueensGambit May 17, 2021
e489f77
move add_new_node_to_tree() to node.cpp (#97)
QueensGambit May 17, 2021
8f107be
removed assert (#97)
QueensGambit May 17, 2021
d1bb836
Important info string messages (#111)
QueensGambit May 18, 2021
cdf0eeb
Bugfix MCGS Solver (#112)
QueensGambit May 18, 2021
aac56a2
Docker debug utilities (#113)
QueensGambit May 19, 2021
25030f9
updated Dockerfile (#113)
QueensGambit May 19, 2021
72cc4ff
updated Dockerfile (#113)
QueensGambit May 19, 2021
05c27ab
address code review for #110
QueensGambit May 19, 2021
bd64c18
allow using movetime and nodes as termination
QueensGambit May 19, 2021
7689981
overwrite Fixed_Movetime for go infinite
QueensGambit May 19, 2021
f519fa5
Shared pointer graph refactoring (#114)
QueensGambit May 21, 2021
1eda9a4
set default value for Timeout_MS to 0
QueensGambit May 22, 2021
82e9533
Reached tablebases funtionality (#116)
QueensGambit May 24, 2021
7329a1e
fix bug introduced in #110 when building in MODE_CRAZYHOUSE
QueensGambit May 24, 2021
3132a8e
Release 0.9.3 (#117)
QueensGambit May 24, 2021
9ebcaaa
Setting UCI_Variant and Model_Directory dynamically (#118)
magehrke May 25, 2021
21dca2c
Fix antichess representation (UCI) (#119)
magehrke May 25, 2021
936ba6c
Chess input representation v2.1 (#120)
QueensGambit May 26, 2021
e9933fa
fix normalize material (#120)
QueensGambit May 26, 2021
a3680f0
Generate random initialized neural network (#121)
QueensGambit May 27, 2021
81ec662
Chess input representation v2.7 (#122)
QueensGambit May 28, 2021
f9c8b3c
WDLP value head (#123)
QueensGambit May 29, 2021
6e83a0d
update main_config_template.py (#123)
QueensGambit May 29, 2021
4872f78
Shared pointer atomic operation (#124)
QueensGambit May 29, 2021
d4c45d2
Chess input representation v2.8 (#125)
QueensGambit May 30, 2021
a01ece0
add constants for subversions
QueensGambit May 31, 2021
37d1f9a
disable correctly TB_DRAW and TB_LOSS in TB_WIN positions
QueensGambit May 31, 2021
6b84a0f
do not apply softmax twice (#123)
QueensGambit May 31, 2021
8007fa0
removed wld_softmax (#123)
QueensGambit May 31, 2021
fb95a6f
Update Timemanagement Constants (#126)
QueensGambit Jun 1, 2021
ae12430
Retrieve neural network indices in TensorrtAPI (#127)
QueensGambit Jun 2, 2021
39902c9
added missing ')' for MCTS_SINGLE_PLAYER
QueensGambit Jun 2, 2021
7a99d9b
Release 0.9.4 (#128)
QueensGambit Jun 3, 2021
b95a8bf
FEN, PGN and arena adjustments for Chess960 (#129)
magehrke Jun 8, 2021
51c50af
RL Logging: Found tablebases and Configs (#130)
magehrke Jun 8, 2021
6fdf97d
Revert "RL Logging: Found tablebases and Configs (#130)" (#131)
QueensGambit Jun 8, 2021
0067816
RL Logging: Found tablebases and Configs 2.0 (#132)
magehrke Jun 8, 2021
51bb64f
Speed Optimization: get_state_planes() (#133)
QueensGambit Jun 8, 2021
7000731
Chess input representation v3.0 (#134)
QueensGambit Jun 9, 2021
51ef9f2
Time management refactoring & bugfix (#136)
QueensGambit Jun 11, 2021
7ab04a7
Mirror policy (#137)
QueensGambit Jun 13, 2021
ef70e4d
add mirrorPolicy in RL data export (#137)
QueensGambit Jun 13, 2021
c8114d6
updated README
QueensGambit Jun 14, 2021
1207be5
updated README
QueensGambit Jun 14, 2021
eaf4473
backward compatibility for RISEv2 (#123)
QueensGambit Jun 15, 2021
a40920c
init rootState before rootNode (#137)
QueensGambit Jun 15, 2021
1565438
only use bound check for time != 0 (#136)
QueensGambit Jun 16, 2021
81d389f
replaced searchSettings->batchSize*2 by terminalNodeCache
QueensGambit Jun 16, 2021
8d53870
Saving intermediate model files and delete them after training (#138)
magehrke Jun 21, 2021
1ea250b
fix fallback of nn-indices (#65)
QueensGambit Jun 26, 2021
a5a6767
GitHub Actions / CI (#139)
QueensGambit Jun 29, 2021
939663f
updated working-dir (#139)
QueensGambit Jun 29, 2021
4d0d941
updated CI-badge (#139)
QueensGambit Jun 29, 2021
3b88750
added submodules (#139)
QueensGambit Jun 29, 2021
5e643cc
added "return NO_RESULT" (#139)
QueensGambit Jun 29, 2021
aa86385
added .codacy.yml
QueensGambit Jun 29, 2021
bf482df
Fix channel ordering for flip_board() == False (#140)
QueensGambit Jun 30, 2021
9deb935
moved function definition (#140)
QueensGambit Jun 30, 2021
6690a51
Version Backward Compability (#141)
QueensGambit Jun 30, 2021
30a65af
3rdParty Blaze Dependency (#142)
QueensGambit Jun 30, 2021
e3a1988
CI for Variants (#143)
QueensGambit Jun 30, 2021
f427812
update README.md
QueensGambit Jun 30, 2021
a075dd9
updated download_png_files.sh
QueensGambit Jul 1, 2021
4f140df
use custom_initialize() for MXNetAPI (#141)
QueensGambit Jul 2, 2021
77ce854
Variant input changes (#145)
magehrke Jul 3, 2021
d6ac6b8
update MV-SF dependency (https://github.com/QueensGambit/Stockfish/pu…
QueensGambit Jul 8, 2021
4d768b3
Open_Spiel Stratego implementation (#146)
BluemlJ Jul 12, 2021
c588007
Updated .gitmodules
QueensGambit Jul 14, 2021
49ca273
Update README
QueensGambit Jul 25, 2021
d8840ec
Update README
QueensGambit Jul 25, 2021
3893abd
TensorRT 8.0 Compability (Closes #109)
QueensGambit Aug 1, 2021
fd7eb32
Removed mapping from "giveaway" and "losers" to antichess
QueensGambit Aug 3, 2021
8ec2938
Updated generate_random_nn.py
QueensGambit Aug 4, 2021
e91aeac
Input Representation Version Parsing (#148)
QueensGambit Aug 17, 2021
8c5f87a
Single Move Evaluation (#149)
QueensGambit Aug 18, 2021
5e50123
Include binary name in Model_Directory and miscellaneous (#150)
QueensGambit Aug 20, 2021
3c5bdb7
added MultiAra logo
QueensGambit Aug 20, 2021
5207d88
updated MCTSAgentBatch
QueensGambit Aug 22, 2021
87672f0
Updated README
QueensGambit Aug 26, 2021
0f3d60f
Updated mxnetapi.cpp
QueensGambit Aug 26, 2021
13cbdc2
OpenVino Backend (#153)
QueensGambit Sep 2, 2021
306049a
add "Threads_NN_Inference" to optionsuci.cpp (#153)
QueensGambit Sep 4, 2021
4fe9d24
Small changes to make it easier to use StrategoEvaluator with Strateg…
BluemlJ Sep 21, 2021
f7d472a
removed samplesCommon::setAllTensorScales()
QueensGambit Oct 15, 2021
82004ed
Child Search Threads (#160)
QueensGambit Nov 1, 2021
c10c056
addressed code review for (#160)
QueensGambit Nov 1, 2021
e024a86
renamed UCI-Option "ChildThreads" into "Child_Threads"
QueensGambit Nov 1, 2021
d27365d
avoid double free error for newer TensorRT >= 8.2.0.6
QueensGambit Nov 1, 2021
7c3fb3d
removed get_avg_depth() implementation
QueensGambit Nov 1, 2021
c38249a
updated sample_prediction.ipynb
QueensGambit Nov 10, 2021
6c1f0b9
added missing "OpenSpielState::"
QueensGambit Nov 16, 2021
897f28a
removed transposition table usage from SEARCH_UCT
QueensGambit Nov 16, 2021
9c1db1e
added currentVariant to OpenSpielState
QueensGambit Nov 16, 2021
705c91b
added MCTS_STORE_STATES as CMake option
QueensGambit Nov 17, 2021
fabfaf3
State variants (#162)
QueensGambit Nov 24, 2021
60e66d5
bumped ClassicAra version to 0.9.8
QueensGambit Dec 19, 2021
160a5fc
TensorRT API Update (#164)
QueensGambit Jan 14, 2022
0480f45
reverted mcts limit condition (#165)
QueensGambit Jan 18, 2022
9abbdb3
Avoid repeating positions in Xiangqi (closes #101) (#166)
QueensGambit Jan 28, 2022
8975680
Update RL-README
QueensGambit Jan 28, 2022
8efb552
Handle flooding of UCI-commands (close #81) (#167)
QueensGambit Feb 11, 2022
a0d0a95
Bumb version to 0.9.9
QueensGambit Feb 13, 2022
1ea9a0d
Use default batch size 16 for OPEN_VINO
QueensGambit Feb 13, 2022
7e85a42
Fix compilation issues of XiangqiAra for Windows
QueensGambit Feb 14, 2022
bc1c882
Fix terminal solver for MCTS_SINGLE_PLAYER (#168)
QueensGambit Feb 16, 2022
2696cc3
fixed params file selection from the main_config (#171)
bingobongomann Mar 25, 2022
067a31d
Remove dependency of SF for non chess related environments (#169)
QueensGambit Mar 29, 2022
bba201e
Update Dockerfile
QueensGambit Mar 31, 2022
f90a207
Delete Dockerfile_Stratego
QueensGambit Mar 31, 2022
67177bf
Hex (#172)
BluemlJ Mar 31, 2022
29b35ee
Fix build for USE_RL=ON
QueensGambit Apr 5, 2022
10251a9
Remove Child_Threads and SearchThreadMaster (#173)
QueensGambit May 9, 2022
9c1b2f5
Backend TensorRT 7 (#174)
QueensGambit May 10, 2022
6c99e30
Update Dockerfile
QueensGambit May 11, 2022
afbef6b
Bump engineVersion to 1.0.0
QueensGambit May 13, 2022
f4a2cb1
Update README
QueensGambit May 16, 2022
fad1875
Fix building for RL=ON for SF_DEPENDENCY=OFF
QueensGambit May 27, 2022
4387128
Tablebase Mating Sequences (#176)
QueensGambit Jun 6, 2022
af511b5
Rename mctsmatch and evaltournament (#177)
BluemlJ Jun 20, 2022
6e43fa9
Update binaryio.py (#178)
chooga Jun 24, 2022
3d93f03
Pytorch Deep Learning Backend (#179)
QueensGambit Jul 1, 2022
ecd34c8
Fix compile bug of multimodel_arena() #177
QueensGambit Jul 1, 2022
5f05795
Update RL-Loop (#180)
QueensGambit Jul 1, 2022
d450309
Add missing "self.did_contender_win" to rl_loop.py #180
QueensGambit Jul 1, 2022
00ac45d
Update engine version to 1.0.1
QueensGambit Jul 5, 2022
5f902eb
Add terminating condition in train loop
QueensGambit Jul 14, 2022
4b3d407
Only import pytorch if needed
QueensGambit Jul 15, 2022
1660db2
Fix onnx simplification procedure
QueensGambit Jul 15, 2022
edd29f7
Move pytorch import
QueensGambit Jul 15, 2022
8d05da4
Revert pytorch import statements
QueensGambit Jul 15, 2022
58d8a1f
Update Pytorch Rise3.3
QueensGambit Jul 15, 2022
87511df
Update TrainerAgent Pytorch
QueensGambit Jul 15, 2022
83a02d1
Update README
QueensGambit Jul 18, 2022
01e2e55
Update README
QueensGambit Jul 18, 2022
593fcae
Dynamic ONNX shape support (#181)
QueensGambit Jul 25, 2022
077ca57
Add loading fen position from epd file (#182)
QueensGambit Jul 29, 2022
a3e41af
Dockerfile Pytorch Support (#183)
QueensGambit Aug 3, 2022
bd5053f
Update dependencies for OpenVino in CMakeLists.txt #181
QueensGambit Aug 3, 2022
820b77d
Update Dockerfile #183
QueensGambit Aug 3, 2022
42c8704
Update Dockerfile and README.md #183
QueensGambit Aug 5, 2022
2a5a607
Update MCTS solver for MCTS_SINGLE_PLAYER (#184)
QueensGambit Aug 5, 2022
7e46df6
Update engine to version 1.0.2
QueensGambit Aug 8, 2022
f6b5ac2
Make dimension for TensorRT profiling flexible #181
QueensGambit Aug 10, 2022
5250bad
Fix setBindingDimensions() for TensorrtAPI #181
QueensGambit Aug 10, 2022
7ccb332
Bumb version to 1.0.3
QueensGambit Aug 18, 2022
5a9a59c
MCTS solver bug fix (#185)
QueensGambit Sep 8, 2022
a0f1c74
BoardAra (tictactoe, connect four, othello, clobber, breakthrough) (#…
chooga Oct 23, 2022
b1c2a9c
Make sure to call get_best_move_q(nextNode) only for playout nodes (d !=
QueensGambit Dec 3, 2022
5ec10bd
Update CMakeLists.txt
QueensGambit Dec 6, 2022
1aa72b5
Dynamic single player search (#190)
QueensGambit Jan 20, 2023
becf279
Update evalinfo.cpp
QueensGambit Feb 17, 2023
25a478b
Update README
QueensGambit Feb 17, 2023
dc4a1ba
Update node.cpp
QueensGambit Feb 17, 2023
0e5faa6
Update catch from 2.9.1 to 3.3.2
QueensGambit Feb 27, 2023
201439b
Update CMakeLists.txt
QueensGambit Apr 8, 2023
e6ffc0b
Update stateobj.h
QueensGambit Apr 8, 2023
8c56f49
Update crazyara.cpp
QueensGambit Apr 8, 2023
88afbea
Update rawnetagent.cpp
QueensGambit Apr 8, 2023
aac03c3
Update agent.cpp
QueensGambit Apr 8, 2023
c1b5c10
Update README
QueensGambit Apr 19, 2023
a665629
Update CMakeLists.txt
QueensGambit Apr 21, 2023
a7a14df
fix typos (#193)
RainRat Apr 25, 2023
f87a158
Update AUTHORS
QueensGambit Apr 26, 2023
2c836da
Replace deprecated Approx() by Catch::Matchers::WithinRel() (#194)
QueensGambit Apr 26, 2023
c52f9ad
Stoppable search thread (#195)
QueensGambit Apr 28, 2023
bed2274
Vision transformer (#196)
QueensGambit Apr 28, 2023
9ca5001
Update OpenSpiel dependency (#197)
QueensGambit May 2, 2023
9f0f077
Add mustWait boolean to control the condition variable
QueensGambit May 16, 2023
902bc5e
Remove "Use_Uncertainty" for now
QueensGambit May 16, 2023
1c612c3
Update .gitmodules
QueensGambit Jun 22, 2023
e009ee3
Add generate_random_nn_pytorch() (#200)
QueensGambit Jun 27, 2023
c8ad1de
Update train_util.py
QueensGambit Jun 30, 2023
608e958
Train CNN Refactoring (#201)
QueensGambit Jun 30, 2023
be64525
Add "shuffle=True" for train_loader
QueensGambit Jun 30, 2023
25ba269
Fix train_cnn refactoring (#201)
QueensGambit Jul 4, 2023
fd00b87
Update README.md
QueensGambit Jul 13, 2023
6ac6d99
Update README.md
QueensGambit Jul 13, 2023
f51c514
Update README.md
QueensGambit Jul 14, 2023
48caefa
Fix jupyter notebook evaluation part #201
QueensGambit Jul 14, 2023
060c983
Crazyhouse inputs v2, v3 (#202)
QueensGambit Jul 17, 2023
5d3f64f
Fix set_pocket_pieces_to_board() (#202)
QueensGambit Jul 18, 2023
59539b4
Update Dockerfile
QueensGambit Jul 20, 2023
b6a7800
Fix layer initialisation (related to #202)
QueensGambit Jul 26, 2023
9332aa8
Fix potential crash in undo_move()
QueensGambit Jul 26, 2023
f400224
Docker core dumps (#203)
QueensGambit Jul 26, 2023
258053d
Sort folder names in train archive by time stamp (close #189)
QueensGambit Jul 31, 2023
282c671
Check for is_terminal() directly after creating a new node (#204)
QueensGambit Aug 2, 2023
812d62d
Virtual_Visit, Virtual_Mix, Virtual_Offset (#205)
QueensGambit Aug 8, 2023
90af28f
added test case for 3-fold repetition (#198)
AtlanticBot Aug 8, 2023
50c930e
Fix first_and_second_max() (#206)
QueensGambit Aug 8, 2023
df8122b
Update AUTHORS
QueensGambit Aug 8, 2023
66e26b4
Fix 960 initialization problem (#207)
QueensGambit Aug 8, 2023
fbcf4ee
Bump version to 1.0.5
QueensGambit Aug 8, 2023
b566c04
Remove MSVC min/max macro definitions
QueensGambit Aug 8, 2023
41ea151
Add lichess inputs v3 with tests, cpp and python implementation (#209)
QueensGambit Sep 6, 2023
2cc8d11
Update README.md
QueensGambit Sep 6, 2023
89d848c
Update constants.py
QueensGambit Sep 14, 2023
dfac176
Add additional atomic chess tests (#209)
QueensGambit Oct 11, 2023
a95a3b8
Update README.md
QueensGambit Oct 22, 2023
5f0a1a4
Fix python input representation for 960 (#211)
QueensGambit Oct 31, 2023
746923b
Update comment for test (#211)
QueensGambit Oct 31, 2023
ca16c6d
Replace "init value" by "value" in cout
QueensGambit Oct 31, 2023
d7efb72
Supervised training through command-line training script (#213)
QueensGambit Dec 11, 2023
83dfacf
Allow overwriting all configuration in train_config.py via command-li…
QueensGambit Jan 19, 2024
e0de690
Update README.md
QueensGambit Feb 17, 2024
ab7c3c3
Update README.md
QueensGambit Feb 17, 2024
9e927c3
Update README.md
QueensGambit Feb 17, 2024
ce12a9c
Mixture of Experts MCTS (MoE MCTS) (#216)
QueensGambit May 3, 2024
5a12a23
Add merge_bn() call to Risev3.0
QueensGambit May 6, 2024
54e92b7
Fix tar_file in train_config.py (#216)
QueensGambit May 6, 2024
f2fa8b1
Lichess Puzzles (#217)
QueensGambit Aug 13, 2024
04509dd
add visualize_AlphaVile_large.ipynb
QueensGambit Aug 19, 2024
6b43b32
MoE MCTS fixes (#218)
QueensGambit Sep 6, 2024
81aa7fd
Update Dockerfile
QueensGambit Sep 6, 2024
09b5b5a
Fix kernel 5x5 for AlphaVile (normal, small, tiny)
QueensGambit Sep 17, 2024
524e048
Fix additional dataloader creation (#220)
HelpstoneX Sep 23, 2024
8737baf
Update AUTHORS
QueensGambit Sep 24, 2024
36582c6
Update train_cnn.ipynb
QueensGambit Sep 24, 2024
b4216ea
Add select_nn_index() for phase selection (#216)
QueensGambit Oct 6, 2024
f984efa
Update mctsagent.cpp (#216)
QueensGambit Oct 6, 2024
c045744
Fix compile error (#216)
QueensGambit Oct 6, 2024
6197410
RL pytorch fix (#222)
QueensGambit Jan 10, 2025
025793a
Update TensorrtAPI to TensorRT 10 (#219)
QueensGambit Jan 21, 2025
19e37d0
Selfplay MoE (#223)
QueensGambit Mar 26, 2025
5d5eae4
Update main_config.py
QueensGambit Jul 8, 2025
c4b30be
Update main_config.py
QueensGambit Jul 9, 2025
bee1620
Update README.md
QueensGambit Nov 4, 2025
fa4749b
Update rise_mobile_v3.py
QueensGambit Nov 17, 2025
173ba98
Spinlock instead of Mutex (#224)
QueensGambit Nov 21, 2025
bb3b5b6
Parallel RL (#225)
QueensGambit Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .codacy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
exclude_paths:
- '*.md'
- 'engine/3rdparty/*'
60 changes: 60 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: build

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac.
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
env:
COMPILER: ${{ matrix.config.compiler }}
COMP: ${{ matrix.config.comp }}
CXXFLAGS: "-Werror"
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug

strategy:
matrix:
config:
- name: "Ubuntu-Latest-GCC"
os: ubuntu-latest
compiler: g++
comp: gcc
- name: "Ubuntu-Latest-Clang"
os: ubuntu-latest
compiler: clang++
comp: clang

steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Install dependencies
working-directory: ${{github.workspace}}/engine/3rdparty/blaze
run: |
# install blaze
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/
sudo make install

- name: Configure CMake
working-directory: ${{github.workspace}}/engine
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ./build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=1 -DMODE_CRAZYHOUSE=1 -DMODE_CHESS=0 -DMODE_LICHESS=0 .

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/engine/build --config ${{env.BUILD_TYPE}}

- name: Test
working-directory: ${{github.workspace}}/engine/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ./CrazyAra
68 changes: 68 additions & 0 deletions .github/workflows/variants.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: variants

on: [ pull_request, workflow_dispatch ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug

jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Install dependencies
working-directory: ${{github.workspace}}/engine/3rdparty/blaze
run: |
# install blaze
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/
sudo make install

- name: Install open_spiel
working-directory: ${{github.workspace}}/engine/3rdparty/open_spiel
run: |
# install open_spiel
pwd
chmod +x install.sh
sudo ./install.sh
- name: Configure CMake
working-directory: ${{github.workspace}}/engine
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: |
mkdir build
cmake -B ./build/chess -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=1 -DMODE_CRAZYHOUSE=0 -DMODE_CHESS=1 -DMODE_LICHESS=0 -DMODE_XIANGQI=0 -DMODE_STRATEGO=0 -DMODE_OPEN_SPIEL=0 .
cmake -B ./build/lichess -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=1 -DMODE_CRAZYHOUSE=0 -DMODE_CHESS=0 -DMODE_LICHESS=1 -DMODE_XIANGQI=0 -DMODE_STRATEGO=0 -DMODE_OPEN_SPIEL=0 .
cmake -B ./build/xiangqi -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=1 -DMODE_CRAZYHOUSE=0 -DMODE_CHESS=0 -DMODE_LICHESS=0 -DMODE_XIANGQI=1 -DMODE_STRATEGO=0 -DMODE_OPEN_SPIEL=0 .
cmake -B ./build/stratego -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=0 -DMODE_CRAZYHOUSE=0 -DMODE_CHESS=0 -DMODE_LICHESS=0 -DMODE_XIANGQI=0 -DMODE_STRATEGO=1 -DMODE_OPEN_SPIEL=0 .
cmake -B ./build/hex -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=0 -DMODE_CRAZYHOUSE=0 -DMODE_CHESS=0 -DMODE_LICHESS=0 -DMODE_XIANGQI=0 -DMODE_STRATEGO=0 -DMODE_OPEN_SPIEL=1 .
cmake -B ./build/boardgames -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_PROFILING=0 -DUSE_RL=0 -DBACKEND_TENSORRT=0 -DBACKEND_MXNET=0 -DBACKEND_TORCH=0 -DUSE_960=0 -DBUILD_TESTS=1 -DMODE_CRAZYHOUSE=0 -DMODE_CHESS=0 -DMODE_LICHESS=0 -DMODE_XIANGQI=0 -DMODE_STRATEGO=0 -DMODE_OPEN_SPIEL=0 -DMODE_BOARDGAMES=1 .

- name: Build
# Build your program with the given configuration
run: |
cmake --build ${{github.workspace}}/engine/build/chess --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/engine/build/lichess --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/engine/build/xiangqi --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/engine/build/stratego --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/engine/build/hex --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/engine/build/boardgames --config ${{env.BUILD_TYPE}}

- name: Test
working-directory: ${{github.workspace}}/engine
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
./build/chess/ClassicAra
./build/lichess/MultiAra
./build/xiangqi/XiangqiAra
./build/stratego/StrategoAra
./build/hex/OpenSpielAra
./build/boardgames/BoardAra
9 changes: 6 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,6 @@ venv.bak/
# avoid pushing any lock files
*.~lock

# avoid pushing the main_config.py file
main_config.py

# avoid pushing log-files generated by uci-communication
CrazyAra-log.txt
score-log.txt
Expand All @@ -136,3 +133,9 @@ crazyara_lichess_dataset_stats.csv

# avoid pushing datasets
sf_vs_sf_*.pgn

# Build
build-engine-Desktop_Qt*/

# user
*.txt.user
9 changes: 9 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
[submodule "engine/3rdparty/Stockfish"]
path = engine/3rdparty/Stockfish
url = https://github.com/QueensGambit/Stockfish.git
[submodule "engine/3rdparty/Fairy-Stockfish"]
path = engine/3rdparty/Fairy-Stockfish
url = https://github.com/xsr7qsr/Fairy-Stockfish.git
[submodule "engine/3rdparty/blaze"]
path = engine/3rdparty/blaze
url = https://bitbucket.org/blaze-lib/blaze.git
[submodule "engine/3rdparty/open_spiel"]
path = engine/3rdparty/open_spiel
url = https://github.com/BluemlJ/open_spiel_stratego_hex.git
29 changes: 0 additions & 29 deletions .travis.yml

This file was deleted.

64 changes: 64 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# CrazyAra authors (including ClassicAra, XiangqiAra, MultiAra, ...)

# Main author
Johannes Czech (QueensGambit)

# Founders of the CrazyAra project
Johannes Czech (QueensGambit)
Moritz Willig (MoritzWillig)
Alena Beyer

# Development of MultiAra (support for all lichess variants) including major refactoring
Maximilian Alexander Gehrke (maxalexger)

# Integration of Fairy-Stockfish back-end and founder of XiangqiAra (#93)
Maximilian Langer (xsr7qsr)

# Students which contributed to the development by writing a B.Sc- or M.Sc.-thesis or seminar paper on a related topic
Patrick Korus
Daniel Siersleben (DanielSiersleben)
Maximilian Langer (xsr7qsr)
Maximilian Alexander Gehrke (maxalexger)
Jannis Blüml (BluemlJ)
Felix Helfenstein (HelpstoneX)

# All other authors of the code in alphabetical order
AtlanticBot - created test case for 3-fold repetition
Mateus (Matuiss2) - code refactoring in python, testing
noelben - initial time management in python version
RainRat - typo fixes

# Alpha-(Go)-Zero authors for project inspiration
David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot,
Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis.

# Project or thesis supervision
Prof. Kristian Kersting
Prof. Johannes Fürnkranz
Karl Stelzner

# Honorable mentions for valuable discussions or support
Fabian Fichter (ianfab)
Daniel Dugovic (ddugovic)
FTdiscovery (Gordon)
Bajusz Tamás (gbtami)
Justin Tan (JannLee)
TheFinnisher
IM gsvc
okei
catask

# Acknowledgments for the 3rd party libraries being used
Niklas Fiekas (niklasf) - python-chess
Daniel Dugovic (ddugovic) - Multi-Variant Stockfish
Fabian Fichter (ianfab) - Fairy-Stockfish
Klaus Iglberger (eagle42) and others - Blaze
Alistair Miles (alimanfoo) and others - Zarr
Constantin Pape (constantinpape ) and others - z5
Phil Nash (horenmar), Martin Hořeňovský (horenmar) and others - Catch2
Wolf Vollprecht (wolfv) and others - xtensor
Rajeev Rao (rajeevsrao), Kevin Chen (kevinch-nv) and others - TensorRT
Chiyuan Zhang (pluskid), Eric Junyuan Xie (piiswrong), Sheng Zha (szha) and others - incubator-mxnet
bddppq, Lu Fang (houseroad), Ke Zhang (linkerzhang) and others - onnx
Adrian Alic (m2q), tomatenbrei - pomcpp
lanctot, michalsustr, Edward Lockhart (elkhrt) and others - open_spiel
4 changes: 2 additions & 2 deletions DeepCrazyhouse/configs/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
### Configuration files for CrazyAra

This is the configuration directory of CrazyAra for both supervised training and reinforcement learning.

If you want to test sample MCTS predictions in [MCTS_eval_demo.ipynb](https://github.com/QueensGambit/CrazyAra/blob/master/DeepCrazyhouse/src/samples/MCTS_eval_demo.ipynb),
then follow these steps:

* First rename `main_config_template.py` into `main_config.py`

* Specify the fields `main_config["model_architecture_dir"]` and `main_config["model_weights_dir"]` in the file
`main_config.py` to the appropriate paths of your system. Make sure that the path has a "/" at the end of the path.
86 changes: 86 additions & 0 deletions DeepCrazyhouse/configs/main_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
"""
@file: main_config.py
Created on 24.09.18
@project: crazyara
@author: queensgambit

Main Config definition file used for the project.
Adjust the paths accordingly.
"""


# define the default dir where the training data in plane representation is located
# e.g. for supervised learning default_dir = "/data/planes/"
default_dir = "/data/kingbase2019_lite_pgn_months/"
phase = None # current phase to use, set to None to treat everything as a single phase. Otherwise use integer e.g. 0, 1, 2 to define the phase to use.
# type of phase definition, either "lichess" or "movecountX" with X determining the number of phases
phase_definition = "lichess"

if default_dir[-1] != "/":
default_dir = default_dir + "/"


main_config = {
# Crazyhouse - LichessDB
# The training directory includes games from the months: 2016-01 - 2018-07 (excluding 2018-04 and 2018-08)
# The validation directory includes games from the month: 2018-04
# The test directory includes games from the month: 2018-08
# The mate_in_one directory includes games from the month: 2018-04

# Chess - KingBaseLite2019
# The training directory includes games from the months: 2000-01 - 2018-12 (excluding 2012-09 and 2017-05)
# The validation directory includes games from the month: 2012-09
# The test directory includes games from the month: 2017-05
# The mate_in_one directory includes games from the month: lichess_db_standard_rated_2015-08.pgn

"phase": phase,
"phase_definition": phase_definition,
"default_dir": default_dir,

# The pgn directories contain all files which are converted to plane representation
"pgn_train_dir": default_dir + "pgn/train/",
"pgn_val_dir": default_dir + "pgn/val/",
"pgn_test_dir": default_dir + "pgn/test/",
"pgn_mate_in_one_dir": default_dir + "pgn/mate_in_one/",
# The plane directories contain the plane representation of the converted board state
# (.zip files which have been compressed by the python zarr library)

"planes_train_dir": default_dir + f"planes/{phase_definition}/phase{phase}/train/",
"planes_val_dir": default_dir + f"planes/{phase_definition}/phase{phase}/val/",
"planes_test_dir": default_dir + f"planes/{phase_definition}/phase{phase}/test/",
"planes_mate_in_one_dir": default_dir + f"planes/{phase_definition}/phase{phase}/mate_in_one/",

# The rec directory contains the plane representation which are used in the training loop of the network
# use the notebook create_rec_dataset to generate the .rec files:
# (Unfortunately when trying to start training with the big dataset a memory overflow occurred.
# therefore the old working solution was used to train the latest model by loading the dataset via batch files)
# "train.idx", "val.idx", "test.idx", "mate_in_one.idx", "train.rec", "val.rec", "test.rec", "mate_in_one.rec"

"rec_dir": default_dir + "rec/",
# The architecture dir contains the architecture definition of the network in mxnet .symbol format
# These directories are used for inference
#"model_architecture_dir": "/home/demo_user/models/Crazyhouse/symbol/",
"model_architecture_dir": "/DeepCrazyhouse/models/Classic/symbol/",

# the weight directory contains the of the network in mxnet .params format
#"model_weights_dir": "/home/demo_user/models/Crazyhouse/params/",
"model_weights_dir": "/DeepCrazyhouse/models/Classic/params/",

# layer name of the value output layer (e.g. value_tanh0 for legacy crazyhouse networks and value_out for newer
# networks)
"value_output": "value_out",
# layer name of the policy output layer without softmax applied (e.g. flatten0 for legacy crazyhouse networks
# policy_out for newer networks)
"policy_output": "policy_out",
"auxiliary_output": "auxiliary_out",
"wdl_output": "wdl_out",
"plys_to_end_output": "plys_to_end_out",

# Active mode for different input & output representations.
# Each mode is only compatible with a certain network input-/output representation:
# Available modes: 0: MODE_CRAZYHOUSE (crazyhouse only mode, no 960) available versions [1, 2, 3]
# 1: MODE_LICHESS (all available lichess variants) available versions [1, 2 (last_moves), 3 (last_moves+fx-features)]
# 2: MODE_CHESS (chess only mode, with 960) available versions [1, 2, 3]
"mode": 2,
"version": 3,
}
Loading