Horst S. hat mich um eine Starthilfe für Leelafish gebeten. Da das evt. auch andere Leute interessiert, hier also als Posting.
https://github.com/killerducky/lc0/wiki/LeelaFishZunächst mal vorab: LeelaFish ist noch sehr unausgereift. Ich beziehe mich im Folgenden auf CUDA-Version von LeelaFish v0.3 (v0.4 ist völlig verbuggt und v0.5 kann ich noch nicht einschätzen. v0.3 läuft halbwegs stabil, zumindest mit einigen Engines) und die Nutzung in Fritz16 (LittleBlitzerGUI geht auch, soweit ich das bisher überblicke, aber in der LBG läuft ja eigentlich alles).
Als AuxEngine funktionieren - soweit momentan bekannt - Stockfish und Houdini 6. Komodo geht nur ohne pondern (FritzGUI). Ethereal geht bei mir unter Fritz16 nicht im Dauerbetrieb. Andere Engines hab ich noch nicht probiert. Ich persönlich finde auch Houdini am interessantesten. Aber wer Erfahrungswerte mit anderen Engines hat, bitte gerne hier posten.
Man braucht nun zunächst mal einen Ordner, in den man das LeelaFish v0.3 .exe - File (heißt lc0.exe) (entzipt, versteht sich) hineinpackt, sowie die AuxEngine, die man nutzen will und die CUDA-Dateien, die man im Download von LeelaFish NICHT findet, dazu muß man sich die aktuelle Version von lc0 v0.21.0 CUDA herunterladen und die CUDA-Files von dort nehmen. Auch gibt es mittlerweile wieder ein Update für die Grafiktreiber von NVIDIA (CUDA 10.1), also sollte man seinen Grafiktreiber aktualisieren und den PC dann frisch booten.
Dann erzeugt man LeelaFish als UCI-Engine in Fritz (Priority below normal). Wenn das passiert ist, geht man in die erweiterten Engineeinstellungen. Dort findet man die Aux-Parameter:
AuxEnginePath : hier gibt man nur den Namen des .exe-files der AuxEngine ein (das reicht, da sich die Auxengine ja im gleichen Ordner befindet wie LeelaFish (s.o.))
AuxEngineOptions: hier kann man UCI-Parameter an die AuxEngine übergeben. Das ist etwas tricky: Man darf nämlich keine Leerzeichen zwischen den Parametern haben, nur ein Semikolon. Und auch keine Anführungsstriche, was wohl manche gemacht haben, weil dort STRING als Format steht. Also was z.B. bei Houdini 6 als Parameter korrekt wäre, wenn man auch den Tactical Mode nutzen will:
AuxEngineOptions:Hash=1024;Threads=1;Tactical Mode=1
AuxEngineThreshold: Legt fest, wann die AuxEngine konsultiert wird. Default ist 100, also, wenn Lc0 eine Stellung 100x in der MCTS-Suche "besucht", dann wird die AuxEngine hinzugezogen. Hier müßte man noch viel experimentieren. Bei schnellen RTX-Karten und in meinem long thinking-time Turnier scheint der Wert 100 ganz gut zu funktionieren. Bei kurzen Bedenkzeiten und/oder langsamen GPUs, sollte man den Wert sicher heruntersetzen. Ich nutze jetzt mal 20 in meinem 3'+1'' Testrun, der gerade läuft. Das läßt sich auch ganz gut an bisher.
AuxEngineDepth: Legt die Suchtiefe der AuxEngine fest. Hier muß man Bedenkzeit und CPU-Geschwindigkeit berücksichtigen. Und auch, daß z.B. Stockfish höhere Suchtiefen anzeigt, als z.B. Houdini. Hier würde ich im Daueranalysemodus der FritzGUI mal rumprobieren, bis LeelaFish praktisch verzögerungsfrei Hauptvarianten auswirft, wenn man einen Zug auf dem Brett ausführt. Für Houdini im singlecore-Modus ist je nach Bedenkzeit 14 oder 16 angebracht. Bei Stockfish könnten es wohl auch 16-18 sein. Auch hier gilt: Es muß noch viel herumprobiert werden! Ich hoffe aber, daß der Autor hier noch umstellt von fixer Suchtiefe (was ich für Schwachsinn halte, weil im Endspiel diese Tiefe ja viel schneller erreicht wird als im Mittelspiel) auf fixe Suchzeit (go movestime).
AuxEngineBoost: Legt fest, wie stark die "Meinung" der AuxEngine in die "Bewertung" von lc0 einfließt. Auch hier kann ich noch überhaupt nicht sagen, welcher Wert wirklich gut ist. Ganz schlecht scheint die default-Einstellung von 50 aber nicht zu sein. Ein zu hoher Wert würde die Spielweise von lc0 zunichte machen, ein zu niedriger Wert würde die Wirkung der AuxEngine zunichte machen...
AuxEngineFollowPVDepth: Legt fest wieviele Halbzüge der Hauptvariante der AuxEngine berücksichtigt werden. Default ist 3 (in neueren Versionen wohl 4). Auch hier gilt: Schwer zu sagen, was gut ist. Zuviel macht die Qualität wackelig. Zuwenig bringt dann nix... Auch hier ist 3 auf jeden Fall kein ganz schlechter Wert. Aber auch hier müßte noch viel probiert werden.
Hat man alles nach Wunsch eingestellt, startet man LeelaFish mal probeweise im Daueranalysemodus. Nun nicht erschrecken: Es poppt ein schwarzes, leeres Fenster auf, das ist die Aux-Engine, bzw. ihr Windows-Task. Dieses Fenster auf gar keinen Fall wegklicken. Sondern Fritz16 einfach wieder in den Vordergrund klicken. Sonst schließt man die AuxEngine! Das Fenster muß immer da bleiben!
Das sollte es eigentlich gewesen sein...