Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Computerleistung in Bezug auf Schachprogramme benchen
1 2 Previous Next  
- - By Peter Weise Date 2019-08-03 13:53
Mich würde es sehr interessieren vielleicht finden sich Mitstreiter? Wir könnten hier doch eine Listung etablieren welche laufend erweitert wird mit genau definierten Bedingungen? Ich wäre sofort dabei und würde auch gerne helfen eine Liste regelmäßig zu pflegen.
Festes Schachprogramm mit genau festgelegten Einstellungen (am besten Stockfish 10 64bit) und dann die nps mitteilen/eintragen. Das alles in der Konsole und mit einem Core. Auch gerne alte CPUs und Tablets, Netbooks, Handys usw.
Parent - - By Peter Weise Date 2019-08-03 14:18
Ich mache einfach mal den Anfang.

Stockfish 10 popcount (stockfish_18111911_x64_modern.exe) auf einem Core und 512 MB Hash (setoption name Hash value 512). "Go infinite" nach einer Minute:


Intel i7-8850H mit 3.8 GHz    | 2.200.000 nps
Intel Celeron 847 mit 1.1 GHz |   470.000 nps
Parent - - By Olaf Jenkner Date 2019-08-03 14:47
Falls damit die Geschwindikgkeit der Hardware gemessen werden soll, scheint mir diese Methode ungeeignet.
Nach einer Minute sind verschieden schnelle Rechner in verschiedenen Suchtiefen. Die Knoten pro Sekunde sind aber vor der Suchtiefe abhängig und taugen nicht als Meßwert.
Parent - - By Peter Weise Date 2019-08-03 15:24
Das verstehe ich jetzt nicht so ganz. So wird doch auch u.a. immer das LC0-Ratio ermittelt auf den verschiedenen PCs falls eine Grafikkarte vorhanden ist. Ist dieses dann auch unrichtig wegen der unterschiedlichen Suchtiefen? Die künstlichen Benchmarks messen ja auch viele Dinge welche für die Schachperformance nicht relevant sind. Was würdest du vorschlagen?
Parent - By Olaf Jenkner Date 2019-08-03 16:30
Die nps hängen von der Stellung ab und die Stellung von der Suchtiefe, also wird eine Messung prinzipiell ungenau.
Die Überschrift finde ich nicht irreführend, mir war klar, was gemeint ist.
Parent - By Guenter Stertenbrink Date 2019-08-03 15:39 Edited 2019-08-03 15:47
das macht meist nicht so viel aus in der Ausgangsstellung.

Das groessere Problem duerfte "heat-throttling" sein, wenn das System den Prozessor
drosselt, weil er zu warm wird  --- aber bei einem thread wohl kaum
Parent - - By Peter Weise Date 2019-08-03 15:49
Mist, ich sehe den Fehler: die Überschrift.

Eine Bitte an die Moderation: wäre es möglich die Überschrift zu ändern in:
Computerleistung in Bezug auf Schachprogramme benchen?
Parent - - By Thomas Müller Date 2019-08-03 16:32
erl.
Parent - By Peter Weise Date 2019-08-03 17:18
Danke.
Parent - By Guenter Stertenbrink Date 2019-08-03 15:13 Edited 2019-08-03 16:09
alles nur auf einem core ?
Ansonsten verweise ich z.B. auf ipman's Liste, die man nehmen und erweitern koennte.

Intel Atom Z3735f , 1.8GHz , asmFish , 454 kn/s
ARM A73 , 1.8 GHz , C-Fish - arm8 -pgo , 675 kn/s
ARM A53 , 1.3 GHz , C-Fish - arm8 -pgo , 270 kn/s

(Stockfish auf Android geht nicht so gut)

Intel Core 2 Duo T7500 2.2GHz , 32bit, 213 kn/s
Parent - By Peter Weise Date 2019-08-03 18:38
Mein Desktop i7-4770 mit festen 3.2 GHz fehlte noch. Mehr habe ich gerade nicht zu bieten:

Intel i7-8850H mit 3.8 GHz    | 2.200.000 nps
Intel i7-4770 mit 3.2 GHz     | 1.700.000 nps
Intel Celeron 847 mit 1.1 GHz |   470.000 nps

