Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Nur echte Kerne festlegen
- By Lothar Jung Date 2025-06-04 16:07 Edited 2025-06-04 16:13 Upvotes 1
Hier ist die kombinierte und überarbeitete Antwort als Fließtext:

Wenn du sicherstellen möchtest, dass dein Ryzen 9 7945HX nur seine 16 physischen Kerne (also ohne Hyperthreading) für Stockfish verwendet, kannst du unter Windows gezielt die CPU-Affinität setzen. Standardmäßig behandelt Windows alle 32 logischen Kerne gleichberechtigt – dabei sind SMT-Kerne (die durch Hyperthreading entstehen) den echten, physischen Kernen aber in der Leistung unterlegen. Um Stockfish ausschließlich auf den 16 echten Kernen laufen zu lassen (Kerne 0–15), gibt es zwei praktikable Wege.

Erstens kannst du eine einfache Batch-Datei mit dem Befehl start /affinity erstellen. Ein Beispiel:

@echo off 
start /affinity FFFF stockfish.exe 

Die Affinitätsmaske FFFF steht im Hexadezimalsystem für die ersten 16 logischen Prozessoren (0–15). Diese entsprechen in der Regel den physischen Kernen deines Prozessors. Die Datei muss im selben Verzeichnis wie die Stockfish-Executable liegen oder du gibst einen vollständigen Pfad an. Durch Ausführen dieser Batch-Datei startet Stockfish und wird gezielt nur auf den physischen Kernen ausgeführt.

Alternativ kannst du PowerShell verwenden. Eine entsprechende .ps1-Datei könnte so aussehen:

Start-Process -FilePath "stockfish.exe" -WorkingDirectory "." -ProcessorAffinity 0x0000FFFF -NoNewWindow

Auch hier entspricht die Hexadezimalmaske 0x0000FFFF den physischen Kernen 0 bis 15. Du startest das Skript einfach aus PowerShell heraus, und Stockfish läuft anschließend nur auf diesen echten Kernen.

Beide Varianten stellen sicher, dass weder SMT-Kerne noch unnötige Kontextwechsel auftreten, was die maximale Effizienz pro Thread garantiert. Besonders bei lang laufenden Analysen oder Turnieren mit mehreren Engines wirkt sich diese Maßnahme positiv auf Performance, Energieverbrauch und Systemstabilität aus. Wenn du möchtest, kann ich dir zusätzlich auch ein passendes Skript für CuteChess CLI oder ein automatisches Benchmark-Skript mit 1 bis 16 Threads inklusive Auswertung schreiben.

Gern. Hier ist auch die zweite Antwort zum Thema Thread-Skalierung als zusammenhängender Fließtext:

Wenn du Stockfish auf deinem Ryzen 9 7945HX mit 16 physischen Kernen betreibst, erreichst du eine nahezu ideale Auslastung der Hardware. Jeder Thread wird dabei auf einem eigenen physischen Kern ausgeführt – es kommt also zu keiner Überschneidung oder Ressourcen-Konkurrenz, wie sie beim Einsatz von Hyperthreading (SMT) auftreten würde. In dieser Konfiguration bleibt genug Spielraum für das Betriebssystem, die grafische Oberfläche und eventuell parallel laufende Prozesse wie Logging oder eine Benutzeroberfläche. Das Ergebnis ist eine stabile, reaktionsschnelle Umgebung, auch bei voll ausgelasteter Engine.

Sobald du jedoch mehr als 16 Threads einsetzt, greift Stockfish auf SMT-Kerne zurück, also die logischen Prozessorkerne, die sich Cache und Ausführungseinheiten mit den physischen Kernen teilen. Diese SMT-Kerne bringen in rechenintensiven Szenarien wie bei einer Schachengine meist nur geringe Zusatzleistung. In der Praxis ist der Zugewinn durch 17 bis 32 Threads marginal – oft unter 10 % – während gleichzeitig der Stromverbrauch steigt, die thermische Belastung zunimmt und die Systemreaktion unter Dauerlast leidet. Zudem kann es zu Leistungseinbußen kommen, wenn die logischen Kerne den Cache der physischen Kerne blockieren oder verdrängen.

