Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Geschwindigkeit der Stockfish-Kompilate
- - By Benno Hartwig Date 2020-08-02 12:19 Edited 2020-08-02 13:06
Im alten Stockfish und auch, wenn man jetzt kein NNUE nutzt, sind die Geschwindigkeiten so, wie man es irgendwie erwartet:
Auch 32bit ist schon ganz schön flott, x64 ist ein gutes Stück schneller, und die Befehlssatzerweiterungen bringen noch ein Quäntchen mehr:
(Ausgangsstellung, Sh3 gezogen, genau 60 Sekunden für den Antwortzug, auf einem i5-6200U mit 2,3 GHz)

Engine                              Pos/Min     Pos/Sek  %(32bit)  %(bmi2)
###########################################################################
Stockfish_20080109_32bit         45.943.539     765.726     100%    62,4% 
Stockfish_20080109_x64           66.921.395   1.115.357     146%    90,8%   
Stockfish_20080109_x64_modern    71.042.613   1.184.044     155%    96,4%   
Stockfish_20080109_x64_avx2      71.425.970   1.190.433     155%    97,0%   
Stockfish_20080109_x64_bmi2      73.665.917   1.227.765     160%   100,0%

Aber bei NNUE-Nutzung sieht es deutlich anders aus:

Engine                              Pos/Min     Pos/Sek  %(32bit)  %(bmi2)
###########################################################################
Stockfish_20080109_32bit          3.452.230      57.537     100%     7,8%
Stockfish_20080109_x64            4.442.966      74.049     129%    10,0%
Stockfish_20080109_x64_modern    31.981.855     533.031     926%    72,3%
Stockfish_20080109_x64_avx2      42.072.799     701.213    1219%    95,1%
Stockfish_20080109_x64_bmi2      44.236.150     737.269    1281%   100,0%

"avx2" und "bmi2" verhalten sich so, wie man es vielleicht erwarten möchte, aber "modern" schwächelt schon etwas überraschend, und "x64" und "32bit" sind wirklich gewaltig ausgebremst.
Versteht jemand von euch, warum dies so ist?
Parent - - By Thomas Zipproth Date 2020-08-02 13:39 Upvotes 1
Für die effiziente Berechnung von neuronalen Netzen werden die erweiterten Befehlssätze moderner Prozessoren gebraucht.
Diese ermöglichen es unter anderem mehrere identische Operationen parallel mit einem Befehl auszuführen.
Stichwort SIMD (Single Instruction, Multiple Data)

Relevante  Steigerungen sind ungefähr in folgender Reihenfolge aufgetreten:

sse         (Streaming SIMD Extensions, 1999)
sse41      (Streaming SIMD Extensions 4, 2006)
avx2       (Advanced Vector Extensions + Haswell New Instructions, 2013)
avx512    (2017)

Bei modern fehlt avx2.
x64 sowie 32bit können nur auf sse zurückgreifen, was bei nnue Netzen wohl keine Vorteile bringt.
bmi2 schliesst avx2 ein sowie die Haswell new Instructions, die bei Bitboards nützlich sind.
Parent - - By Benno Hartwig Date 2020-08-02 14:17 Edited 2020-08-02 14:24
Danke für die Infos.
Ich habe durch diese Messergebnisse eine völlig neue Sicht auf diese Befehlssatz-Erweiterungen gewonnen.
Bei geeigneten Problemstellungen eröffnen sich mit diesen Erweiterungen tatsächlich ja ganz andere Möglichkeiten!
Zwischen einfachen x64 und bmi2 liegt hier tatsächlich ja ein Faktor 10 (!!!) in der Geschwindigkeit.
Der nicht-NNUE-Stockfish gewinnt hier gerade mal 10%, also nur Faktor 1,1!
Wow!!!
Parent - By Peter Martan Date 2020-08-02 14:40 Edited 2020-08-02 14:53
Ja, das macht bei NNUE einen größeren Unterschied, wobei es eigenartiger Weise auch Compiles gibt, die avx im Namen haben, aber offenbar nicht alle avx2- Anforderungen stellen,  mit meinem alten Xeon X5670 funktionieren, obwohl der nicht avx2- fähig ist, und deutlich schneller sind als popcnt. Am 24.7. hat's z.B. eines gegeben, das heißt AIIAVXpopcnt, war wohl auf der github site von nodchip, muss erstmal den Link wieder finden, wenn's wer genau wissen will.

Enigma 1.0 hatte eines, das hieß popcnt- Legacy, (Enigma 1.10 nicht mehr, dafür ist das popcnt schneller geworden) ShashChess hat eines namens popcnt-sse3, diese alle sind bei mir deutlich schneller als popcnt, ein echtes avx2- compile funktioniert nicht.

Man muss am besten wirklich alle, die in Frage kommen, erst mal mit Doppelklick in der Console zu starten versuchen und schauen, was das schnellste ist von denen, die sich starten lassen.
Parent - By Peter Martan Date 2020-08-02 17:16 Edited 2020-08-02 17:22
P.S. War es übrigens vielleicht ein popcnt- Compile von SFNNUE, das bei dir gegen ein popcnt non- NNUE- Compile nicht so gut abgeschnitten hatte wie das FireFather- Compile?
Up Topic Hauptforen / CSS-Forum / Geschwindigkeit der Stockfish-Kompilate

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill