Wie bringt man die - ja durchaus sehr interessante - Hybridengine Scorpio zum Laufen? Interessant ist Scorpio ja besonders, weil diese Engine Neuralnetze nicht nur mit 16bit FLießkomma-Operationen abarbeiten kann - wie lc0 das auf RTX GPUs macht (cudnn-fp16) - sondern mit Integer Operationen (INT 8), was erheblich schneller ist! Zudem lastet Scorpio die CPU beim Rechnen voll aus (im Gegensatz zu Allie), es ist also eine echte Hybridengine!
Zunächst vier Warnungen:
1) in der FritzGUI und der Windows-Version der ShredderGUI läuft Scorpio (Stand jetzt, also Version Scorpio 3.0.2) nicht. Denn die Engine muß als .bat-File in die GUI eingebunden werden, was in Fritz nicht möglich ist und womit die ShredderGUI nicht klarkommt. Scorpio läuft in Arena, LittleBlitzerGUI und Cutechess. Soweit mir bekannt.
2) Scorpio zum Laufen zu bekommen, ist erheblich komplizierter, als lc0 oder Stockfish. Daher auch diese Schritt-für-Schritt Anleitung von mir, denn ich habe Scorpio schon einige Male verflucht.
3) Man kann Scorpio nur ohne pondern gegen andere Engines auf demselben PC spielen lassen, da Scorpio die CPU voll auslastet.
4) Nur die vom Scorpio mitgelieferten NeuralNetze können genutzt werden, man kann nicht von woanders Netze herunterladen und benutzen, das Format ist anders!
Wer sich an einem der 4 Punkte stört, sollte Scorpio nicht installieren!
Hier nun die Schritt-für-Schritt Anleitung (für Windows PCs mit RTX GPU), der NVIDIA Grafiktreiber muß natürlich aktuell sein!
1) Auf der Scorpio-Github Seite das kleine install.bat herunterladen:
https://github.com/dshawul/Scorpio/release2) Das install.bat File dorthin verschieben, wo man Scorpio haben möchte. Dies sollte ein nicht-eingeschränkter Bereich der Festplatte sein, also z.B. der Documents-Ordner, nicht aber der Program Files -Ordner oder so. Dann das File starten. Nun werden viele Dateien heruntergeladen und entpackt, das kann etliche Minuten dauern.
3) Ab hier wirds nun kompliziert: zunächst mal in den Unterordner bin/Windows gehen. Dort findet man die scorpio.ini Datei (Textfile). Diese mit einem Editor öffnen und den Parameter float_type von HALF auf FLOAT ändern. Und den Pfad des NeuralNetzes (Zeile nn_path) zu einem der lczero Netze ändern, die install.bat mit heruntergeladen hat (z.Zt. das alte 32930 und das neue J13B.2-200 (größeres “Terminator“ Netz von J.Hortos),
die Netzdateien sind hier andere und haben die Endung .uff, man kann keine anderen NeuralNetze benutzen, die man woanders herunterlädt!!!). Anmerkung: In der alten Scorpio-Version 3.0 ging das nun folgende auch mit der default-Einstellung HALF. Aber in der neuen leider nicht. Werner hat auf talkchess diesen Trick gepostet (setzen auf FLOAT), damit soll der nun folgende Schritt funktionieren. Ich habe das selbst nicht ausprobiert, da ich das calibrate.dat-File, das jetzt erzeugt werden muß, noch hatte.
4) Nun eine leere Texdatei im bin/Windows Ordner erzeugen und diese in eine .bat-Datei umbenennen (machmal.bat z.B.). Dort die folgende Befehlszeile eintragen:
scorpio.bat runinpnn calibrate.epd calibrate.dat quit
und die .bat-Datei mit Doppelklick starten. Nun dauert es etwas und sobald sich das schwarze Kommando-Fenster wieder schließt, sollte eine ca. 1.4 Gbyte (!) große Datei namens calibrate.dat im Verzeichnis vorhanden sein. Ohne diese geht es nicht weiter.
5) Nun in der scorpio.ini Datei float_type von FLOAT auf INT8 ändern. Sollte das Netz J13B.2-200 benutzt werden, zusätzlich noch die Zeile
wdl_head 1
irgendwo in der Scorpio.ini Datei einfügen.
6) Nun wieder eine leere .bat-Datei erstellen und diese Befehlszeile eintragen:
scorpio.bat float_type INT8 go quit
und die Datei ausführen. Das dauert nun wieder einige Zeit und es wird ein weiteres Konfigurationsfile speziell für das gewählte NeuralNetz erzeugt und zwar im Verzeichnis, wo sich das NeuralNetz befindet. Will man später ein anderes NeuralNetz benutzen, muß auch für dieses dieser und der folgende Arbeitsschritt wiederholt werden, nachdem man es in der scorpio.ini (nn_path) spezifiziert hat.
7) Dann eine weitere leere .bat-Datei erstellen und diese Befehlszeile eintragen:
scorpio.bat go quit
und die Datei ausführen (das geht dann recht schnell).
8) Damit ist Scorpio mit dem ausgewählten Netz im INT8-Rechenmodus betriebsbereit...
9) Nun ist noch zu beachten, daß Scorpio eigentlich eine Winboard-Engine ist, also das xboard-Protokoll unterstützt. Mittlerweile kann man sie aber auch als UCI-Engine einbinden (LitlleBlitzerGUI). Laut dem Autor ist das aber nicht optimal implementiert und spielt etwas schwächer. Hat man also die Möglichkeit (Arena oder Cutechess), sollte man Scorpio als Winboard Engine einbinden (Cutechess Kommando: proto=xboard). Die Einbindung über den wb2uci-Adapter ist nicht empfehlenswert, dies produzierte bei mir einige timelosses, zumal man in Scorpio keinen move overhead einstellen kann.
10) Die Einbindung von Scorpio in die GUI
muß nun unbedingt über das File scorpio.bat erfolgen, nicht über scorpio.exe (!!!). Also scorpio.bat ist das einzubindende Engine-file, normalerweise nimmt man dort natürlich ein .exe-file...Das ist der Grund, warum es in der FritzGUI und ShredderGUI (Windows) leider nicht funktioniert. Schade, aber leider momentan nicht zu ändern.
Ich wünsche viel Erfolg...