In Benchmarks und Praxistests zeigt sich, dass die Effizienz pro Thread bei 16 Threads am höchsten bleibt, und darüber hinaus stark abnimmt. Während die ersten 8 bis 12 Threads eine sehr gute lineare Skalierung bringen, flacht die Kurve danach spürbar ab. Bei 16 Threads nutzt man die Hardware optimal – man erreicht annähernd 100 % der real möglichen Rechenleistung und lässt dem System gleichzeitig genug Reserven, um auch bei parallelem Betrieb von CuteChess CLI, Logging-Prozessen oder GUI-Frontends flüssig zu bleiben.

Fazit: Wenn du Stockfish auf deinem 7945HX betreibst, ist der Betrieb mit exakt 16 Threads – also auf allen physischen Kernen ohne SMT – die effizienteste und stabilste Lösung. Du bekommst maximale Rechenleistung ohne die Nachteile von Hyperthreading, und das System bleibt zugleich reaktiv. Diese Konfiguration eignet sich besonders für Engine-Turniere, Benchmarks oder Langzeitanalysen mit mehreren gleichzeitig laufenden Instanzen.

Antworten von ChatGPT auf meine Fragen.
- By Lothar Jung Date 2025-06-04 16:16 Edited 2025-06-04 16:26 Upvotes 1
Process Lasso ist ein spezialisiertes Windows-Tool, das fortgeschrittene Kontrolle über die CPU-Zuweisung und Prozessverwaltung ermöglicht. Besonders für Nutzer mit leistungsstarken Mehrkernprozessoren wie dem Ryzen 9 7945HX bietet es eine einfache Möglichkeit, einzelne Anwendungen gezielt auf bestimmte physische Kerne zu beschränken und dabei Hyperthreading-Kerne auszuschließen. Gerade bei rechenintensiven Programmen wie Schachengines, die deterministische und konsistente Performance benötigen, kann Process Lasso helfen, Störungen durch Betriebssystemprozesse, SMT-Interferenzen oder Hintergrunddienste zu vermeiden.

Nach der Installation arbeitet Process Lasso im Hintergrund und überwacht alle laufenden Prozesse. Über eine übersichtliche Benutzeroberfläche lassen sich für jeden Prozess individuelle Regeln festlegen, etwa zur CPU-Affinität, Priorität oder zum Energieprofil. Für Stockfish oder CuteChess CLI kann man mit wenigen Klicks definieren, dass die Engine dauerhaft nur auf den 16 physischen Kernen läuft – zum Beispiel durch das Abwählen aller SMT-Kerne. Diese Einstellungen lassen sich persistent speichern, sodass sie bei jedem Start automatisch angewendet werden.

Darüber hinaus bietet Process Lasso Funktionen zur Lastverteilung, zur Drosselung inaktiver Hintergrundprozesse und zur Vermeidung sogenannter CPU-Spitzen, was bei gleichzeitiger Nutzung von Turnier-GUIs, Logging oder Datenbankanwendungen für zusätzliche Stabilität sorgt. Für den täglichen Betrieb liefert das Programm eine lückenlose grafische Darstellung der CPU-Auslastung auf Thread-Basis, was die Optimierung des Systems nachvollziehbar und transparent macht.

Insbesondere für Entwickler, Streamer, Content Creators oder auch Leistungstests im Bereich KI und Schach bietet Process Lasso eine flexible und ressourcenschonende Möglichkeit, das volle Potenzial der CPU gezielt zu nutzen – ohne auf komplexe Kommandozeilenbefehle oder tiefgreifende Windows-Registry-Eingriffe zurückgreifen zu müssen. Es vereinfacht den Umgang mit Hochleistungshardware unter Windows erheblich und stellt eine professionelle Ergänzung für jedes performante Medien- oder Analyse-Setup dar.

Ein typisches Beispiel für den Einsatz von Process Lasso mit Stockfish besteht darin, die Engine dauerhaft auf die 16 physischen Kerne des Ryzen 9 7945HX zu beschränken, ohne dabei die logischen SMT-Kerne zu nutzen. Sobald Stockfish gestartet ist – entweder manuell oder über eine GUI wie CuteChess CLI –, erscheint der Prozess „stockfish.exe“ in der Prozessliste von Process Lasso. Über einen Rechtsklick auf diesen Eintrag öffnet man das Menü für die CPU-Affinität und wählt den Punkt „Immer“ sowie anschließend „Erweiterte CPU-Auswahl“.

Im daraufhin geöffneten Dialog sind sämtliche logischen Prozessoren des Systems aufgelistet, typischerweise von 0 bis 31. Da SMT die logischen Kerne jeweils an die physischen koppelt, befinden sich die echten physischen Kerne immer auf den geradzahligen Positionen. Um Stockfish ausschließlich auf den physischen Kernen laufen zu lassen, aktiviert man also die Prozessoren 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 und 30 – insgesamt also 16 Einheiten. Die ungeraden Einträge (1, 3, 5 usw.) bleiben dabei abgewählt, sodass die SMT-Kerne bewusst ausgeschlossen werden.

Nachdem diese Auswahl getroffen wurde, bestätigt man die Einstellung und sorgt dafür, dass Process Lasso diese Konfiguration dauerhaft speichert, indem man die Option „immer anwenden“ aktiviert. Fortan wird Stockfish bei jedem Start automatisch auf die definierten 16 Kerne begrenzt – unabhängig davon, ob die Engine direkt gestartet oder durch eine Turnierumgebung wie CuteChess CLI eingebunden wird.

Diese Maßnahme bringt klare Vorteile: Stockfish läuft stabil und mit maximaler Rechenleistung pro Thread, ohne dass sich Threads gegenseitig behindern oder durch SMT-Effekte ausgebremst werden. Gleichzeitig bleibt das Betriebssystem reaktionsschnell, da keine logischen Kerne überlastet werden. Gerade bei Dauerlast in Engine-Turnieren, Benchmarks oder komplexen Analysen verbessert diese feste Affinität nicht nur die Leistung, sondern auch die Energieeffizienz und Konsistenz der Ergebnisse. Process Lasso macht diese Form der Feinkonfiguration unter Windows auch für anspruchsvolle Nutzer einfach zugänglich, ohne dass tiefere Eingriffe ins System nötig wären.

https://bitsum.com/tools/cpu-affinity-calculator/

Process Lasso ist in einer kostenlosen Version erhältlich, die viele grundlegende Funktionen bietet. Für Nutzer, die erweiterte Funktionen wie unbegrenzte Regeln, permanente CPU-Affinitäten und Prioritätszuweisungen benötigen, steht die Pro-Version zur Verfügung.

Die Preise für Process Lasso Pro variieren je nach Lizenztyp:
  •  Einzellizenz für einen PC:
  •  Monatlich: $4,95 (aktuell $2,97 mit 40 % Rabatt)
  •  Jährlich: $24,95 (aktuell $14,97)
  •  Lebenslang: $39,95 (aktuell $23,97) 
  •  Lizenz für den gesamten Haushalt (bis zu 5 PCs):
  •  Monatlich: $5,95 (aktuell $3,57)
  •  Jährlich: $36,95 (aktuell $22,17)
  •  Lebenslang: $64,95 (aktuell $38,97)  

Alle Preise beinhalten derzeit einen Rabatt von 40 % mit dem Code LASSOIT.  

Für Unternehmen oder Nutzer mit mehreren Geräten bietet Bitsum auch Volumenlizenzen an, die gestaffelte Rabatte für Pakete von 5, 25, 50 oder 100 Lizenzen beinhalten.  

Die kostenlose Version von Process Lasso kann unbegrenzt genutzt werden, allerdings sind einige fortgeschrittene Funktionen nur in der Pro-Version verfügbar oder unterliegen Einschränkungen.  

Weitere Informationen und die Möglichkeit zum Kauf findest du auf der offiziellen Website von Bitsum: bitsum.com. 
- - By Lothar Jung Date 2025-06-04 16:29 Upvotes 1
Ein typisches Turniersetup mit CuteChess CLI auf einem Ryzen 9 7945HX, das auf maximale Effizienz und Kontrolle über die physischen Kerne ausgelegt ist, kann so aussehen: Man nutzt vier Instanzen von Stockfish, jeweils mit vier Threads, und verteilt diese exakt auf die 16 physischen Kerne der CPU. Dadurch vermeidet man jegliche Überschneidungen durch Hyperthreading und sorgt für eine gleichmäßige, stabile Auslastung der Hardware.

Dazu legt man ein Batch-Skript unter Windows an, etwa mit dem Namen „turnier.bat“. In diesem Skript wird CuteChess CLI aufgerufen, mit vier Engine-Instanzen, die jeweils mit option Threads=4 konfiguriert sind. Zusätzlich kann man – sofern CuteChess es zulässt oder über einen Wrapper – für jede Engine eine CPU-Affinität festlegen. In einem idealen Szenario nutzt die erste Engine die Kerne 0 bis 3, die zweite 4 bis 7, die dritte 8 bis 11 und die vierte 12 bis 15. Damit ist jeder physische Kern einmal belegt, und die Rechenleistung wird voll ausgeschöpft, ohne dass es zu Cache-Kollisionen oder SMT-Störungen kommt.

Für jede Engine wird in der Kommandozeile der Pfad zur Stockfish-Executable angegeben, etwa C:\Engines\stockfish.exe, und die Engines erhalten jeweils eindeutige Namen wie „SF-A“ bis „SF-D“. Die Zeile zur Ausführung von CuteChess CLI enthält außerdem Parameter wie -tournament gauntlet, -games 20 für die Anzahl der Partien, -concurrency 4 für die gleichzeitige Ausführung aller vier Engines, und -each tc=60+0.1 für eine Bedenkzeit von 60 Sekunden plus 0.1 Sekunde Inkrement. Optional kann auch ein Eröffnungsbuch im PGN-Format eingebunden werden, und die Ergebnisse werden in eine Datei wie results.pgn geschrieben.

Falls man unter Windows keine direkte Affinität über CuteChess CLI setzen kann, gibt es zwei Alternativen: Entweder man startet jede Engine über eine separate Batch-Datei, die mit dem Befehl start /affinity die gewünschte CPU-Maske setzt – zum Beispiel start /affinity F0 stockfish.exe für die Kerne 4 bis 7 – oder man verwendet ein Tool wie Process Lasso, um die Affinität dauerhaft für jede Instanz festzulegen. Letzteres ist besonders komfortabel, da die Zuordnung auch bei Neustarts erhalten bleibt.

Durch diese präzise Konfiguration wird die Turnierumgebung nicht nur leistungsfähig und energieeffizient, sondern auch deterministisch reproduzierbar – ein entscheidender Vorteil für ernsthafte Engine-Vergleiche und Langzeitanalysen. Wenn gewünscht, kann dieselbe Struktur auch unter Linux oder WSL2 mit dem Befehl taskset umgesetzt werden, wobei sich der Grundgedanke nicht ändert: jede Engine erhält ihren dedizierten, physischen Kernbereich – ohne SMT, ohne Interferenzen.
Parent - - By Reinhold Stibi Date 2025-06-04 16:38 Edited 2025-06-04 16:45
Dieser Schnick-Schnack bringt doch überhaupt nichts; zumal  die Hardware im Computerschach und auch
in anderen Bereichen keine große Rolle mehr spielt. Alles was über 8 Kerne/16 Threads liegt ist eigentlich
überflüssig und verbraucht nur übermäßig Energie.
Sich damit zu beschäftigen ist m.E. Zeitverschwendung.
Parent - By Lothar Jung Date 2025-06-04 16:44 Upvotes 1
Ich habe eigentlich an Enginetester gedacht.
Und im wesentlichen mit Cutechess cli, wie Stephan Pohl es durchführt.
Parent - By Peter Weise Date 2025-06-05 08:17 Upvotes 1
Dieter Nuhr.
Up Topic Hauptforen / CSS-Forum / Nur echte Kerne festlegen

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill