Stockfish 10 für den DGT Pi

Mit der Version 10 der Stockfish Engine haben die Entwickler nochmals für einen ordentlichen Spielstärke-Schub gesorgt.

Wer Stockfish 10 für die Analyse seiner Schachpartien einsetzt, sollte allerdings folgendes beachten. Der Contempt-Faktor ist hier standardmäßig auf den Wert 24 eingestellt. Diese Einstellung drückt aus, wie optimistisch Stockfish seine Stellung beurteilt. Das schlägt sich natürlich auch auf die angezeigte Stellungsbewertung in Bauerneinheiten aus.

Bereits in der Grundstellung zeigt Stockfish 10 mit dieser Standardeinstellung einen weißen Vorteil zwischen 0,50 und 0,80 Bauerneinheiten an.

Wie sich in Engine-Zweikämpfen herausgestellt hat, spielt Stockfish 10 mit dieser Einstellung sehr stark gegen andere Engines. Für Schachspieler die mit Engine gegen Engine Wettkämpfen allerdings nichts am Hut haben und Stockfish einfach nur zum Analysieren verwenden wollen, wirken diese überoptimistischen Stellungsbewertungen ziemlich irritierend.

Um Stockfish 10 für die Analyse einzusetzen, sollte man daher den Contempt-Faktor auf Null zurücksetzen oder zumindest in die Nähe der Null 🙂

Für alle Besitzer des DGT Pi Schachcomputers habe ich Stockfish 10 kompiliert und entsprechend angepasst. Unter folgendem Link kann die Engine fürs DGT Pi kostenlos heruntergeladen werden:

https://www.topschach.de/stockfish-download-p-4125.html

Um die Engine einzubinden, verbinden wir uns per SSH mit dem DGT Pi und kopieren die heruntergeladene Datei in folgenden Ordner:

/opt/picochess/engines/armv7l/

und editieren mit dem Befehl sudo nano engines.ini die Engine-Liste. Wir gehen an das Ende der Datei und fügen folgende Zeilen hinzu:

[stockfish10]
name = Stockfish 10
small = sf 10
medium = stockf10
large = stockf10

Mit Strg+O speichern wir das ab und verlassen den Editor mit Strg+X.

Mit folgendem Befehl Starten wir den DGT Pi neu:

sudo reboot now

Wenn alles geklappt hat, steht uns nun Stockfish 10 in der Engine-Auswahl zur Verfügung.

Selbstverständlich lassen sich noch einige Sachen wie Spielstufen, Hash, Threads, usw. einstellen, aber das würde jetzt den Rahmen sprengen. Wer Fragen hat, kann sich gerne bei mir melden. Entweder per Telefon, Mail oder einfach als Kommentar zu diesem Artikel.

Bis bald

Euer Benny

