Die Engine

clrsrc 1.1.1

Eine hochperformante UCI-Schach-Engine in Rust mit selbst trainierter NNUE-Bewertung.

Rust UCI eigenes NNUE x86-64 (Win/Linux) AVX-512 / AVX2 / Scalar Syzygy bis 6 Steine GPL-3.0

Architektur

Die wichtigsten Bausteine - bewusst laienverständlich.

Suche

Eine eigene Alpha-Beta-/PVS-Suche (Principal Variation Search), komplett selbst in Rust geschrieben - mit modernem Pruning und einer Transpositionstabelle, die schon berechnete Stellungen wiederverwendet. Sie entscheidet, welche Züge tiefer untersucht und welche früh verworfen werden.

Multi-Threading

Über Lazy SMP nutzt clrsrc viele CPU-Kerne parallel: mehrere Suchthreads teilen sich die Transpositionstabelle und durchsuchen den Stellungsbaum gemeinsam tiefer.

Bewertung: NNUE

Ein „Efficiently Updatable Neural Network" bewertet Stellungen. Es wurde auf eigenen Self-Play-Partien trainiert und mit einem Stockfish-17.1-Teacher nachjustiert (Rescoring) - die Architektur ist Eigenbau, kein übernommenes Netz.

Eine eigenständige Binary

Das NNUE ist direkt in die ausführbare Datei eingebettet. Es genügt eine einzelne .exe ohne Begleitdateien, um mit voller Spielstärke zu spielen.

SIMD-Dispatch zur Laufzeit

Beim Start prüft die Engine die CPU und wählt automatisch den schnellsten Pfad: AVX-512, AVX2 oder skalar. Eine Binary läuft damit auf jeder x86-64-CPU.

Endspiel-Tablebases

Über Syzygy-Tablebases (3-4-5-6-Steiner, WDL+DTZ) kennt clrsrc das perfekte Ergebnis, sobald nur noch wenige Figuren auf dem Brett stehen.

Eigenes Eröffnungs-/Erfahrungsbuch

Optional nutzt die Engine ein selbst erzeugtes Buch. Für neutrale Ranglisten-Tests (CCRL) sind Buch und Lernen vollständig abschaltbar.

UCI-Optionen

clrsrc verhält sich wie eine normale UCI-Engine und lässt sich in jede GUI einbinden.

# Auszug - Standardoptionen
Threads        # Anzahl Suchthreads
Hash           # Größe der Transpositionstabelle (MB)
SyzygyPath     # Pfad zu den Tablebases (bis 6 Steine)
OwnBook        # eigenes Buch an/aus (Default: aus)
Ponder         # Nachdenken in gegnerischer Zeit
EvalFile       # NNUE - eingebettet, optional überschreibbar

Stärke & Entwicklung

Die Entwicklung läuft testgetrieben: neue Ideen werden per SPRT (Sequential Probability Ratio Test) über hunderte bis tausende schnelle Partien gegen die jeweils aktuelle Version gemessen, bevor sie ins Release wandern. Die aktuelle Version ist so rund +100 Elo stärker als die vorige.

Eine Aufnahme in die CCRL-Ranglisten ist geplant. Solange clrsrc dort noch nicht gelistet ist, gibt es bewusst keine offizielle Elo-Zahl auf dieser Seite - sobald ein verifizierter Wert vorliegt, kommt er (mit Quelle) hierher. Ein realer Anker in der Zwischenzeit ist das Live-Lichess-Rating des Bots, zu sehen auf der Live-Seite. Wie der Test-Workflow praktisch abläuft, beschreibe ich im Blog.

Lizenz: GPL-3.0. clrsrc verwendet einige GPL-Komponenten (Teile des Zeitmanagements sind aus Stockfish/Stash/Viridithas portiert; Tablebase-Probing über shakmaty-syzygy), ist aber kein Stockfish-Derivat.