Ich hoffe es kommen noch ein paar Messwerte von anderen hier?! Stefan Pohl, Clemens Keck, Lothar Jung, Wolfgang Battig, Reinhold Stibi, Günther Stertenbrink mit den vielen Tablets und all die anderen welche ich jetzt vergessen habe sorry.
Schon jetzt Danke dafür.
Parent - By Peter Weise Date 2019-08-14 20:41
Danke für die rege Teilnahme bisher. Ab nächster Woche habe ich das Büro für 2 Wochen zu und hoffe Zeit zu finden alle Messungen hier in Form einer Tabelle zu bringen.
- - By Bernd Willmann Date 2019-08-03 16:57
Hallo zusammen,

da ich wenig auf Konsolenebene arbeitete, könnte bitte mal jemand den Befehl posten (Windows).

Danke
Parent - By Peter Weise Date 2019-08-03 17:18
Welchen, welche, Befehl(e) genau?
Parent - - By Klaus S. Date 2019-08-04 09:43
Du must zuerst ins Verzeichnis gehen wo du die SF10 exe gespeicherst hast.

Bei mir E:\UCI_Engines\Stockfish\2018

Dann den Namen der SF10.exe eingeben.  (Bei mir SF_181129_10-x64_bmi2.exe)
Return

Es wird Stockfish 10 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott angezeigt

Dann
setoption name Hash value 512  eingeben.

(Die Anzahl der cores ist per default schon auf 1 eingestellt)

Nun go infinite eintippen

Nach 1 min  Stop  Return

info depth 29 seldepth 42 multipv 1 score cp 53 nodes 110581837 nps 1812608 hashfull 999 tbhits 0 time 61007 pv e2e4 e7e6 d2d4 d7d5 b1d2 c7c5 e4d5 e6d5 g1f3 g8f6

time 61007  bedeutet 61 sec
Parent - By Bernd Willmann Date 2019-08-04 10:05
OH danke,
genau das meinte ist; recht herzlichen Dank 
Parent - - By Heiko Bruns Date 2019-08-04 11:17
Hallo,
meiner Meinung nach sind hier schon 2 Ungenauigkeiten.

Es sollte schon immer die selbe Version sein. Gleiche Versionsnummer. Über die verschieden compillerten Versionen - modern, bmi2 etc. - lässt sich streiten.

61 sec sind keine 60 sec - Umrechnen auf 60 sec oder die genaue Zeit mit angeben.

Wäre es da nicht besser über den time Befehl zu gehen?

Gruß Heiko
Parent - - By Reinhold Stibi Date 2019-08-04 11:46
Man kann auch alles übertreiben und in der Praxis spielt es überhaupt keine Rolle
ob ein Computer 10% mehr Leistung bringt oder nicht. 

Wichtig ist das ein Vergleich praxisbezogen ist und das ist n.m.M.

Teststellung: Grundstellung  Stockfish 10 (auch andere Versionen spielen keine große Rolle)
                                          GUI Fritz
                                          Windows 10
                                          Knotenzahl nach 1 Min.
Da brauche ich doch keine Test die kaum bekannt sind und schon in den wissenschaftlichen Bereich gehen
und nur wenige Leute damit etwas anfangen können.
Parent - - By Peter Weise Date 2019-08-04 13:08
Genau so sehe ich das auch!
Parent - - By Heiko Bruns Date 2019-08-04 15:50
Verstehe ich.

Aber dann ist das ganze ohne Aussage.

Folgende Werte habe ich aus der http://www.ipmanchess.yolasite.com/amd---intel-chess-bench.php

12.858.799 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
13.182.813 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
15.064.542 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
15.981.027 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
17.227.989 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
18.020.651 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
19.321.230 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
19.615.640 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
21.943.636 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
24.325.520 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
28.578.506 Nodes/s AMD Ryzen R7 1800X @4.0Ghz

Also bei der Streuung sehr sinn frei der Test.

Gruß Heiko
Parent - - By Guenter Stertenbrink Date 2019-08-04 16:14
das sind verschiedene threads-Anzahlen, verschiedene Compilate

z.B. 12858799 ist fuer "8 cores" BMI2 und langsamen RAM
28578506 ist fuer 16 threads , popcnt und largepages

Heiko Bruns schrieb:

Verstehe ich.

Aber dann ist das ganze ohne Aussage.

