Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Kleines Neujahrsturnier ergänzt mit LC0
- - By Klaus Wlotzka Date 2019-01-13 15:50 Upvotes 1
Hallo Zusammen,

angesichts der momentanen Spekulationen, wie stark LC0 im Vergleich zu den Top-AB-Engines ist, habe ich nunmehr mein kleines Neujahrsturnier genommen und LC0 v0.20.1 im Spießrutenlauf gegen die Top3 Stockfish 10, Houdini 6.03 und Komodo 12.3 antreten lassen. Da dieses Turnier mit 4 Threads und Pondern durchgeführt wurde, musste LC0 somit auch gegen diese Hardware antreten. Mit der Laptop-Grafikkarte Geforce GTX460M hätte ich den AB-Engines normalerweise nur mit einem Thread spielen lassen. Dann hätte ich allerdings das ganze Turnier von vorne beginnen müssen. Insgesamt tue ich mich ohnehin schwer ausfindig zu machen, welche Hardwarekombinationen von AB- und NN-Engines in etwa ausgewogen sind da Rechengeschwindigkeiten und Rechentiefen untereinander nicht wirklich vergleichbar sind.

Für mich war auch interessant, wie LC0 gegen die doch übermächtige Hardware der AB-Engines mithalten kann. Nach einer Aktualisierung der Grafiktreiber konnte es losgehen.

Ich war sehr überrascht, dass LC0 mit durchschnittlich nur etwa 1,0 KN/s es den AB-Engines doch sehr schwer machte und nach 60 Partien gegen diese starke Gegnerschaft einen Score von 45% erzielte, das Match gegen Komodo 12.3 sogar ausgeglichen gestalten konnte.

Stockfish mit seinem Score von 65% ist aber mit dieser Hardware für LC0 noch in weiter Ferne, mit Komodo und Houdini konnte LC0 allerdings schon mithalten.



Die kürzeste Gewinnpartie von LC0 wollte ich euch nicht vorenthalten. LC0 spielte gegen Komodo mit Weiß kompromisslos bei der Französisch-Eröffnung konsequent mit Dg4 gegen den kurz rochierten König. In einer zuvor gespielten Partie konnte sich Houdini in der gleichen Variante noch ins Remis retten. Erst im 11. Zug wich Komodo mit 11. ... Sc6 gegenüber 11. ... Tf5 von Houdini ab und geriet sehr schnell auf die Verliererstraße. Ein schön vorgetragener Angriff von LC0.

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board


Bei Gelegenheit werde ich dieses Turnier mit weiteren starken Engines ergänzen.

Viele Grüße

Klaus
Parent - - By Stefan Pohl Date 2019-01-13 16:24 Edited 2019-01-13 16:29
Klaus Wlotzka schrieb:

Insgesamt tue ich mich ohnehin schwer ausfindig zu machen, welche Hardwarekombinationen von AB- und NN-Engines in etwa ausgewogen sind da Rechengeschwindigkeiten und Rechentiefen untereinander nicht wirklich vergleichbar sind.



Damit tun wir uns alle schwer. Man kann nur die Leela-Ratio für die jeweilige Test-/Turnierbedingungen ausrechnen. Was genau für Zahlenwerte dabei wirklich fair oder wünschenswert sind, das ist dann aber immer noch die Frage. Sicher ist nur, daß im Wettkampf von Google AlpahZero gegen Stockfish 8, die Leela-Ratio= 1.0 war. Da man mit einiger Berechtigung davon ausgehen darf, daß Google in diesem Wettkampf, der ja letzlich eine Werbeveranstaltung für ihre KI-Bemühungen war, sicher recht günstige Bedingungen für AlphaZero "konstruiert" hat, bin ich der Meinung, die Leela-Ratio sollte den Wert 1.0 nicht überschreiten. Das kann dann eigentlich nicht fair für die AB-Gegnerengines sein. Wie weit allerdings der Leela-Ratio-Wert unter 1.0 liegen kann, bis es für Leela unfair wird, das ist eine Frage, die man kaum seriös beantworten kann. Auf jeden Fall sollte man den Leela-Ratio Wert bei einem Test oder Turnier immer angeben, damit man die Ergebnisse wenigstens bedingt in Relation zu den Ergebnissen anderer Tester setzen kann...
Es gab ja mal die Idee, den Stromverbrauch der CPU in Bezug zum Stromverbrauch der GPU zu setzen und diesen Vergleich als "Speedmeter" zu verwenden. Ob das allerdings sinnvoll ist, das weiß ich nicht.

Meine 2cents zu dieser durchaus nicht trivialen Problematik...
Parent - - By Klaus Wlotzka Date 2019-01-13 17:12
Stefan Pohl schrieb:

Klaus Wlotzka schrieb:

Insgesamt tue ich mich ohnehin schwer ausfindig zu machen, welche Hardwarekombinationen von AB- und NN-Engines in etwa ausgewogen sind da Rechengeschwindigkeiten und Rechentiefen untereinander nicht wirklich vergleichbar sind.



Damit tun wir uns alle schwer. Man kann nur die Leela-Ratio für die jeweilige Test-/Turnierbedingungen ausrechnen. Was genau für Zahlenwerte dabei wirklich fair oder wünschenswert sind, das ist dann aber immer noch die Frage.


Hallo Stefan,

mmh, laut Beschreibung soll man in der Grundstellung bei erreichen einer Rechentiefe von 26-28 die NPS aufschreiben. Nun, bei mir erreicht LC0 nach ca. 3 Minuten erst eine Rechentiefe von 14/41 (bei durchschnittlich 1077 nodes per sec). Da bin ich noch meilenweit von Tiefe 26 entfernt, was wahrscheinlich mehrere Stunden dauern würde. Mir kam schon beim beobachten der Partien mit LC0 die geringe Rechentiefe ungewöhnlich vor. Die Ergebnisse waren aber zu gut als das ich hier ein Problem vermutet würde.

Sind die geringen Rechentiefen normal?

Ich habe gesehen, dass du in deinem Laptop eine vergleichbare Grafikkarte hast, welche n/s erreicht den LC0 bei Dir. Kann es Unterschiede von Version 0.20.1 zu älteren Version geben?

Viele Grüße

Klaus
Parent - - By Stefan Pohl Date 2019-01-13 19:24
Nö, das liegt an der GUI, die ausgegebenen Suchtiefen sind in der GUI anders, als im Konsolenmodus: Du mußt lc0 per Doppelklick direkt unter Windows starten und dann “go infinite“ eingeben.
Dann schaust du auf den nps-Wert. Dieser wird in den ersten 30-45 Sekunden peu a peu ansteigen. Warte einfach 1-2 Minuten, dann siehst du, daß sich der nps-Wert kaum noch ändert. Diese Zahl nimmst du dann.
Bei Stockfish solltest du genauso vorgehen (den nps-Wert brauchst du ja auch), nur wird sich dieser schneller einpendeln.
Bei Stockfish noch ggf. Vor go infinite “setoption name Threads value 4“ eingeben, wenn mehr als ein Thread genutzt werden soll (in diesem Beispiel 4).
Parent - - By Klaus Wlotzka Date 2019-01-13 20:51
Stefan Pohl schrieb:

Nö, das liegt an der GUI, die ausgegebenen Suchtiefen sind in der GUI anders, als im Konsolenmodus: Du mußt lc0 per Doppelklick direkt unter Windows starten und dann “go infinite“ eingeben.
Dann schaust du auf den nps-Wert. Dieser wird in den ersten 30-45 Sekunden peu a peu ansteigen. Warte einfach 1-2 Minuten, dann siehst du, daß sich der nps-Wert kaum noch ändert. Diese Zahl nimmst du dann.
Bei Stockfish solltest du genauso vorgehen (den nps-Wert brauchst du ja auch), nur wird sich dieser schneller einpendeln.
Bei Stockfish noch ggf. Vor go infinite “setoption name Threads value 4“ eingeben, wenn mehr als ein Thread genutzt werden soll (in diesem Beispiel 4).


Hallo Stefan,

vielen Dank für die Information. Ich habe es gleich mal ausprobiert.

Es ergibt sich folgendes Leela-Ratio: (875 x 1268 nps / 5326776 nps = 0,21 Leela-Ratio, also deutlich unter dem Wert 1.

Auch im Konsolenmodus erreichte LC0 0.20.1 nach ca. 3 Min lediglich eine Suchtiefe von 15 Zügen.

Grüße

Klaus
Parent - - By Stefan Pohl Date 2019-01-13 21:22
Klaus Wlotzka schrieb:

Stefan Pohl schrieb:

Nö, das liegt an der GUI, die ausgegebenen Suchtiefen sind in der GUI anders, als im Konsolenmodus: Du mußt lc0 per Doppelklick direkt unter Windows starten und dann “go infinite“ eingeben.
Dann schaust du auf den nps-Wert. Dieser wird in den ersten 30-45 Sekunden peu a peu ansteigen. Warte einfach 1-2 Minuten, dann siehst du, daß sich der nps-Wert kaum noch ändert. Diese Zahl nimmst du dann.
Bei Stockfish solltest du genauso vorgehen (den nps-Wert brauchst du ja auch), nur wird sich dieser schneller einpendeln.
Bei Stockfish noch ggf. Vor go infinite “setoption name Threads value 4“ eingeben, wenn mehr als ein Thread genutzt werden soll (in diesem Beispiel 4).


Hallo Stefan,

vielen Dank für die Information. Ich habe es gleich mal ausprobiert.

Es ergibt sich folgendes Leela-Ratio: (875 x 1268 nps / 5326776 nps = 0,21 Leela-Ratio, also deutlich unter dem Wert 1.

Auch im Konsolenmodus erreichte LC0 0.20.1 nach ca. 3 Min lediglich eine Suchtiefe von 15 Zügen.

Grüße

Klaus


Ja, hab ich inzwischen auch noch mal nachgeschaut. Wahrscheinlich war zu Zeiten der Anleitung für die Leela-Ratio die Tiefenangabe noch anders. Letzlich wurscht. Es kommt darauf an, daß man so lange wartet, bis sich die nps eingepegelt haben. Das dauert bei Leela eine Weile, weil sie zu Beginn des Rechenprozesses das NeuralNetz erst einladen muß. Daher ist der nps Wert für ca. 2-3 Sekunden eben 0, erst danach geht er dann hoch. Daher dauert es etwas, bis er sich dann einpendelt (ca. 1 Minute).
Deine Werte sind ähnlich zu meiner Hardware, nur daß ich im long thinkingtime-Turnier die AB-Engines halt singlethread laufen lasse, insofern ist die Leela-Ratio bei mir eben ca. 3x höher (0.67).

Gruß  - Stefan
Parent - By Klaus Wlotzka Date 2019-01-13 21:40
[/quote]

Ja, hab ich inzwischen auch noch mal nachgeschaut. Wahrscheinlich war zu Zeiten der Anleitung für die Leela-Ratio die Tiefenangabe noch anders. Letzlich wurscht. Es kommt darauf an, daß man so lange wartet, bis sich die nps eingepegelt haben. Das dauert bei Leela eine Weile, weil sie zu Beginn des Rechenprozesses das NeuralNetz erst einladen muß. Daher ist der nps Wert für ca. 2-3 Sekunden eben 0, erst danach geht er dann hoch. Daher dauert es etwas, bis er sich dann einpendelt (ca. 1 Minute).
Deine Werte sind ähnlich zu meiner Hardware, nur daß ich im long thinkingtime-Turnier die AB-Engines halt singlethread laufen lasse, insofern ist die Leela-Ratio bei mir eben ca. 3x höher (0.67).

Gruß  - Stefan
[/quote]

Hallo Stefan,

ok, das beruhigt mich, dachte schon etwas falsch gemacht zu haben.

Vielleicht ist die Rechentiefe auch abhängig von der Größe des verwendeten Networks.

Viele Grüße

Klaus
Parent - - By Benno Hartwig Date 2019-01-13 22:22 Upvotes 1

> Damit tun wir uns alle schwer.


Ich habe so die Vorstellung, "fair" sollte mit Bezug auf die Kosten eingeschätzt werden.
Wenn ein 2000-Euro-Rechner eine billig-Grafik-Lösung als Gegner hat, ist das unpassend.
Wenn ein 300-Euro-Rechner eine superteure Grafik-Lösung hat, ist das auch unpassend.

Könnte man vielleicht sagen:
Fair ist es ungefähr dann, wenn die Kosten von Prozessor + Speicher so ungefähr den Kosten der Grafiklösung entsprechen?

Benno
Parent - - By Stefan Pohl Date 2019-01-14 05:14
Benno Hartwig schrieb:

Ich habe so die Vorstellung, "fair" sollte mit Bezug auf die Kosten eingeschätzt werden.
Wenn ein 2000-Euro-Rechner eine billig-Grafik-Lösung als Gegner hat, ist das unpassend.
Wenn ein 300-Euro-Rechner eine superteure Grafik-Lösung hat, ist das auch unpassend.

Könnte man vielleicht sagen:
Fair ist es ungefähr dann, wenn die Kosten von Prozessor + Speicher so ungefähr den Kosten der Grafiklösung entsprechen?

Benno


Ja, das wäre schon eine Möglichkeit. Allerdings sind die Preise von CPUs und GPUs starken Schwankungen (bzw. schnellem Preisverfall) unterworfen. Wird eine neue CPU schneller im Preis gesenkt als eine neue GPU (oder umgekehrt), geraten solche Rechnungen schnell in Schieflage.
Zudem gibt es bei GPUs ja bzgl. der Leistung, die lc0 auf ihnen erreicht, einen gewaltigen Unterschied bzgl. AMD und NVIDIA (bei gleichem Preis), da AMD GPUs kein CUDA unterstützen. Bei den CPUs ist wiederum AMD bei gleichen Kosten leistungsfähiger als Intel. Zumindest momentan. All das kann sich auch wieder schnell ändern.
Insofern halte ich diesen Ansatz für nicht wirklich praktikabel.
Parent - - By Lothar Jung Date 2019-01-14 10:17
Wieso?

CPU Ryzen 7 2070x = 330 €, 16 GB RAM, DDR4, 3.000= 130 € ergibt 460 €
RTX 2070 = 500 - 530 €

Geht doch!
Parent - - By Stefan Pohl Date 2019-01-14 11:39 Edited 2019-01-14 11:51
Lothar Jung schrieb:

Wieso?

CPU Ryzen 7 2070x = 330 €, 16 GB RAM, DDR4, 3.000= 130 € ergibt 460 €
RTX 2070 = 500 - 530 €

Geht doch!


Und was ist mit einer RTX 2080Ti? Die ist fast doppelt so teuer, bringt aber Leela nur +30% Leistung? Da bekämst du in Testruns ähnliche Ergebnisse, weil +30% Knoten nicht viel in Elo ausmachen, aber eine völlig andere Preisrelation.
Oder eine viel teurere IntelCPU, die etwa so schnell ist, wie deine Ryzen 7 CPU. Da bekämst du ebenfalls praktisch identische Testergebnisse, wegen der ähnlichen Knotenleistung der AB-Engines auf diesen CPUs, aber eine völlig andere Preisrelation.
Von AMD-GPUs ohne Cuda Unterstützung, die ja auch Geld kosten, aber auf denen Lc0 viel, viel langsamer läuft, gar nicht erst zu reden...
Ergo: unbrauchbarer Ansatz

Will man Testergebnisse von vielen Computerschächer in Relation setzen, müßte diese Relation auch mit allen funktionierenden Hardware-Komponenten funktionieren. Das ist bei der Preis-Relation definitiv nicht der Fall. Es geht letzlich nur über die Leistung der Komponenten. Und zwar die Schach-Leistung. Eine Stromverbrauchs-Relation scheitert ebenfalls z.B. an AMD GPUs oder dem Vergleich von den älteren GTX- und den neueren RTX-GPUs, welche ja beide ähnlich viel Saft ziehen, aber Leela läuft auf den RTX Karten eben 3.5x schneller...

Ergo, es geht letzlich nur über die Leela-Ratio, fürchte ich. Welche Werte unter 1.0 wirklich “gut“ oder nicht gut sind, läßt sich wohl nicht wirklich beantworten. Aber man kann die Leela-Ratios verschiedener Systeme gegenüberstellen und die Testergebnisse entsprechend einordnen. Mehr wird man nicht machen können.
Parent - By Lothar Jung Date 2019-01-14 13:03
Man hat mit dem von mir beschriebenen System zwischen CPU/GPU eine vernünftige Leistungsrelation.
Und die jeweiligen Preiskomponenten stimmen auch.
Was soll ich mit der total überteuerten RTX 2080ti.
Bald kommen neue AMD-Grafikkarten auf den Markt, die hoffentlich auch die Preise für RTX 2070/2060 sinken lassen.
Diese GPUs sind eine vernünftige Wahl, je nachdem was man für eine Leistungsklasse beim Desptop oder Notebook will.
Im übrigen hat eine GPU auch noch andere Aufgaben als Leela auszuführen.
Die Knotenleistungen zwischen den unterschiedlichen Systemen kann man den Cores bei der CPU anpassen.
Knotenleistungen bei A/B-Engines haben keine Relation zur eigentlichen Spielstärke.
Die Leela-Ratio gibt nur Hinweise. SF bzw. Komodo MC und gerade die Leela-Netze entwickeln sich dazu zu dynamisch.
Up Topic Hauptforen / CSS-Forum / Kleines Neujahrsturnier ergänzt mit LC0

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill