Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Einfluss der Hashtabellen - kleines Experiment
- - By Andreas Strangmüller Date 2013-06-12 12:28 Edited 2013-06-12 12:35
Einfluss der Größe der Hashtabellen

Intel i5-750 @ 3,5 GHz, Fritzmark: 21.15 / 10150
Engine: Stockfish 3 64 Ja, Größe der Hashtabellen 16, 128, 1024 MB
Je 1 Kern, ponder off, Buch: 8moves_GM.pgn

Bedenkzeit 7.50 Sek. + 0.05 Sek.

    Engine           | Stockfish 3-128 | Stockfish 3-16  | Stockfish 3-1024 | Pkt./Partien
  -------------------+-----------------+-----------------+------------------+-------------
  1 Stockfish 3-128  | xxx             | 1520.0 - 1480.0 | 1528.5 - 1471.5  | 3048.5/6000
  2 Stockfish 3-16   | 1480.0 - 1520.0 | xxx             | 1531.5 - 1468.5  | 3011.5/6000
  3 Stockfish 3-1024 | 1471.5 - 1528.5 | 1468.5 - 1531.5 | xxx              | 2940.0/6000
  -------------------+-----------------+-----------------+------------------+-------------

    Programm            Elo   +  -  Games   Score   Av.Op.  Draws
  ----------------------------------------------------------------
  1 Stockfish 3-128   : 3004  6  6  6000    50.8 %   2998   59.3 %
  2 Stockfish 3-16    : 3001  6  6  6000    50.2 %   3000   59.6 %
  3 Stockfish 3-1024  : 2995  6  6  6000    49.0 %   3002   58.1 %

    --------------------------------
    Games        :   9000 (finished)

    White Wins   :   2233 (24.8 %)
    Black Wins   :   1457 (16.2 %)
    Draws        :   5310 (59.0 %)

    White Perf.  : 54.3 %
    Black Perf.  : 45.7 %

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

Bedenkzeit 60.00 Sek. + 0.05 Sek.

    Engine           | Stockfish 3-128 | Stockfish 3-1024 | Stockfish 3-16  | Pkt./Partien
  -------------------+-----------------+------------------+-----------------+-------------
  1 Stockfish 3-128  | xxx             | 1555.5 - 1444.5  | 1572.0 - 1428.0 | 3127.5/6000
  2 Stockfish 3-1024 | 1444.5 - 1555.5 | xxx              | 1567.0 - 1433.0 | 3011.5/6000
  3 Stockfish 3-16   | 1428.0 - 1572.0 | 1433.0 - 1567.0  | xxx             | 2861.0/6000
  -------------------+-----------------+------------------+-----------------+-------------

    Program             Elo   +  -  Games   Score   Av.Op.  Draws
  ------------------------------------------------------------------
  1 Stockfish 3-128   : 3010  5  5  6000    52.1 %   2995   65.2 %
  2 Stockfish 3-1024  : 3001  5  5  6000    50.2 %   3000   65.2 %
  3 Stockfish 3-16    : 2989  5  5  6000    47.7 %   3005   65.4 %

    --------------------------------
    Games        :   9000 (finished)

    White Wins   :   2019 (22.4 %)
    Black Wins   :   1108 (12.3 %)
    Draws        :   5873 (65.3 %)

    White Perf.  : 55.1 %
    Black Perf.  : 44.9 %

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

Bedenkzeit 300.00 Sek. + 0.05 Sek.

    Engine           | Stockfish 3-1024 | Stockfish 3-128 | Stockfish 3-16  | Pkt./Partien
  -------------------+------------------+-----------------+-----------------+-------------
  1 Stockfish 3-1024 | xxx              | 1515.0 - 1485.0 | 1687.5 - 1312.5 | 3202.5/6000
  2 Stockfish 3-128  | 1485.0 - 1515.0  | xxx             | 1643.5 - 1356.5 | 3128.5/6000
  3 Stockfish 3-16   | 1312.5 - 1687.5  | 1356.5 - 1643.5 | xxx             | 2669.0/6000
  -------------------+------------------+-----------------+-----------------+-------------

    Program             Elo   +  -  Games   Score   Av.Op.  Draws
  -----------------------------------------------------------------
  1 Stockfish 3-1024  : 3016  5  5  6000    53.4 %   2992   69.8 %
  2 Stockfish 3-128   : 3010  5  5  6000    52.1 %   2995   70.4 %
  3 Stockfish 3-16    : 2974  5  5  6000    44.5 %   3013   68.6 %

    --------------------------------
    Games        :   9000 (finished)

    White Wins   :   1875 (20.8 %)
    Black Wins   :    859 ( 9.5 %)
    Draws        :   6266 (69.6 %)

    White Perf.  : 55.6 %
    Black Perf.  : 44.4 %
