|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Hallo,
ich bin verwirrt. Gut, werden die meisten User nun sagen, wissen wir, wo ist die Neuigkeit? In den letzten Tagen habe ich mich ein wenig mit dem Mephisto Phoenix London beschäftigt. Partien gespielt, aber auch ein paar Geschwindigkeitsvergleiche durchgeführt. Was zur besagten Verwirrung geführt hat. Bekanntlich bietet auch der Mephisto Phoenix London die Möglichkeit, größere Hash Tables (3 MB) zu aktivieren. Durch erneute Anwahl der London Emulation. Zu erkennen an der Anzeige „Mephisto London 3M“. Gleiches gilt auch für weitere Produkte (Reflection + Reflection II, Revelation II + AE) aus dem Hause Phoenix Chess System. Über den Zweck von Hash Tables brauche ich wohl keine Worte verlieren. Grundsätzlich sollten diese ein Schachprogramm, insbesondere im Endspiel, deutlich beschleunigen. Zu meiner Überraschung ist jedoch das Gegenteil, sowohl im Mephisto Phoenix London, aber auch im Reflection der Fall. Ähnlich, so vermute ich, wird sich auch der Revelation II verhalten. Für die Geschwindigkeitsvergleiche hatte ich schon bei dem Erscheinen des Rev II Tests durchgeführt. Alwin hatte mich unterstützt und Werte für Turniermaschinen (68030 / 68040) beigesteuert. Auf folgende Stellungen wurden die Geräte angesetzt: Stellung 1:
1.g4 gewinnt, aber darum geht es nicht, sondern um die Zeit, bis eine bestimmte Rechentiefe erreicht wird. Hier die Ergebnisse:
Die Unterschiede sind frappierend. Die Emulation im Mephisto Phoenix basiert auf dem London 68000 und dieser hat 512 KB Hash an Bord. Mit 3 MB wird die Suche deutlich verlangsamt. OK, zweiter Versuch. Stellung 2:
1.f3 Ergebnisse:
Auch in der Grundstellung zeigen sich deutliche Unterschiede. Nicht so gravierend wie in einer Endspielstellung, aber auch bei vollem Brett ist der Effekt erkennbar. Ein letzter Versuch. Dafür wurde die bekannte Stellung 4 aus den BT-Tests ausgewählt, die für unsere alten Kisten als (fast) unlösbar gilt. Einzig die V11, der Millennium ChessGenius Exclusive (bzw. ChessGenius Pro = gleiches Programm) sind in der Lage, den korrekten Zug 1.Df7! innerhalb der vorgesehenen 15 Minuten zu finden. BT-2630 - 4 T.D. Harding, 1978
Für die Turniermaschine London (68030 / 36 MHZ / 2 MB) noch ein unlösbares Rätsel, so stellt diese Aufgabe für den Mephisto Phoenix London kein großes Problem dar. Aber auch in diesem Fall zeigt sich die genannte Hash Table Problematik. Ergebnisse für 1.Df7: Code:
Mephisto Phoenix London - 191 Sekunden Mephisto Phoenix London 3 MB - 274 Sekunden Somit geht meine Bitte an Ruud, sich der Problematik anzunehmen. Irgendetwas geht bei der Adressierung des größeren Hash-Speichers in die Hose. Gruß Micha P.S.: Noch ein Nachtrag zu den Testergebnissen. Sämtliche Lang Programme, die mit Hash Tables unterwegs sind, zeigen immer wieder Differenzen bei der Testung. Also nicht wundern, solltet ihr leichte Abweichungen bei der Überprüfung feststellen. Mein Ansatz, der Test erfolgte immer nach dem Neustart des Programms. |
Folgende 8 Benutzer sagen Danke zu Chessguru für den nützlichen Beitrag: | ||
applechess (11.01.2023), Beeco76 (12.01.2023), borromeus (22.11.2023), Chess Monarch (12.01.2023), Egbert (11.01.2023), Fluppio (11.01.2023), Oberstratege (11.01.2023), pato4sen (11.01.2023) |
Folgende 9 Benutzer sagen Danke zu Mapi für den nützlichen Beitrag: | ||
Beeco76 (12.01.2023), Bryan Whitby (11.01.2023), Chessguru (11.01.2023), Egbert (11.01.2023), Fluppio (11.01.2023), mickihamster (12.01.2023), Oberstratege (12.01.2023), pato4sen (11.01.2023), Wolfgang2 (11.01.2023) |
|
||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Vielen Dank Micha, für das Teilen der auch für mich überraschenden Erkenntnisse und auch besten Dank an Markus für die durchaus nachvollziehbare Erläuterung. Die logische Konsequenz daraus hat Markus bereits erwähnt und so werde ich ich es auch in Zukunft halten:
Zitieren:
...Daher nutze ich bei den Emulationen für Wettkämpfe mit den Lang Modulen auch nur 512 KB.
Gruß Egbert |
|
||||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Hallo Markus,
Ich glaube nicht, das Ruud da was ändern kann.
Die Emulationen laufen auf der Grundlage der 16 bit Module. Der Zugriff auf den Hashtables Speicher läuft über einen 16 bit Datenbus, was nicht besonders schnell von statten geht. Bei grossen Hashtables wird über den "langsamen" 16 bit Datenbus die kompletten 3 MB beschrieben und abgefragt, was die suche mit 3 Mb deutlich verlangsamt. Allerdings würde daraus folgen, dass man diese Speichererweiterung wieder entfernen sollte, da sie keinen praktischen Nutzen in sich trägt. Im Gegenteil, sie suggeriert einen deutlichen Zugewinn, der im praktischen Spiel nicht vorhanden ist. Schlimmer sogar, es bewirkt eine Verschlechterung der Spielstärke. Oder zumindest sollte es im Manual entsprechend vermerkt werden. Gruß Micha |
Folgende 2 Benutzer sagen Danke zu Chessguru für den nützlichen Beitrag: | ||
Chess Monarch (12.01.2023), Egbert (11.01.2023) |
|
|||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
...Sehr schön zu sehen ist das bei dem de Koning Gerät Risc 2500.
ab 512 KB bis 2 Mb gibt es erst bei längeren Analysen richtig messbare Geschwindigkeitsvorteile. Ansonsten sind die 2 MB Hash bei nicht so langen Analysen auch schlechter als mit 512 KB, nur halt nicht soviel, weil der Zugriff über den 32 bit Bus wesentlich flotter geht....
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation) https://www.iccf.com/player?id=89948&tab=3 |
Folgender Benutzer sagt Danke zu Hartmut für den nützlichen Beitrag: | ||
Egbert (11.01.2023) |
|
||||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Hallo Micha,
Ich glaube nicht, das Ruud da was ändern kann. Die Emulationen laufen auf der Grundlage der 16 bit Module. Der Zugriff auf den Hashtables Speicher läuft über einen 16 bit Datenbus, was nicht besonders schnell von statten geht. Bei grossen Hashtables wird über den "langsamen" 16 bit Datenbus die kompletten 3 MB beschrieben und abgefragt, was die suche mit 3 Mb deutlich verlangsamt. Würden die Emulationen auf 32 Bit Datenbusse zugreifen können würde das ganze mit einer wesentlich höheren Geschwindigkeit laufen. Sehr schön zu sehen ist das bei dem de Koning Gerät Risc 2500. ab 512 KB bis 2 Mb gibt es erst bei längeren Analysen richtig messbare Geschwindigkeitsvorteile. Ansonsten sind die 2 MB Hash bei nicht so langen Analysen auch schlechter als mit 512 KB, nur halt nicht soviel, weil der Zugriff über den 32 bit Bus wesentlich flotter geht. Daher nutze ich bei den Emulationen für Wettkämpfe mit den Lang Modulen auch nur 512 KB. viele Grüße Markus Diese Erklärung bedeutet, dass die Emulationen jeden Befehl zyklusgenau emulieren. Der 68000 besitzt durchaus Instruktionen, die 32 Bits mit einem Befehl laden bzw. speichern können. Der PI-Prozessor läuft je nach drunterliegendem Betriebssystem im 32- oder 64-Bit-Modus. Daher könnte die Emulation auch mit 32 Bit auf den Hash-Speicher zugreifen, vorausgesetzt die passenden Befehle werden benutzt. Der 68000 ist nach außen ein 16-Bit-Rechner, aber intern 32 Bit. Ein Befehl, der ein 32-Bit-Register aus dem Speicher lädt, braucht auf realer Hardware tatsächlich zwei Speicherzugriffe, könnte aber in einer Emulation durchaus schneller sein. Man würde damit natürlich auch das Zeitverhalten der emulierten SW ändern. Wenn man die Emulation aber schon beschleunigt, dann könnte man auch durchaus solche Dinge beschleunigen. Man kann natürlich nichts ändern, wenn das Programm nur 16-Bit-Transfers benutzt, dann würde ich aber sagen: Schlecht programmiert, und das glaube ich bei Richard Lang nicht. Wenn man eine Analyse nach dem Aufbau einer Stellung macht, also nach einem Neustart der Emulation, dann sind die Hashtables auch gelöscht. Ich denke der Geschwindigkeitsvorteil kommt auch erst nach einer längeren Analyse, wenn die Tables voll sind. Vorher muss ja für jede Stellung erstmal ohne die Tables die Hash-Einträge erzeugt werden und gespeichert werden, was auch Zeit benötigt. Erst wenn man bei der weiteren Analyse auf einen passenden Hash-Eintrag stößt, dann kann man an der Stelle abbrechen, weil man dann ja die Bewertung schon kennt. Ein vernünftiger Hash-Algorithmus muss um den passenden Eintrag zu finden i. A. nicht die gesamte Tabelle durchsuchen, sondern weiß anhand des Hashwertes wo der Eintrag ist. Deshalb ist das Füllen des Hashs das Zeitraubende und nicht das spätere Durchsuchen. Und ein größerer Hash braucht natürlich länger bis er gefüllt ist. Interessant wäre sicher, ob reale Geräte auch dieses Verhalten zeigen. Viele Grüße und ein gesundes neues Jahr Michael |
Folgende 6 Benutzer sagen Danke zu Mickey1259 für den nützlichen Beitrag: | ||
Beeco76 (11.01.2023), Bryan Whitby (11.01.2023), Chess Monarch (12.01.2023), Egbert (11.01.2023), Mapi (11.01.2023), Oberstratege (12.01.2023) |
|
|||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Hallo,
Diese Erklärung bedeutet, dass die Emulationen jeden Befehl zyklusgenau emulieren. Der 68000 besitzt durchaus Instruktionen, die 32 Bits mit einem Befehl laden bzw. speichern können. Der PI-Prozessor läuft je nach drunterliegendem Betriebssystem im 32- oder 64-Bit-Modus. Daher könnte die Emulation auch mit 32 Bit auf den Hash-Speicher zugreifen, vorausgesetzt die passenden Befehle werden benutzt. Der 68000 ist nach außen ein 16-Bit-Rechner, aber intern 32 Bit. Ein Befehl, der ein 32-Bit-Register aus dem Speicher lädt, braucht auf realer Hardware tatsächlich zwei Speicherzugriffe, könnte aber in einer Emulation durchaus schneller sein. Man würde damit natürlich auch das Zeitverhalten der emulierten SW ändern. Wenn man die Emulation aber schon beschleunigt, dann könnte man auch durchaus solche Dinge beschleunigen. Man kann natürlich nichts ändern, wenn das Programm nur 16-Bit-Transfers benutzt, dann würde ich aber sagen: Schlecht programmiert, und das glaube ich bei Richard Lang nicht. Wenn man eine Analyse nach dem Aufbau einer Stellung macht, also nach einem Neustart der Emulation, dann sind die Hashtables auch gelöscht. Ich denke der Geschwindigkeitsvorteil kommt auch erst nach einer längeren Analyse, wenn die Tables voll sind. Vorher muss ja für jede Stellung erstmal ohne die Tables die Hash-Einträge erzeugt werden und gespeichert werden, was auch Zeit benötigt. Erst wenn man bei der weiteren Analyse auf einen passenden Hash-Eintrag stößt, dann kann man an der Stelle abbrechen, weil man dann ja die Bewertung schon kennt. Ein vernünftiger Hash-Algorithmus muss um den passenden Eintrag zu finden i. A. nicht die gesamte Tabelle durchsuchen, sondern weiß anhand des Hashwertes wo der Eintrag ist. Deshalb ist das Füllen des Hashs das Zeitraubende und nicht das spätere Durchsuchen. Und ein größerer Hash braucht natürlich länger bis er gefüllt ist. Interessant wäre sicher, ob reale Geräte auch dieses Verhalten zeigen. Viele Grüße und ein gesundes neues Jahr Michael ich habe Stockfish auf dem PC mal ganze 8GB Hauptspeicher als Hash gegeben und das Durchsuchen des vollen Speichers hat beim "Herunterklettern in eine höhere Suchtiefe" keine Verbesserung gebracht, sondern war eher langsamer als z.B. 1GB Hash. Viele Grüße Markus |
|
||||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Ich hatte ja geschrieben, dass ein vernünftiger Hash-Algorithmus weiß, wo der Eintrag für einen Hashwert ist. Das benötigt jedoch Verwaltungsaufwand, und je größer der Hash ist, ist der Aufwand auch größer. Deshalb sind die Zeiten, die Micha gemessen hat, auch nicht 6 mal so lang (das wäre das Verhältnis von 512K zu 3M). Irgendwann gibt es zwischen Verwaltung und der Größe des Speichers einen Break-Even, wo also der Zeitvorteil wieder kleiner wird. Dieser hängt vom System ab, man kann da also keinen exakten Wert für alle Systeme angeben. Wenn das Verwalten länger braucht als die Analyse, dann hat man natürlich sogar einen Zeitnachteil. Und hast Du auch mehrere Züge gemacht, denn der Hash profitiert eben auch von der Vergangenheit? Viele Grüße Michael |
|
|||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Interessante Stellung Nr. 1. Dass 1. g4 gewinnt, hätte ich auf den ersten Blick nicht für möglich gehalten. Der Atlanta hat den auch gleich auf dem Schirm und löst die Aufgabe im 3-Min.-Modus sauber (Tiefe jeweils 14/15 Halbzüge). Schöne Abendübung.
Gruß! |
Folgender Benutzer sagt Danke zu Lucky für den nützlichen Beitrag: | ||
Beeco76 (12.01.2023) |
|
||||||||||||
AW: Mephisto Phoenix London - Geschwindigkeitsvergleiche + Hash Tables
Interessant . Ich hatte das letztens zufällig auch am Chess System Tal II bemerkt, dem ich aus Spaß 512 MB Hashspeicher gab. Er wurde langsamer.
Allerdings tatsächlich ungewöhnlich, das der Genius bei nur 3 MB zusätzlichem Hash langsamer wird, da sollte er eher spürbar schneller werden. |
Folgender Benutzer sagt Danke zu udo für den nützlichen Beitrag: | ||
Beeco76 (12.01.2023) |
![]() |
|
|
![]() |
||||
Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
Test: Mephisto IIIS Glasgow Phoenix | mclane | Partien und Turniere / Games and Tournaments | 108 | 01.04.2024 14:35 |
Turnier: Mephisto Phoenix mit Mephisto Glasgow-Emulation | Egbert | Partien und Turniere / Games and Tournaments | 1864 | 24.02.2024 20:34 |
Test: London Mephisto Phoenix vs CT800 PeWa Grandmaster | pato4sen | Partien und Turniere / Games and Tournaments | 17 | 11.01.2023 23:09 |
Frage: Hash for DCCs | IvenGO | Die ganze Welt der Schachcomputer / World of chess computers | 11 | 25.02.2014 20:43 |