Folgende Werte habe ich aus der <a class='urs' href='http://www.ipmanchess.yolasite.com/amd---intel-chess-bench.php'>http://www.ipmanchess.yolasite.com/amd---intel-chess-bench.php</a>

12.858.799 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
13.182.813 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
15.064.542 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
15.981.027 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
17.227.989 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
18.020.651 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
19.321.230 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
19.615.640 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
21.943.636 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
24.325.520 Nodes/s AMD Ryzen R7 1800X @4.0Ghz
28.578.506 Nodes/s AMD Ryzen R7 1800X @4.0Ghz

Also bei der Streuung sehr sinn frei der Test.

Gruß Heiko
Parent - By Heiko Bruns Date 2019-08-04 16:55
Threads ok - war ja beim Test auf 1 Thread begrenzt.

die Angaben sollten z.B. sein:

Intel i7-8850H mit 3.8 GHz    | 2.200.000 nps
Intel Celeron 847 mit 1.1 GHz |   470.000 nps

also alles andere wird nicht berücksichtigt.
Das wollte ich nur bei meinem ersten Post sagen.
Parent - - By Klaus S. Date 2019-08-04 12:33 Edited 2019-08-04 12:36
Heiko Bruns schrieb:

Hallo,
meiner Meinung nach sind hier schon 2 Ungenauigkeiten.

Es sollte schon immer die selbe Version sein. Gleiche Versionsnummer. Über die verschieden compillerten Versionen - modern, bmi2 etc. - lässt sich streiten.

61 sec sind keine 60 sec - Umrechnen auf 60 sec oder die genaue Zeit mit angeben.

Wäre es da nicht besser über den time Befehl zu gehen?

Gruß Heiko

Keine Ahnung. 

Habe mich auf die Angaben des Threaderstellers verlassen. (Go Infinite)

Das mit dem Stoppen ist verwirrend da ja während der Eingabe die Engine weiterläuft.

Die Version ist SF10 wie man an der Ausgabe sieht:

Es wird Stockfish 10 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott angezeigt.

Die .exe wurde nur von mir umbenannt (für meine Archivierung)

Wie ist der genaue Befehl für 60sec. ?

setoption time 60000  (oder movetime) geht jedenfalls nicht.
Parent - - By Jörg Oster Date 2019-08-04 12:38
go movetime 60000

Stockfish hält sich da sehr genau an die vorgegebene Zeitspanne.
Das muss aber nicht bei jeder Engine so sein.
Parent - By Klaus S. Date 2019-08-04 12:42
Thanks (i'm so stupid)
Parent - By Peter Weise Date 2019-08-04 13:07
Es geht mir nicht um eine Sekunde hin oder her. Und die nps dürfen gerne gerundet sein. Ob nun 1.700.000 oder 1.700.100 spielt für Tesst keine Rolle und die Ausgabe der Programme schwankt eh von Versuch zu Versuch.
Parent - - By Guenter Stertenbrink Date 2019-08-04 11:58 Edited 2019-08-04 12:42
stop heisst quit auf uci-isch

ARM7-A33 , 1.3GHz , C-Fish-pgo (Hagtorp oder Alexej1976-compile) , 108kn/s
CFish-271218-arm7-pgo

stockfish 9 (compile that comes with droidfish)  has also 108 kn/s here

CFish 397 kn/s , ARM8 - Helio X10 (8xA53) , 2.2GHz
(400kn/s auf 1 Kern, aber praktisch im Dauerbetrieb nur 1000kn/s auf 8 Kernen wegen heat-throttling
kann mit Luefter auf ca. 1300 kn/s gesteigert werden)
Parent - By Jörg Oster Date 2019-08-04 12:14
Das ist nicht ganz richtig.

Bezogen auf UCI
beendet 'stop' den aktuellen Denkprozess und veranlasst die Engine zur Ausgabe des besten Zuges.
beendet 'quit' die Engine.
Parent - - By Eduard Nemeth Date 2019-08-04 12:59 Edited 2019-08-04 13:06
Auf einem Kern (von 8) des Kirin 710 macht Cfish arm8 533 kns. Auf 2 Kernen 1244 kns. Woher der Unterschied kommt weiss ich nicht.

Und auf 4 Kernen 2350 kns nach einer Minute.
Parent - By Guenter Stertenbrink Date 2019-08-04 14:13 Edited 2019-08-04 14:19
Kirin 710 :
> 4*A73@2.2GHz+4*A53@1.7GHz

1 Kern ist also A73(2.2GHz) , dafuer bekomme ich  825 kn/s , s.o.

ungerechnet auf 2GHz mit CFish-arm8-pgo

A33,166
A53,415
A73,750

das macht alles einfacher, nur 3 ARMs , alle 2GHz
Parent - - By Thomas Lagershausen Date 2019-08-04 14:18
Sei noch so nett und nenn uns die kn/sec von CFish auf allen 8 Kernen deines flotten Handys.

PS: Ist es ein Honor oder ein Huawei?
Parent - - By Eduard Nemeth Date 2019-08-04 14:57
Habe ein Honor 10 lite.
Die pgo Version ist etwas schneller. Habe soeben vom MZ Forum CF-EXT-170719 installiert. Nach 60s auf 2 Kirin 710 Kernen in Grundstellung 1330 kns.

Auf 8 Kernen mit 256 MB Hash
geht die pgo Version auf 3700 kns hoch, und fällt nach 60s auf 3300 kns.

Eine recht stabile Leistung gibt es wohl nur bis zu 4 Kerne.
Parent - - By Thomas Lagershausen Date 2019-08-04 16:21
Vielleicht sind auch deine Hashtabellen zu schnell gefüllt bei 8 Kernen und 256 MB Hash.

Bei 8 Kernen kannst Du auch 512 MB Hash nutzen.
Parent - - By Eduard Nemeth Date 2019-08-04 17:15
Habe es jetzt mit 512 MB und 1024 MB getestet. Bei 1024 waren die HT nach 30s zu 95% schon voll. Da hast Du Recht. Leider ist der Effekt derselbe wie bei 256 MB. Vemutlich wird die Leistung wegen Wärme gedrosselt. Das lässt sich ändern indem man den Leistungsmodus einschaltet. Habe es bisher nicht getan. Es erscheint eine Warnung vor möglicher Überhitzung.
Parent - - By Eduard Nemeth Date 2019-08-04 17:24
Habe jetzt den Leistungsmodus für eine Minute getestet. Hash 1024 MB, Cfish 170719 arm8-pgo. Der Wert fällt nach einer Minute von 3700 kns auf genau 3500 kns. Der Akku ist übrigens ganz gut im Normalmodus.
Parent - - By Eduard Nemeth Date 2019-08-04 17:36
Im Leistungsmodus, mit einem Kern und 1024 MB Hash schafft Cfish genau 680 kns nach einer Minute.
Parent - - By Guenter Stertenbrink Date 2019-08-05 08:05 Edited 2019-08-05 08:57
im Dauerbetrieb am Netzteil wuerde ich einen Tablet-Luefter (gibt's faltbar fuer 3Euro)
empfehlen. Evtl. braucht man noch einen micro-USB-Hub (2Euro)
Ich hoffe, das reduziert auch das Problem mit den aufgeblaehten Akkus ...
--------------------
ich teste die Tablets meist in Droidfish, das gibt etwa dieselben Zahlen wie
per Android-commandline (Jackpal)
---------------------------
das Huawei Mediapad M3 (Kirin 950 = 4xA72@2.3GHz+4xA53@1.8GHz)
mit CF-EXT-170719-arm8-pgo hat bei mir
734 kn/s auf einem Thread nach 1min am Netzteil
und ca. 3000 kn/s nach 1min mit 8 Threads (auf einer Eisenplatte ca.1mm)
das geht weiter runter ... 2914kn/s auf tiefe 32 nach 5min , 2727kn/s nach 797s
2632kn/s nach 1250s , hmm nur noch 2506kn/s nach 2808s , vielleicht weil
das Akku fast leer ist und zusaetzlich ladestrom fliesst

C-Fish-2018-12-27_arm8-pgo hat 5-10% mehr kn/s
Parent - - By Eduard Nemeth Date 2019-08-05 10:23
Nimm doch einfach 4 Kerne. Es werden dann die 4 schnelleren genutzt, es läuft stabiler, und macht fast genauso viele kns.
Parent - - By Guenter Stertenbrink Date 2019-08-05 10:38
moeglich. Das machte ich ja auch beim lc0-Test und mit dem Odroid-N2
(2500kn/s stabil, 4xA73@1.8GHz).
Aber hier geht's ja um's austesten. Ich versuch;s noch mit voll aufgeladenem Akku,
dann noch mit Luefter.
Zur Zeit 2358 kn/s , Akku bei 28%, nach 8000s, Kirin 950
Parent - - By Eduard Nemeth Date 2019-08-05 10:42
Der heute veröffentlichte Cfish-040819 (MZ Forum) schafft bei mir im Leistungsmodus auf 4 Kernen (müsste stabil laufen) nach einer Minute 2638 kns. Das ist übrigens genauso viel wie auf meinem Laptop core duo 2,4 GHz! Und wenn ich auf Schach. de damit spiele dann glaube nur nicht dass ich ständig verliere.Eben nicht! Gegen Gegner mit bis zu 8 Kernen läufts ordentlich. 
Parent - - By Guenter Stertenbrink Date 2019-08-07 15:19
Huawei Mediapad M3 mit 8 threads , Kirin 950 = 4*A72@2.3GHHz+4*A53@1.8GHz
CF-EXT-170719-arm8-pgo,analysis-mode in Droidfish
starts at 3200kn/s on a 1mm iron-plate
goes down to 2250kn/s while charging the battery
goes up to 2575kn/s with charged battery,

geht auch nicht weiter rauf mit Kuehler
Parent - - By Eduard Nemeth Date 2019-08-07 19:47
Hast Du auch den Leistungsmodus aktiviert? Unter Einstellungen - - > Akku - - > Leistungsmodus. Auf dem Kirin 710 macht Cfish bei mir damit konstant 3500 kns.
Parent - By Guenter Stertenbrink Date 2019-08-10 13:04
2640 kn/s krieg ich im Dauerbetrieb mit "Leistungsmodus" und C-Fish, mehr ist nicht drin.
Er (Huawei Mediapad M3) zieht dabei 5W .

Etwas mehr als der Odroid-N2 mit 2500kn/s (Android,Droidfish , 4 threads oder 6 threads - kein Unterschied)

Der Raspberry pi4b mit aehnlicher CPU schafft nur 1006kn/s ,
ich spekuliere, das liegt am 32-bit Raspbian Betriebssystem.
Irgendwann soll das auf 64-bit umprogrammiert werden ....
Android ist auch in der Entwicklung ...
Parent - - By Thorsten Czub Date 2019-08-04 23:56 Upvotes 1
Also ich habe das alles schon ermittelt mit Stockfish. Könnt ihr nachlesen:
http://talkchess.com/forum3/viewtopic.php?f=2&t=61460
Parent - By Guenter Stertenbrink Date 2019-08-05 08:08
kenn ich. Sehr gut.

Aber hier mit einem Thread und mit PCs etc. mit drin
Das misst mehr den Prozessor denn das Hitzemanagement
Parent - - By Peter Weise Date 2019-08-04 13:05
Vielen Dank - welcher Prozessor, welcher Takt?
Parent - By Klaus S. Date 2019-08-04 16:24
i7 6700  3.7GHz
Parent - - By Thomas Plaschke Date 2019-08-04 13:21
Dann möchte ich meinen Senf auch dazu geben.

Ich frage mich, warum man eine zeitliche Vorgabe für den Vergleich machen soll. Das für den Test verwendete Schachprogramm wird auf Rechnern unterschiedlicher Leistung nach 60 Sekunden in verschiedenen Bereichen des Suchbaums von unterschiedlicher Komplexität sein. Das ist keine gute voraussetzung für einen aussagekräftigen Vergleich.

Umso mehr als Stockfish die Testfunktion bereits mitbringt. Mit dem bench-Befehl kann man dafür sorgen, dass auf den verschiedenen Rechnern der identische Suchbaum absolviert wird. Das erkennt man an der Zahl der berechneten Knoten. Als Leistungsindex nimmt man schließlich die Knoten pro Sekunde (nps).

Ich verwende dafür zwei Dateien:

1. Eine Batch-Datei, die Stockfish startet. Man könnte sie sie benchsf.bat nennen.
Code:
@ECHO off
SET SF=%1
IF NOT EXIST %SF% GOTO RAUS
CLS
ECHO Starte %SF% ...
start /B /WAIT /REALTIME /AFFINITY 0x1 %SF% <CLine.txt >nul
pause
GOTO FERTIG
:RAUS
ECHO Programm %SF% nicht gefunden
:FERTIG
Kernpunkt ist die Zeile start /B /WAIT /REALTIME /AFFINITY 0x2 %SF% <SF_Kommandos.txt >nul. Sie startet Stockfish auf dem ersten Core der CPU (/AFFINITY 0x1) im - sonst besser nie manuell zu nutzenden - REALTIME-Modus. Damit versuche ich Stockfish einen eigenen Prozessor zu reservieren und diesen "ungestört" nutzen zu können.
Der Clou ist allerdings der Teil mit <SF_Kommandos.txt. SF_Kommandos.txt ist eine Textdatei, in der die Befehle stehen, die man Stockfish normalerweise über die Kommandozeile eingibt. Die so genannte Eingabeumleitung von einer Datei auf die Konsole erfolgt durch das Kleiner-Zeichen vor dem Textdateinamen.
Der Aufruf wird mit nul> abgeschlossen. Dieser Parameter sorgt dafür, dass die Stockfish-(Text-)ausgaben an das "Null-Device" umgleitet werden und nicht auf den Bildschirm (das macht das Größer-Zeichen). Ihr Anteil an der Rechenzeit wird dadurch reduziert und das Ergebnis aussagekräftiger - man will ja nicht die Geschwindigkeit der Textausgabe auf dem Bildschrm messen. DIe Programmierer von Stockfish waren so genial, das Benchmark-Ergebnis nicht über die hier ja umgelenkte Standard-Ausgabe auszugeben, sondern über die Fehler-Ausgabe (wenn ich mich nicht irre). Die wird so nicht umgeleitet und kann am Bildschirm abgelesen werden.

2. In der Datei SF_Kommandos.txt stehen die Kommandos, die Stockfish aufführen soll.
Code:
setoption name SyzygyPath value E:\Endspieltabellen\szTB
setoption name SyzygyProbeLimit value 0
bench 16 1 22
quit
In dieser Textdatei stehen die Befehle in der Reihenfolge, in der sie abgearbeitet werden sollen. Jeweils mit einem Zeilenumbruch <Enter> am Ende der Zeile, als ob man sie auf der Konsole eingeben würde. Als Beispiel die beiden ersten Zeilen, mit denen der Pfad zu den Endspieltabellen angegeben wird um in der zweiten Zeile wirkungslos gestellt zu werden. in Zeile 3 steht der eigentliche Benchmarkbefehl. Er wird mit 16 MBytes für Hash-Tabellen, mit 1 Thread bis Tiefe 22 ausgeführt. Auf den meisten PCs sollte der Test nach ca. 1 Minute beendet sein. Stockfish 10 berechnet dafür exakt 128.741.715 Knoten. Das sollte bei jedem unter Nodes searched in der Ausgabe stehen. Der eigentlich Leistungsindex wären dann die Nodes/second. Auf meinem Rechner waren das, während ich das hier geschrieben habe, 2.324.151 nps.
Die 4. Zeile sorgt schließlich dafür, das Stockfish beendet wird.

Beide Dateien gehören in ein Verzeichnis. Aufgerufen wird die Batch-Datei mit dem Pfad zum zu testenden Stockfish. Also bspw. so: benchsf c:\Arena\Engines\stockfish_10_x64_bmi2.exe.

Viel Spaß beim Testen
und viele Grüße
Th. Plaschke
Parent - - By Klaus S. Date 2019-08-04 16:02 Edited 2019-08-04 16:05
Hmm,

Zu 1.
in deinem Code steht: start /B /WAIT /REALTIME /AFFINITY 0x1 %SF% <CLine.txt >nul

In der Erklärung dazu steht: /AFFINITY 0x2 %SF% <SF_Kommandos.txt >nul

CLine.txt und <SF_Kommandos.txt >nul  ist wohl das gleiche, aber warum Affinity 0x2?  Typo?
Eine Zeile tiefer wieder  Affinity 0x1

Und: im - sonst besser nie manuell zu nutzenden - REALTIME-Modus. (Was kann da schiefgehen?
          Nicht hier beim SF bench, aber falls man woanders damit rumspielt?)

Zu 2.
Warum nun auch noch mit syzygy's und anschließendem totstellen?

Und 16MB Hash, sind das nicht arg viel?    

Wir sollten doch einheitlich testen, sonst macht das alles kein Sinn.

Also 512 MB Hash wie von P.Weise vorgeschlagen und 60 sec. oder eben bench 512 1 24

ps: muß zwischen vorigem Parameter und nachfolgendem Slash immer ein Leerzeichen stehen?

Und danke für deine Ausführungen, wieder was dazugelernt, bin sonst nicht so erfahren mit der Konsole.
Parent - By Thomas Plaschke Date 2019-08-04 17:51
Ja, Fehler.
Ursprünglich war das Script von einem i5-3570k - PC. Der hat kein Hyperthreading. Bei dem wäre es der 2. Kern gewesen, wie es sein soll. Jetzt habe ich einen Prozessor mit HT. Da würde es der 2. Ausführungspfad im 1. Kern sein. Für den 1. Pfad im 2. Kern  (den 3. logischen Prozessor) müsste man 0x4 (das 3. Bit) setzen. Beim Durchlesen vorm Absenden habe ich das übersehen. Das gilt auch für CLine.txt - ich dachte, ich hätte genauer gelesen ! Spaßeshalber könnte man auf HT-Rechnern auch 0xC ausprobieren, um dem Programm beide Ausführungspfade eines Kerns (des 2.) zu reservieren. Was rauskommt, wenn man mit mehreren Threads testet, aber AFFINITY nicht anpasst, weiß ich nicht.

Die Optionen mit den Syzygys nutze ich für die Kompilierung von PGO-Versionen von Stockfish mit den mingw-Compilern. Die Programmteile der Endspieltabellen werden nur durchlaufen und können vom Compiler nur optimiert werden, wenn sie im Optimierungslauf auch ausgeführt werden. Dazu muss man den Pfad setzen.
Ähnliches gilt für den geringen Hash-Speicher. Die Programmteile für Hashkollisionen oder volle Hashtabellen werden nur durchlaufen, wenn's auch passiert. Ob's passiert (Hashkollision) oder überhaupt was was nützt, weiß ich nicht - Motiv dafür ist nur die grundsätzliche Überlegung. Übrigens würde man bei sehr großen Hashtabellen mehr die Speicherperformance als die CPU-Performance testen. Wenn ich mich recht entsinne, variiert außerdem die Dauer des Benchmarks mit größeren Hashtabellen stärker. Man könnte also weniger präzise Ergebnisse erhalten.
Der Realtime-Modus (und im Taskmanager manchmal auch schon andere höhere Programmprioritäten als Standard) können dazu führen, dass die Programme mit Rechnerressourcen oder -geräten nicht mehr kommunizieren können. Bspw. können Befehlseingaben o.ä. nicht funktionieren. Mein Bedarf an Experimenten ist in dieser Hinsicht gedeckt . - Es bringt letztlich auch kaum etwas in Richtung schnelleres Programm. Meine Benchmark-Version läuft aber ohne zusätzliche Nutzereingaben durch. Der Parameter Realtime stellt dabei sicher, dass Stockfish alle benötigten Ressourcen (fast) exklusiv bekommt - insbesondere die angeforderten Prozessorressourcen.

Zum Benchmark an sich: Ich finde ihn nützlicher mit 16 MB. Dann spielt auch der Gesamtspeicherausbau kaum keine Rolle (Zahl der Speicherkanäle z.B. 16 GB mit 2 Riegeln oder mit 4). Andererseits wäre es mit mehr Speicher realitätsnäher. Aber das ist der Benchmark ohnehin nicht, weil er auf nur einem Thread läuft. Außer bei Tests oder Rating-Läufen wird das sonst wohl eher nur versehentlich passieren.

Und zur letzten Nachfrage: Ja, zwischen den Parametern muss ein Leerzeichen stehen. Das Slash-Zeichen kennzeichnet einen Parameter.

Vielen Dank und VG
Th. Plaschke
Up Topic Hauptforen / CSS-Forum / Computerleistung in Bezug auf Schachprogramme benchen
1 2 Previous Next  

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill