clrsrc 1.1.1
Eine hochperformante UCI-Schach-Engine in Rust mit selbst trainierter NNUE-Bewertung.
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.