Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
LeelaFish is a modified version of the Lc0 engine that gets help from an outside (auxiliary) engine. Leela uses the AuxEngine's PV to boost the Policy of those moves. Otherwise Leela's search runs the same as before, including all position evaluations.
Download latest release
true(I recommend always using this for any lc0 flavor)
leelafish.log(to help debug issues)
--auxengine-options, I have not tested the impact of giving more/less
Threads. I mostly tested with 1, and I just verified using more doesn't cause crashes. If you want to increase this, remember lc0 will be running also, so you need to decrease the number of threads you normally give to the AuxEngine. Similar for Hash, remember lc0 will be running and using memory, plus the AuxEngine will use memory. And you'll be running yet another engine as the opponent.
Leelafish will ask AuxEngine what the best move is each node that passes
--auxengine-threshold. This will be many nodes, not just the root. The faster your GPU, the more nodes will be passed to AuxEngine. Since there are many, each search must be relatively quick. TBD add some dynamic adjustment to balance threshold and depth of search.
--auxengine-file=STRING Path to auxiliary chess engine. [UCI: AuxEngineFile] --auxengine-options=STRING Semicolon separated list of UCI options for the auxiliary engine e.g. Hash=1024;Threads=1 [UCI: AuxEngineOptions] --auxengine-threshold=1..1000000 The auxiliary engine is called when a node reaches this many visits [UCI: AuxEngineThreshold DEFAULT: 100 MIN: 1 MAX: 1000000] --auxengine-depth=1..100 Depth for the auxiliary engine to search. [UCI: AuxEngineDepth DEFAULT: 15 MIN: 1 MAX: 100] --auxengine-boost=0.00..100.00 How much to add to Policy, in percentage [UCI: AuxEngineBoost DEFAULT: 50.00 MIN: 0.00 MAX: 100.00] --auxengine-follow-pv-depth=1..20 Add this many plies of the auxengine's PV at a time. Higher is faster, but deeper PV moves are less accurate [UCI: AuxEngineFollowPvDepth DEFAULT: 4 MIN: 1 MAX: 20]
../../src/mcts/auxengine.cc:68] Stockfish 9 64 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott ../../src/mcts/auxengine.cc:68] id name Stockfish 9 64 ../../src/mcts/auxengine.cc:68] id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott ../../src/mcts/auxengine.cc:68] ../../src/mcts/auxengine.cc:68] option name Debug Log File type string default <-snip-> ../../src/mcts/auxengine.cc:68] uciok
Leelafish sends variations
add pv= to AuxEngine, and gets
../../src/mcts/auxengine.cc:134] add pv=g1f1 a7c5 a2a3 ../../src/mcts/auxengine.cc:151] bestanswer:e7d6 316
Between moves, Leelafish outputs how many nodes were in the queue waiting to be sent to AuxEngine.
../../src/mcts/auxengine.cc:177] done waiting. auxengine_queue_ size 140