12 Gedanken zu „Stockfish 10 für den DGT Pi

  1. Lieber Benny,

    weisst Du wie ich den „Revelation UCI Server“ das zu bewegen kann 8 Treads und eine Contempt Wert von „0“ zu benutzen? Wenn ich Stockfish „stockfish_10_x64_bmi2“ nutze um mit dem Revelation im Analyse Modus zu arbeiten scheint er nur 1 Tread zu nutzen.

    Wie kann ich Stockfish modifizieren oder gibt es Einstellungsmöglichkeiten im UCI Server für den Revelation die ich nicht kenne?

    Vielen Dank für Deine Hilfe!
    Marcus

    • Hallo Marcus,

      ein einfaches Aufrufen der Stockfish.exe lädt die Engine immer nur mit einem Core. Um mehrere Cores zu aktivieren, musst Du eine Verknüpfung zur Stockfish.exe erstellen und in den Eigenschaften dieser Verknüpfung an den Start der EXE noch folgenden Parameter übergeben:

      setoption name Threads value 8

      Es handelt sich hierbei um einen UCI-Befehl. Du kannst über Parameter so ziemlich alles einstellen. Eine komplette Liste aller möglichen Parameter findest Du hier:

      http://wbec-ridderkerk.nl/html/UCIProtocol.html

      Gruß

      Benny

      • Hallo Benny,

        leider habe ich den Tip mit der Verknüpfung und wie und wo man die Parameter dann einstellt nicht ganz Verstanden.

        Aber ich habe von DGT erfahren, dass ich die Anzahl der Threads im Menü von Revelation II auswählen kann. Ich habe 8 Threads, man kann aber nur zwischen 6 oder 11 wählen. Bei 11 Threads scheint er wohl aber die maximale mögliche einfach zu nehmen. In jedem Fall läuft mein PC auf 100% Leistung. Es gibt auch ein „SyzygyPath“ mit dem Status „False“, aber man kann ihn scheinbar nicht änder. Sehr bedauerlich wenn man keine Tablebases zum analysieren mit Revelation nutzen kann. Viele andere Parameter lassen sich wohl auch via Revelation II steuern.

        Herzliche Grüße
        Marcus

        • Hallo Marcus,

          die UCI-Engines läuft auf Deinem PC. Bei der Variante die Dir DGT vorgeschlagen hat, sendet der Revelation II UCI-Befehle(Optionen) an die Engine die auf dem PC läuft. Du kannst aber beim Einbinden der Engine in den UCI-Server die EXE mit Parametern innerhalb der Verknüpfung starten.

          Rufe mich einfach mal morgen an und ich richte Dir das per Teamviewer schnell ein. Dauert nur ein paar Minuten.

          Gruß

          Benny

  2. Hallo, ich habe die Stockfish10 Engine wie oben beschrieben auf meinen DGT Pi kopiert und habe nun das Problem, dass sich der DGT Pi immer aufhängt, wenn ich in das Engine Menü gehe. Ich habe dem stockfish10 noch mit chmod +x Execution Rechte verpasst. Auf der Shell läuft die Engine auch. Eine Idee was das Problem sein könnte?

    • Hallo Gerald,

      schreib mir mal eine Mail oder rufe mich an. Ich denke ich kann das Problem recht flott per Teamviewer lösen.

      Gruß

      Benny

  3. Hallo Benny,

    Leider hab ik dasselbe wie Gerald auf meinen Pi 3b+. Nach installation ‚friert‘ der Pi. Ist das Problem schon gelöst?

    Gruss,
    Henri

    • Hallo Henri,

      wenn beim Laden einer Engine das PicoChess einfriert und praktisch nicht mehr reagiert, hat das in 99% aller Fälle etwas mit den Dateirechten der jeweiligen Engine zu tun. Neben den Rechten ist auch der Besitzer der Datei wichtig. Kopiere ich als User XYZ eine Datei auf ein Linux-System, dann ist diese Datei an den Besitzer XYZ gebunden.

      Man kann die „Probleme“ auf zwei Arten lösen. Entweder man liest sich in das Thema „Datei/User-Rechte unter Linux“ ein oder man schreibt mir ne Mail und wir machen das zusammen am Telefon per Teamviewer.

      Viele Grüße

      Benny

      • Hallo Benny,

        habe mich schon eingelesen in die Sache, geht ja eigenlich nicht anders wenn man im Pi vielfältig geschützte Datein und Order begegnet 🙂 Ich habe schon zuvor einige Engines hinzugefügt, und die funktionieren alle ordentlich. Was Rechten angeht, die Datei ’stockfish10′ ist 755, und ’stockfish.uci‘ 644, genau wie bei den anderen Engines….
        Aber ich bastel fröhlich weiter, möchte zuerst mal selber herausfinden was da schief geht….

        Gruss,
        Henri Spijkerman

  4. Stockfish hat einen extra Contempt-Faktor für den Analyse modus sofern die Schach GUI (hier wohl der DGT Pi) das setzen kann.

    „Analysis Contempt“ ist die UCI Option:

    „By default, contempt is set to prefer the side to move. Set this option to „White“ or „Black“ to analyse with contempt for that side, or „Off“ to disable contempt (=0).“

    • Hallo Till,

      der Contempt-Faktor ist bei Stockfish sowohl im Analye-, als auch im Spiel-Modus auf 24 gesetzt. Beim Contempt-Faktor handelt es sich um einen „Optimismus“-Faktor, durch welchen verhindert werden soll, dass Stockfish bei Engine-Wettkämpfen zu schnell ins Remis geht. Für die heimische Analyse ist das natürlich wenig zielführend. Stockfish zeigt damit immer für die zu berechnende Seite (Schwarz oder Weiß) eine recht optimistische Bewertung an. Beispielsweise wird schon in der Grundstellung dem Weißen einen Vorteil von etwa 0.70 Bauerneinheiten eingeräumt. Das verzerrt natürlich die tatsächliche Bewertung der Stellung. Mit hoher Suchtiefe senkt sich diese Bewertung allerdings. Ich rate generell dazu, den Contempt-Faktor auf 0 (Null) zu stellen, um eine objektive Bewertung der Stellung in der Analyse zu erhalten. In den Images die ich für den DGT Pi und fürs Picochess anbiete (60 Engines, etc.), ist der Contempt-Faktor bereits auf Null gestellt. Für alle, welche die Engine manuell eingebunden haben reicht es aus, in der Datei engines.ini in den Stockfish-Einstellungen den Contempt-Faktor auf Null zu stellen.

      Gruß

      Benny

      • Hallo Benny,

        mein Punkt ist das Stockfish 10 zwei Contempt Faktoren hat die man einzeln setzten kann. „Contempt“=24 und „Analysis Contempt“=Off setzt den Contempt Faktor für die Analyse auf 0.

        Der UCI Parameter heißt „„Analysis Contempt“. Du kannst also Contempt für das Spiel setzten und Analysis Contempt extra für die Analyse.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.