Parent - - By Benno Hartwig Date 2013-06-12 13:35
Ein großer Hashbereich kann nur Vorteile bringen, wenn pro Zug auch länger gerechnet wird.
Insofern verwundert nicht, dass 1024MB hier nicht an der Spitze steht. Deine Zeiten sind, gerade für einen Hashtabeletest(!) doch arg kurz.
Auf ihre Art dann aber doch auch interessant. Thanx.

Dass diese Version aber vglw. weit zurück liegt, erstaunt dann doch.
Findet hier ggf. doch immer wieder eine Initialisierung statt, wie sie vor ein paar Tagen in einem anderen Thread mal diskutiert wurde? Sodass der Große Hash hier nicht nur nutzlos, sondern sogar schädlich wird?
Wieviel Hauptspeicher hast du eigentlich? War der während deiner Tests wirklich einigermaßen vollständig für deinen Test verfügbar, oder lief da noch mehr?

Benno
Parent - - By Ingo Bauer Date 2013-06-12 13:59
Moin,

Ahem, je länger die Bedenkzeit desto weiter wandert der 1GB Hash doch nach oben? Alles wie es zu erwarten war...
Der 16MB Hash ist offensichtlich schon bei der kürzesten Bedenkzeit zu wenig.
Bei 5min fallen die 16 MB doch stark ab während zw. 128 und 1024 fast kein Unterschied besteht ... (Meine 256 scheinen immer noch ok, ich war schon am Zweifeln )

Aber eigentlich uninteressant für eine Rangliste, so lange alle das selbe bekommen. Interessant nur um herrauszufinden welchen Hash man braucht um bei einer gegebenen Bedenkzeit das Maximum aus seinem Rechner rauszuholen. Interessanterweise scheint bei Stockfsh zumindest auch im Blitz 1GB bei nur einem Kern völlig OK zu sein - während die Blizer bei Playchess immer noch am den maximalen Knoten optimieren - was nicht notwendigerweise mit dem besten Spiel übereinstimmen muß. Bei 4 Kernen oder mehr sollten es sogar noch mehr als 1GB sein. Wenn die Blitzer bei Playchess das lesen ...

Dazu kommt noch das das natürlich für verschiedene Engine anders aus sehen kann.

Gruß
Ingo

[quote="Benno Hartwig"]
Ein großer Hashbereich kann nur Vorteile bringen, wenn pro Zug auch länger gerechnet wird.
Insofern verwundert nicht, dass 1024MB hier nicht an der Spitze steht. Deine Zeiten sind, gerade für einen Hashtabeletest(!) doch arg kurz.
Auf ihre Art dann aber doch auch interessant. Thanx.

Dass diese Version aber vglw. weit zurück liegt, erstaunt dann doch.
Findet hier ggf. doch immer wieder eine Initialisierung statt, wie sie vor ein paar Tagen in einem anderen Thread mal diskutiert wurde? Sodass der Große Hash hier nicht nur nutzlos, sondern sogar schädlich wird?
Wieviel Hauptspeicher hast du eigentlich? War der während deiner Tests wirklich einigermaßen vollständig für deinen Test verfügbar, oder lief da noch mehr?

Benno
[/quote]
Parent - By Benno Hartwig Date 2013-06-12 18:29
[quote="Ingo Bauer"]Ahem, je länger die Bedenkzeit desto weiter wandert der 1GB Hash doch nach oben? Alles wie es zu erwarten war...[/quote]Ahem, stimmt.
Irgendwie 'sah' ich nur die superkurze Zeit. sorry.
Die ELO-Werte sind auch noch so dicht beieinander, dass sich da eine echte Schwächung durch die 1024MB nicht herauslesen lässt. Mag doch Zufall und nicht eine Behinderung durch einen 'zu großen' Hashbereich gewesen sein.

Benno
Parent - - By Michael Scheidl Date 2013-06-12 14:01
Zitat:
Insofern verwundert nicht, dass 1024MB hier nicht an der Spitze steht.

Das ist m.E. eine Fehlinterpretation, denn mit Blick auf die Errormargins stehen die 1024 MB nirgends signifikant hinten (und bei der längsten Bedenkzeit vorne). Und das ist auch logisch so.

Einleuchtend ist daß 16 MB immer schlechter performen je länger die Bedenkzeit ist; das ist heutzutage einfach viel zu klein. Aber sonst kann man an dem Test nicht viel herauslesen.
Parent - By Benno Hartwig Date 2013-06-12 18:30
Stimmt, sorry.
Habe viel zu flüchtig gelesen. 
Benno
Parent - - By Andreas Strangmüller Date 2013-06-12 14:03
Ich denke nicht, dass bei einem Enginezweikampf (Gauntlet) per Cutechess-Client vor jeder Partie eine Neuinitialisierung der Engines stattfindet. Somit sollte der Hashspeicher erhalten bleiben.

Der Windows 7 - vier Kern Test-Rechner hat 8 GB Arbeitsspeicher, so dass auch bei dem Match 1024 MB -128 MB  (3 gleichzeitige Partien x 1152 = 3456 MB) noch genügend Reserven zur Verfügung stehen. Einen Kern lasse ich bewusst immer für Betriebssystemaktivitäten frei.
Meiner Meinung ist ein zu großer Hash bei Enginematches mit kurzer Bedenkzeit "schädlich", da hier der Zugriff auf den Inhalt der Hashtables mehr bremst als er nüztlich ist.

Viele Grüße,
Andreas
Parent - By Michael Scheidl Date 2013-06-13 04:03 Edited 2013-06-13 04:06
Zitat:
Somit sollte der Hashspeicher erhalten bleiben.

Hasheinträge von einer Partie zur nächsten mitzunehmen, kommt mir sinnlos vor. Es können ja nur Einträge von den letzten paar Zügen der vorigen Partie sein, d.h. selbst wenn eine Rückpartie mit derselben Eröffnung folgt, wird da nichts nutzbares mehr dabei sein. Ich würde eher befürchten daß das Risiko der ominösen Hashkollisionen dadurch vergrößert wird, aber da bin ich nicht sicher.

Derartige Nutzeffekte erhält man hingegen mit permanentem Stellungslernen, oder wie auch immer das jeweils heißt (z.B. "Session File" bei Critter). Ich glaube aber, die meisten Tester würgen das im löblichen Bestreben nach antiseptischen Laborbedingungen ab bzw. aktivieren es nicht. - Mit einer meßbaren Auswirkung in Ranglistentests rechne ich ehrlich gesagt aber nicht; es hängt ja davon ab ob und wie oft sich tatsächlich kritische Stellungen wiederholen, wo die Engine dann von einem Lerneintrag ergebniswirksam profitieren könnte. Allein die Länge der Formulierung deutet schon an, daß praktisch keine Elo zu holen sein werden.

Allerdings, wenn dem so ist sehe ich auch keinen Grund die Defaults betreffs Stellungslernen für Tests zu ändern. Für Analysen sollte es natürlich eingeschaltet sein, denn dort ist der Nutzen sicherlich am größten, z.B. wenn man oft dieselben Ausgangsstellungen aufsucht und unterschiedliche Verzweigungen nach derselben Stellung erforscht.

Deswegen hab ich bei Critter 1.6a 32 MB Sessionfilegröße (sollte genügen...(?) ich habe erst 0,35% Auslastung), Schreibtiefe 15 und "Resolve Score Drops" eingestellt. Laut Infos verringert letzteres zwar etwas die Performance in praktischen Enginepartien, dient aber der besseren Bewertung bestimmter Positionen. Die min. Schreibtiefe verhindert Eintragungen unterhalb einer gewissen Qualitätsschwelle, also hier eben <15 Plies RT. Mir ist keine andere Engine bekannt, wo man dieses Feature zu schön konfigurieren kann. Möglicherweise Rybka 4, aber die hab ich nicht.
Parent - By Patrick Götz (Mod.) Date 2013-06-12 19:27
Danke für den Hash-Test, sehr interessant, mit dieser Aussagekraft gab es den meines Wissen noch nie.
Gruß
Patrick
Up Topic Hauptforen / CSS-Forum / Einfluss der Hashtabellen - kleines Experiment

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill