Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Frage an die Profis was bringt AVX 512
- - By Robert Schlüter Date 2023-12-27 10:08 Upvotes 1
Da in einer meiner vorherigen Fragen hier im Forum ob HT etwas an Performance im Engine Schach bringt, Ist wohl der Großteil hier im Forum der Meinung das es gegen Null tendiert !

Jetzt habe ich natürlich die E-Cores auf meinen zweiten PC deaktiviert, dadurch ist nun auf dem Intel 12900K AVX 512 nutzbar !

Mache natürlich selbst einen Testlauf mit ShashChess AVX 512 !

Es dauert natürlich bis ein paar hundert Partien zusammen kommen, Deshalb mal die Frage gibt es schon erfahrungswerte ob AVX 512 ein paar Elos dazu gewinnen kann gegenüber AVX 2 oder BMI ???

Im voraus Danke
Parent - - By Reinhold Stibi Date 2023-12-27 10:37
Hallo Robert,

teste doch einfach Stockfish in der Grundstellung und vergleiche dann die kN/s.

Spielerisch wirst du da keinen Unterschied merken und dieser wenn vorhanden
wäre dann nur Zufall.

Ob jetzt Stockfish ca. 5 Elos dazugewinnen könnte spielt doch keine Rolle; erheblich
wären nur ca. 20 Elo und das ist mit Sicherheit nicht drin.
Parent - - By Robert Schlüter Date 2023-12-27 12:19
Hallo Reinhold !

Welche Version von Stockfish unterstützt AVX 512 ? Auf abrok.eu finde ich nur Stockfish Versionen die AVX 2 nutzen !
Parent - - By Stefan Pohl Date 2023-12-27 12:35 Upvotes 2
Robert Schlüter schrieb:

Hallo Reinhold !

Welche Version von Stockfish unterstützt AVX 512 ? Auf abrok.eu finde ich nur Stockfish Versionen die AVX 2 nutzen !


Die aktuellste Dev Version von Stockfish gibt es auch direkt vom Stockfishteam zum Download:
https://github.com/official-stockfish/Stockfish/releases

Dort gibt es auch AVX512 Binaries.

Direkter Download:
https://github.com/official-stockfish/Stockfish/releases/download/stockfish-dev-20231222-fbdf5d94/stockfish-windows-x86-64-avx512.zip
Parent - By Robert Schlüter Date 2023-12-27 17:36
Danke
Parent - - By Max Siegfried Date 2023-12-27 16:22 Upvotes 1
Reinhold Stibi schrieb:

Hallo Robert,

teste doch einfach Stockfish in der Grundstellung und vergleiche dann die kN/s.

Spielerisch wirst du da keinen Unterschied merken und dieser wenn vorhanden
wäre dann nur Zufall.

Ob jetzt Stockfish ca. 5 Elos dazugewinnen könnte spielt doch keine Rolle; erheblich
wären nur ca. 20 Elo und das ist mit Sicherheit nicht drin.


Vor Ewigkeiten, als die Engines deutlich schwächer waren, hat eine Verdopplung (das sind +100%) der kN/s ein Plus von 40 Elo gebracht.
Später 30, 20, 10.
Jetzt müssten wir bei 5 bis 1 Elo sein.

Gehen wir einmal von 2 unterschiedlichen CPUs ohne Hyperthreading aus:
CPU Nr. 1 hat 10000 kN/s
CPU Nr. 2 hat 20000 kN/s
+100% = +5 Elo

Wenn AVX 512 nur +10% schneller ist als AVX 2, dann sind das in der Realität bestenfalls +0,50 Elo.
Falls wir wie weiter oben erwähnt von nur +1 Elo ausgehen, dann sind das jetzt +0,10 Elo.
Das sind aber trotzdem echte +0,50 bzw. +0,10 Elo.

Je höher die oben genannten Werte (z.B. CPU Nr. 1 hat 30000 kN/s,  CPU Nr. 2 hat 60000 kN/s), desto kleiner wir der Elo Gewinn.
Mal angenommen der Elo Gewinn würde hier +2,50 bis +0,50 Elo betragen:
Wenn AVX 512 nur +10% schneller ist als AVX 2, dann sind das in der Realität bestenfalls +0,25 Elo.
Falls wir wie weiter oben erwähnt von nur +0,50 Elo ausgehen, dann sind das jetzt +0,05 Elo.

Du siehst also das AVX 512, falls es etwas mehr kN/s bringen sollte (+10%), gefühlt nichts an Elo bringt.

----------------------------------------------------------

Das ganze ist aber immer noch deutlich besser als "Hyperthreading On".
Da würdest du von 30000 kN/s auf 45000 kN/s (das sind +50%) kommen.
Nur das eine CPU mit HT On und 45000 kN/s in etwas so stark ist wie eine andere CPU mit HT Off und 33000 kN/s, weil "Hyperthreading".
Somit hast du eine echte Steigerung von 30000 auf nur 33000 kN/s vollzogen.
Das sind gerade einmal +10%, weder +50% noch +100%.
Der Elo Gewinn wäre also deutlich kleiner als die zuvor erwähnten, mikroskopisch kleinen Elo Gewinne weiter oben.

Somit müsstest du in jeder Stockfish CPU Rangliste (ipmanchess) wissen, welche CPU mit Hyperthreading on/off getestet wurde und ob die Leute welche ihre Ergebnisse eingereicht haben, überhaupt wussten was sie einstellen und wie sie testen sollen.
Bringt ja nichts wenn dir suggeriert wird das CPU X 45000 kN/s hat (aber nur mit HT On) was nur 33000 echten kN/s entspricht. Somit könntest du z.B. eine 33000 oder 35000 kN/s CPU verwenden und wärst Elo technisch gleich gut bzw. sogar besser.

------------------------------------------------------------------------------

Mit Dotprod (Dot Product) erhältst du massive Steigerungen, aber nur auf ARM CPUs.
Parent - By Reinhold Stibi Date 2023-12-27 17:44 Upvotes 1
Also es ist vollkommen egal ob man avx2 oder avx 512 nimmt.

1 Elo oder sogar darunter ist kaum messbar, da müssten ja wahrscheinlich 10000 Partien gespielt werden
und was würde das letzten Endes was bringen.
Parent - By Lothar Jung Date 2023-12-27 12:02
Wenn die Threads der E-Cores wegfallen könnten die kN/sec. niedriger sein.
Parent - - By Thomas Plaschke Date 2023-12-27 12:26
Wenn AVX512 gegenüber BMI2 oder AVX2 etwas mehr an Knoten bringt, hängt das auch vom verwendeten Prozessor ab. Meine Erfahrung beruht auf einem Skylake-X-Prozessor. Auf dieser CPU ist im Single-Thread-Test AVX512 bestenfalls 2-3 Prozent schneller (clang-Compilat, mingw deutlich langsamer). Im Multi-Thread-Betrieb ist BMI2 schneller. Wenn ich mich recht entsinne, kommen dafür verschiedene Ursachen infrage. Einerseits wird die AVX512-Einheit niedriger "betaktet" und andererseits gibt es davon nur eine pro core, sodass es im HT-Betrieb zu Wartezuständen kommen kann, wenn der CPU-Kern von 2 Threads genutzt wird. Aber wie dem auch sei. Mit meiner Skylake-X-CPU sollte ich AVX512 zur optimalen nps-Ausbeute nur im Single-Thread-Betrieb nutzen.

Um herauszufinden, wie es sich auf Deiner CPU verhält, könntest Du mit Build Tester ausprobieren, was am besten geht. Build Tester ist nämlich ein Programm, das dabei helfen kann. Man findet es z.B. hier: software.farseer.org.

In das Feld Command line trägt man den Stockfish Benchmark-Befehl bench ein. Dann läuft ein Benchmark-Test mit 16 MB für Hash-Tabellen mit 1 Thread bis 13 Halbzügen Rechentiefe ab. Um Multi-Thread-Test laufen zu lassen, muss man angeben, wie viele Threads laufen sollen. So kann man mit bench 16 8 13 default depth alle erforderlichen Parameter angeben: 16 MB mit dem ersten Wert, mit dem zweiten Wert die Anzahl der Threads und der letzte Wert gibt die Rechentiefe an. "default depth" stellt klar, dass der letzte Wert die gewünschte Rechentiefe von 13 Halbzügen sein soll. Man könnte auch die Testdauer angeben, aber das nur der Vollständigkeit halber.

Die zu testenden Engines kopiere ich immer in das Verzeichnis des Build Testers (die NNUE-Datei nicht vergessen, wenn sie nicht embedded ist). Eine Bedienungsanleitung liegt dem Programm bei. Zur Interpretation der Ergebnisse: Bei Single-Threaded-Tests sind die Avg. time/run-Werte und die nps-Werte Average, Best und Worst untereinander vergleichbar. Im Multi-Thread-Test sind die Avg. time/run-Werte nicht unmittelbar vergleichbar, da sie nicht reprodizierbar sind - was in der Natur des Multithreadings der Schach-Engines liegt.

Ich wünsche erkenntnisreiche Tests.

Viele Grüße
Th. Plaschke
Parent - By Robert Schlüter Date 2023-12-27 17:39
Danke
Up Topic Hauptforen / CSS-Forum / Frage an die Profis was bringt AVX 512

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill