Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Tablebases beschleunigt
- - By Peter Jugl Date 2020-12-19 12:22
Grüß Gott zusammen,

mein Rechner sah wie folgt aus:

- Motherboard: ASUS ROG Strix B550 E-Gaming
- CPU: Ryzen 9 3900XT (12Cores) + Wasserkühlung
- RAM: 64GB G.Skill DDR4
- Speicher: > C: Samsung SSD 830 Series
                 > D: WD Festplatte 4TB 7.200 rpm
- Grafikkarten: > 1x RTX 3080 + 1x RTX 2070 (beide Gigabyte)

Dann die Erweiterung um eine M.2 SSD:

- Erweiterung:  > T: M.2 SSD Samsung 970 EVO Plus 2TB (Laufwerk T: bei mir - für Tablebases)

Problem: Die TBs (7er + 3/4/5) lagen zu 100% auf der Festplatte. Sobald ein Programm, außer Lc0, darauf zugriff, gingen die kN/s total in den Keller. Statt 25.000 bei SF151220 AVX_nnue waren es dann teilweise nur noch 2.000 oder auch weniger.

Lösung gesucht und gefunden: Die TBs mit denen 90% der Endspiele abgedekct werden (Liste aus dem aktuellen Dragon genommen - war dabei!) habe ich dann auf mein neues M.2 Laufwerk  kopiert (ohne Komprimierung). Die letzten paar Prozent, obwohl es GBs/TBs sind, habe ich auf dem D: Laufwerk belassen. Ist kein Problem mehr.

Ergebnis: Stockfisch, Dragon, Lc0, Eman 6.61 habe ohne/mit TBs nun die identischen Rechenleistungen. Das ist einmal eine technische Beschleunigung der TBs die hilft. Auf einer SSD wäre zwar auch eine Beschleunigung da gewsen, aber meine neue M.2 ist doch nochmals deutlich schneller als eine aktuelle SATA-SSD.

Falls der Tip schon hier im Forum war -> Asche auf mein Haupt, ich habe diesen leider nicht gefunden.

Waidmannsheil - gute "Jagd"
Peter aus dem Bergischen Städtedreieck (RS SG W)
Parent - - By Lothar Jung Date 2020-12-19 13:01 Edited 2020-12-19 13:05
Hallo Peter,

sehr guter Tipp.
Ich probiere das aus. Habe 3 GPUs 3080, 2080S und 2070S.
Die TBs 6 + acht große 7 er laufen auf einer Samsung T7 an einem USB 3.1 Anschluss.
Gestern habe ich mir eine Samsung X5 gegönnt: Thunderbolt 3 mit über 2 GB sec. Lese-Zugriff.
Vielleicht könnten wir die Zugriffe vergleichen.
Eine Verbesserung würde gerade für Lc0 eine tiefere Berechnung bringen.
Welche TB 7er benutzt Du?

Grüße

Lothar
Parent - - By Peter Jugl Date 2020-12-19 13:20
Hallo Lothar,

ich habe mir die TBs von Lichess runter geladen. Andere Quellen waren und sind mit aktuell nicht bekannt. Wenn ich Zeit habe kann ich gerne unter "ähnlichen" Bedingungen einmal die Zugriffe / Zeiten ermitteln.

Da ich aber auch viele andere Hobbys habe (Jäger, Funkamateur, Leseratte, mein Hund, ...) muss ich die Zeit schön einteilen. Und sonst bekomme ich von der Regierung auch die Kündigung. 

Grüße
Peter
Parent - - By Lothar Jung Date 2020-12-19 15:40
Hallo Peter,

einige Unklarheiten wurden geklärt.

Wo kann man die 7-Steiner-Liste von DRAGON heruntergeladen?

Gruß

Lothar
Parent - - By Peter Jugl Date 2020-12-20 13:25
Hallo,

hier habe ich eine Liste (absteigend nach % und Anzahl der Endspiele) der 7Steiner hinterlegt.

Link:  https://c.gmx.net/@720620367466469821/Ky_W3dg3TIy-YITk34EQCA

Das ist eine PDF-Datei zum einfachen drucken.

Viel Spaß
Peter
Parent - By Lothar Jung Date 2020-12-20 16:59
Danke Peter!

Lothar
Parent - - By Eduard Nemeth Date 2020-12-19 13:05
Die TBs (7er + 3/4/5)...

Welche 7Steiner hast du denn?
Und wo sind die 6Steiner?

Klar ist eine M.2 pci express schneller als eine Sata SSD.
und eignet sich besser vor allem für 7Steiner.

Ich nutze keine 7Steiner mehr beim Spielen. Die 3456Steiner habe ich auf einer SATA SSD und spiele mit der Einstellung ProbeDepth 2.

Auf meinem Ryzen 3900X wird nichts gebremst. Schafft im Endspiel sogar um die 50000 kns mit vollem Zugriff auf bis zu 6 Steinen.

Die 7Steiner würde ich nur für Analysen nehmen, bringt aber nicht viel. Meine wichtigsten 7Steiner belegen extern derzeit 700 GB. Würde ich Fernschach spielen dann würde ich sie nutzen.
Parent - - By Peter Jugl Date 2020-12-19 13:26 Edited 2020-12-19 13:31
Hallo Eduard,

die 7er SYSZGY habe ich mit bei Lichess geladen. Aber nur die (+ ein paar optisch sinnvolle) auch auf der Liste der 7er Endspiele nach Wahrscheinlichkeit von DRAGON. Da war eine PDF-Datei dabei mit der Auflistung absteigend der 7er. Die binn ich von oben nach unten durchgegangen.

Die 6er habe ich leider noch nicht. Da such ich noch eine QUelle zum laden. Ich bin ja recht neu hier obwohl:

Ich bin Sammler der ERSTEN (!) Stunde der CSS-Hefte und besitze alle Hefte und auch die CD mit den PDF-Versionen.

Dazu habe ich schon immer mit PCs gearbeitet und gespielt da ich vom Hause aus Programmierer und Informatiker bin.

Ich spiele normal mit der Einstellung ProbeDepth 1. Vorher mit der HDD wars auf 2 - jetzt mit der M.2 stehts wieder auf 1 und es fluppt nur so!

Das war eine saubere Investition da nun die ausgewählten 7er-TBs ohne Einschränkung genutzt werden können.

Waidmannsheil
Peter
Parent - - By Eduard Nemeth Date 2020-12-19 13:55
Wie gross ist denn die Datenmenge mit den 7Steinern? Du solltest dir auf alle Fälle erstmal die 6Steiner besorgen. Das ist bei 345Steinern wichtiger als 7Steiner.

Die 6Steiner habe ich hier heruntergeladen
http://tablebase.sesse.net/syzygy/

aber auf LiChess gibt es sie ebenfalls.
Parent - By Peter Jugl Date 2020-12-19 14:17
Hallo Eduard,

für die ausgewählten 7er benötige ich aktuell ca. 800GB an Platz. Und die 3/4/5 nicht ganz einen GB - also quasi nichts.

Danke. Die 6er lade ich mir am Wochenende runter. Spitze!

Waidmannsheil
Peter
Parent - By Peter Jugl Date 2020-12-20 12:18
Hallo Eduard,

Danke. Gestern habe ich die 6er geladen und direkt installiert.

Grüße
Peter
Parent - By Robert Bauer Date 2020-12-20 11:04 Upvotes 1
Hallo Peter,

so kann das aber gar nicht funktionieren!

Jedenfalls ist mein Verständnis der Tablebases dieses:

Damit eine Engine damit korrekt arbeiten kann, braucht es immer diejenigen TBs mit geringerer Steinezahl.
Beispiel: damit die 6-Steiner in einer bestimmten Stellung funktionieren, brauchst Du immer dazu alle diejenigen 5-Steiner, in die durch ein Nehmen einer Figur (oder eines Bauern) transformiert werden kann.
Und dann eine weitere Figur (oder Bauer) genommen werden und deshalb brauchst Du alle 4-Steiner, die so entstehen können usw.
Außerdem: Wenn Du einen 6-Steiner mit Bauern hast, dann können Bauern in Figuren gewandelt werden und Du brauchst diese Tablebases auch!
Bei dem häufigen Endspiel T+B+B+B gegen T+B+B entsteht so eine sehr lange Liste der notwendigen Konstellationen.

Ergo:

1) die 6-Steiner sind eigentlich Voraussetzung für die 7-Steiner usw.
2) damit die 7-Steiner funktionieren wirst Du als erstes i.d.R. die meisten 7-Steiner brauchen, die keine Bauern enthalten. Diese können durch Bauern-Umwandlung (auch Unterverwandlungen!) immer entstehen.
3) Wenn Du einen 7-Steiner mit z.B. 2-Bauern hast, brauchst Du diejenigen TBs mit einem Bauern, wo ein Bauer in eine Figur umgewandelt wurde. usw.
Parent - By Tommy Tulpe Date 2020-12-19 19:24
Eduard Nemeth schrieb:

Würde ich Fernschach spielen dann würde ich sie nutzen.


Wieso verwendest du den Konjunktiv?   

Ulrich
Parent - - By Michael Bechmann Date 2020-12-20 03:34
Computerfachmänner, die auch was von Computerschach wissen, könnten sehr abraten, Tablebases auf SSD einzusetzen.
Angeblich kann man nur sehr begrenzt Daten auslesen oder speichern bevor SSD-Platten aufgeben (angeblich 150 bis 200 TB; weiß es nicht genau).
Besonders bei riesigen 7-TB könnte diese Kapazität schnell erschöpft sein.

Auch große Datenbanken mit CB16 will ich nicht auf der SSD-Platte einsetzen (zumal es nicht schneller funktioniert als auf bei herkömmlichen Platten).

Wie seht ihr das? Es könnte auch mein Problem sein, wenn ich eine externe SSD benutze.

Nebenfrage: können externe SSD über USB3 in einem laufen Partie die großen Datenmengen so schnell bereitstellen, dass es nützt?

mfg Michael  
Parent - - By Peter Jugl Date 2020-12-20 11:39 Edited 2020-12-20 11:45
Wertester Schachfreund Michael,

ich schreibe meine Antworten nach Punkten:

Michael Bechmann schrieb:

Computerfachmänner, die auch was von Computerschach wissen, könnten sehr abraten, Tablebases auf SSD einzusetzen.
Angeblich kann man nur sehr begrenzt Daten auslesen oder speichern bevor SSD-Platten aufgeben (angeblich 150 bis 200 TB; weiß es nicht genau).
Besonders bei riesigen 7-TB könnte diese Kapazität schnell erschöpft sein.

Auch große Datenbanken mit CB16 will ich nicht auf der SSD-Platte einsetzen (zumal es nicht schneller funktioniert als auf bei herkömmlichen Platten).

Wie seht ihr das? Es könnte auch mein Problem sein, wenn ich eine externe SSD benutze.

Nebenfrage: können externe SSD über USB3 in einem laufen Partie die großen Datenmengen so schnell bereitstellen, dass es nützt?

mfg Michael  


1. SSD-Defekte: Die "Speicherstellen" auf den nichtmechanischen Speichern verschleißen deutlich höher bei Schreibzugriffen. Dann wird ja die Polarisation der Bits einzeln verändert und fixiert. Bei einem reinen Lesevorgang wird ja elektronisch/auf Atomebene mehr oder weniger nichts geändert sondern nur der Zustand ausgelesen und weitergegeben. Daher geben die Hersteller auch die Haltbarkeit bei Lese-/Schreibvorgänge an. Kein "normaler User" nutzt die M.2 nur zum lesen. Das mache aber ich. Das Teil ist ein eigenes Laufwerk wo nur die Endspieldatenbanken drauf sind. Sonst nichts. Daher sollte die Lebensdauer kein Problem sein.

Beweis: Dann müssten ja die RAM-Bausteine auch nach einigen Wochen platt sein. Da werden ja noch ganz andere Datenmengen hin- und hergeschoben (mit ist als Informatiker klar, dass es andere Bausteine sind (non permanent) - dies ist nur zum Vergleich).

2. CB-Datenbanken ist etwas technisch/logisch ganz anderes: Da wird nicht sequentiell gelesen sondern mit einem DBMS (Datenbankmanagement-System) und den entsprechenden Index-Dateien gearbeitet. Da kann man mit ca. 18 Zugriffe den Datensatz innerhalb von Millarden SÄtzen finden.

Beispiel (+/- Version / NICHT Hash-Index - das ist hier zu kompliziert zu erklären): 1000 Datensätze sind gegeben (0-999) und du suchst z.B. Nr. 219. ZEIGER: 500 (0+1000/2) -> zu groß; Zeiger: 250 (0+500/2) -> zu groß; Zeiger: 125 (0+250/2) -> zu klein; Zeiger: 188 (125+250/2) -> zu klein; Zeiger: 219 (188+250/2) -> GEFUNDEN + Zugriff auf die Daten. Damit sind bei 1000 Sätzen hier im Beispiel nur 5 Suchzugriffe benötigt worden um den Satz zu finden. So arbeiten Datenbanken und auch CB. Deshalb benötigt CB nicht unbedingt eine SSD.

Es wird immer der oberste oder unterste Wert genommen und zum aktuellen Zeiger addiert und dann durch 2 geteilt / einfach erklärt. Daher sind solche DBMS auch verflucht schnell da nicht alle Dateninhalte sequentiell durchsucht werden müssen. Diesen SPaß hatte ich mir früher einmal auf einem PC mit dBase bzw. Clipper angetan. Das dauerte.

3. USB SSDs: Schau dir bei z.B. ALTER... die Daten der SSDs und der USB-Schnittstelle an. Das langsamste an dem Datenzugriff ist die Mechanik = die Pladde mit dem Zugriffskamm. Die Mechanik ist locker um den Faktor 1000 (!) langsamer als jede Elektronik. Die Platte dreht sich und je Umdrehung muss der Arm positioniert werden um die exakten Sektoren und Blöcke zu finden. Das geht auch nicht innerhalb von einer Umdrehung. Würde jetzt hier ausarten das zu erklären wie die Mechanik/logischer Aufbau der Sektoren der Platten der Firmware/des Betriebssystem/der Software arbeitet. Es sind immer drei Stufen notwendig: Und das dauert bei "Pladden" halt. Da sind externe USB-SSDs im Vorteil, auch wenn interne via SATA / M.2 ... schneller wären.

Waidmannsheil
Peter

PS: Hatte mir gestern die 6-Steiner geladen. Danke für den Link! Bei der Analyse einer Stellung hatte SF inerhalb einer Minute über 250.000 (!) Tabelbase-Zugriffe gemacht - das Programm wurde ein wenig langsamer durch die 6er. Es ging runter von ca. 25.000KN/s auf ca. 7.000 KN/s.

Aber: Bei Lc0 ist dieser Effekt gar nicht zu sehen!    Weil die Knotenzahl eh langsam ist fällt der Zugriff auf die Endspieldatenbank gar nicht mehr ins Gewicht. Während die GraKas die Bewertung durchs Netz vornehmen wird vom Programm (EXE-Datei auf dem PC - Stellungen generieren) der Abruf der  TBs durchgeführt.  Ich kenne den Code nicht aber ich habe ein "Gefühl" dafür wie das Zusammenspiel der Komponenten ist.
Parent - By Michael Bechmann Date 2020-12-20 12:56 Edited 2020-12-20 13:33
Hallo,

danke für die Information. Für SSD-Abnutzung kenne ich mich tatsächlich nicht aus.

Im letzten März habe ich einen neuen PC mit SSD für Windows. Nun bootet er sehr schnell (früher mit Win 8.1 dauerte das 10 Minuten). Das hat mich z. B. begeistert.
Im Herbst hatte ich die Information bekommen, das SSD-Platten sehr schnell abgenutzt werden (siehe Beitrag oben) und die Begeisterung war dann nur noch gedämpft.

Mit der Information benutzte ich die SSD-Platte möglichst nur noch für systemeigene Dinge (Windows), um sie zu schonen und für alles andere auf die interne (Programme, Schach) HDD-Platte, zumal z. B. MS-Office vermutlich mit SSD-Platte kaum beschleunigen lassen. Ich kann kaum 10 mal schneller tippen, weil ich es auf einer SSD-Platte installiert habe.
Bei Chessbase 15/16 rappelt die HDD-Platte ständig, besonders bei den lästigen "Suchbeschleunigern", die viel Zeit brauchen, danach nichts beschleunigen und so eher uneffektiv sind. Die breche ich immer manuell ab, denn soviel Zeit habe ich nicht. Das will ich auch den SSD-Platten nicht zumuten.
Testweise habe ich Fritz 17 nebst Big-Database auch mal auf der SSD-Platte installiert und die Ergebnisse aus Datenbanken (etwa "Suche eine Stellung aus 8 Mill. Partien") gehen bei mir nicht merklich schneller, als wenn sie auf der HDD-Platte installiert sind - besonders dann nicht, wenn ich nach einer Suche zuerst stets einen Suchbeschleuniger, der 5 oder auch mal 20 Minuten braucht, wenn ich ihn nicht abbreche. "Beschleunigung" stelle ich mir anders vor,  (*).
Bei Anwendungsprogrammen (z. B. Bildverarbeitung) oder Schachengines sind doch nach Starten des Programms eher CPU und RAM für die Geschwindigkeit zuständig, nicht die Festplatten-Technik?

Eine ganz andere Frage ist, ob man eine externe SSD-Platte (USB3) die Datenmengen aus Tablebases schnell "ins Programm" bringt. Es müssen vermutlich mehrere "Daten-Engpässe" passieren (z. B. Controller?), die mit SSD oder HDD nicht viel zu tun haben?
Da könnten die Geschwindigkeitsvorteile der SSD-Technik relativiert werden.



(*) Beschleunigung auf Festplatten kann man in der physikalischer Definition als 2. Ableitung des Weges nach der Zeit bzw. Quotient aus Kraft/Masse gar keinen Sinn beimessen. Es ist sicher "Zeitsparer" gemeint, ist praktisch auch unzutreffend und klingt auch doof.

Grüße Michael
Up Topic Hauptforen / CSS-Forum / Tablebases beschleunigt

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill