Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Die ganze Welt der Schachcomputer / World of chess computers (https://www.schachcomputer.info/forum/forumdisplay.php?f=2)
-   -   Tipp: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread) (https://www.schachcomputer.info/forum/showthread.php?t=5030)

BHGP 24.06.2019 11:26

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von StPohl (Beitrag 82144)
Oh. Ja, das stimmt natürlich. Ich dachte, wie GitHub-Seiten strukturiert sind, wäre allen klar. Denn es ist ja bei Ethereal, Xiphos etc. auch so. Die lauffähigen Compiles stehen immer unter releases...
Da hätte ich wohl den Link direkt auf die releases-Site posten sollen. Sorry, folks.

Sorry, dann war das ein Missverständnis. Ich habe den Schalter "zip" gesehen und gedacht, dass muss es sein. Ich denke, dann sollte ich heute abend doch noch ein Erfolgserlebnis haben:D

Vielleicht noch eine Frage: In den Release Notes qualifiziert der Autor das Projekt eher als "Spielzeug" und "ersten" Wurf, denn als vollwertiges Analysetool. Ist er da zu bescheiden, oder wie soll man das "werten"?

StPohl 24.06.2019 12:08

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von fhub (Beitrag 82145)
Hallo Stefan,

Du scheinst ja hier der LC0-Experte zu sein, also mal eine kurze Frage, weil ich mich ja erst seit gestern für LC0 interessiere:

Bei den aktuellen Networks gibt's da ja die 42000er (mit ca. 3270 Elo) und die kleineren 54000er (mit ca.1900 Elo).
Vorausgesetzt diese Elo-Werte entsprechen ungefähr denjenigen, die auch für die üblichen Schach-Engines angegeben werden (?) -
wozu ist denn dann bei diesem riesigen Unterschied das kleinere Network überhaupt gut?
Es erreicht zwar wesentlich höhere nodes/sec, aber spielt doch trotzdem VIEL schlechter, oder?

Grüße,
Franz

Die 54xxx Nets sind nur Experimental-Runs, die kann man zur Nutzung vergessen. Da versuchen die Macher, zu lernen...
Es gibt eben die "vollwertigen" 40xxx Nets, die z.Zt. bei 42647 sind. Die sind auf einem PC mit CUDA-Karte zu nehmen.
Generell sind die Elozahlen, die dort auf dem Server zu sehen sind, mit allergrößter Vorsicht zu geniessen...
Ich teste die Nets aber auch richtig, gegen klassische AB-Engines:
https://www.sp-cc.de/lc0-testing.htm

Nimmt man ein Netzwerk, das ich getestet habe und das gut abschneidet, macht man nichts falsch!

Wer mag, kann auch das Netz nehmen, daß das letzte TCEC-Superfinal gegen Stockfish gewonnen hat (T40.T8.610) zu finden hier:
https://github.com/LeelaChessZero/lc...ird-Party-Nets

(ich hab auch das getestet. Heißt bei mir JH.T8.610. Liegt aber knapp 40 Elo schlechter, als die allerbesten Nets).


Auf langsamen Geräten ohne CUDA-Karte, also Android-Smartphones oder Netbooks etc. sollte man die sog. destilled-Networks von D.Kappe nehmen. Diese spielen positionell nicht ganz so gut, wie die nicht-destillierten Ausgangs-Netzwerke, aber laufen auf CPU zumindest halbwegs flott. Zu finden hier:
https://github.com/dkappe/leela-ches...illed-Networks
In der 10-Minuten FGRL-Liste sind 2 Netzwerke (auf nur 1 CPU-Kern getestet!) gelistet, immerhin auf Höhe von Senpai 1.0
http://www.fastgm.de/10min.html


Ich hoffe, diesmal stimmen alle Links...

Grüße - Stefan (SPCC)

Das letzte Netzwerk, dessen Testergebnis bei mir online ist, ist 42595. Das ist sehr stark.
Hier mal die Einzelergebnisse, man beachte das Ergebnis gegen eine halbwegs aktuelle Stockfish-Dev von Anfang Mai: 58%(!):

Code:

1 Lc0 0.21.2 N:42595          : 3524 700 (+338,=339,- 23), 72.5 %

Komodo 13.01 bmi2            : 100 (+ 48,= 49,-  3), 72.5 %
Stockfish 190504 bmi2        : 100 (+ 20,= 76,-  4), 58.0 %
Xiphos 0.5.3 bmi2            : 100 (+ 58,= 37,-  5), 76.5 %
Laser 1.7 bmi2                : 100 (+ 62,= 35,-  3), 79.5 %
Ethereal 11.25 pext          : 100 (+ 59,= 37,-  4), 77.5 %
Houdini 6 pext                : 100 (+ 34,= 63,-  3), 65.5 %
Fire 7.1 popc                : 100 (+ 57,= 42,-  1), 78.0 %

Wer noch einen Grund braucht, sich mit lc0 zu beschäftigen, der kann sich auf meiner Website direkt die Gewinnpartien des aktuellen Testruns, also z.Zt. lc0 0.21.2 N:42595 gegen Stockfish ansehen und staunen, wie leicht sich Stockfish vom Brett schieben läßt...Wenn man denn wirklich Schach spielen kann...
https://www.sp-cc.de/view-lc-zero-games.htm

fhub 24.06.2019 12:27

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von StPohl (Beitrag 82147)
Es gibt eben die "vollwertigen" 40xxx Nets, die z.Zt. bei 42647 sind. Die sind auf einem PC mit CUDA-Karte zu nehmen.
...
Auf langsamen Geräten ohne CUDA-Karte, also Android-Smartphones oder Netbooks etc. sollte man die sog. destilled-Networks von D.Kappe nehmen. Diese spielen positionell nicht ganz so gut, wie die nicht-destillierten Ausgangs-Netzwerke, aber laufen auf CPU zumindest halbwegs flott.

Ok, danke für die vielen Tips! :)

Die 50xxx-Networks werde ich dann mal vergessen, aber noch ist mir nicht ganz klar, was nun am besten für meine Konfigration geeignet ist.
Das CUDA-Zeugs will ich mir nur für LC0 nicht unbedingt installieren, aber die ganz langsame CPU-Version benutze ich auch nicht, sondern die OpenCL-Version von LC0 (die läuft ja auch auf der Grafikkarte).
Welche Networks sind denn für die OpenCL-Version gut geeignet?
Und ist da wirklich so ein großer Unterschied zwischen CUDA und OpenCL?

Grüße,
Franz

StPohl 24.06.2019 12:42

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von fhub (Beitrag 82148)
Ok, danke für die vielen Tips! :)

Die 50xxx-Networks werde ich dann mal vergessen, aber noch ist mir nicht ganz klar, was nun am besten für meine Konfigration geeignet ist.
Das CUDA-Zeugs will ich mir nur für LC0 nicht unbedingt installieren, aber die ganz langsame CPU-Version benutze ich auch nicht, sondern die OpenCL-Version von LC0 (die läuft ja auch auf der Grafikkarte).
Welche Networks sind denn für die OpenCL-Version gut geeignet?
Und ist da wirklich so ein großer Unterschied zwischen CUDA und OpenCL?

Grüße,
Franz

Es ist ein Riesenunterschied zwischen CUDA und OpenCl!! (ca. Faktor 4.5 bis 5x schneller ist CUDA)
Wenn du also eine CUDA-Karte hast (also was halbwegs aktuelles von NVIDIA) solltest du unbedingt lc0-CUDA benutzen. Das Gute ist, es muß gar nichts installiert werden! (Das war nur ganz früher der Fall, mittlerweile hat NVIDIA dem lc0-Team erlaubt, die nötigen CUDA-files in ihren Download zu packen!).
Du mußt nur deinen Grafiktreiber auf den neuesten Stand bringen (das ist aber keine große Sache und geht praktisch von alleine):
https://www.nvidia.de/Download/index.aspx?lang=de

Danach rebootest du den PC und lädst dir nur den lc0-CUDA runter (der ist allerdings gute 250MB groß) und entpackst das Ganze in einen Ordner, packst ein Net dazu und das war es schon. Das ist letztlich sogar bequemer, als die OpenCL-Version. Denn Letztere muß man erst mal im Konsolenmodus starten, dann go infinte eingeben und dann sucht lc0 die optimale Konfiguration für die GPU und das kann gut und gerne 30-45 Minuten dauern(!). In der Zeit hast du die CUDA-Version längst am Laufen!

Bei einer flotten CUDA-Karte empfiehlt es sich, die lc0-UCI-Option NNCacheSize hochzusetzen (entspricht etwa der Hash-Option bei normalen Engines). 1000000 wäre schon empfehlenswert (default ist 200000). Hash über die GUI kann man nicht einstellen, lc0 kennt das Hash-Kommando gar nicht. Hier kann man in der GUI also einen ganz kleinen Wert nehmen, lc0 nutzt das sowieso nicht.

Wer eine RTX-Karte hat, muß bei den lc0-UCI-Optionen noch unbedingt Backend=cudnn-fp16 einstellen, das macht lc0 ca. Faktor 3 schneller, weil die Fließkommaoperationen auf 16bit begrenzt werden (default sind 32bit). Das geht aber nur auf RTX-Karten! Und ist der Grund, warum alle Tester sich jetzt RTX-Karten gekauft haben...auch ich. Also ich hab ein neues Notebook mit RTX2060 gekauft. Wer einen KlotzPC daheim hat, dem würde ich die RTX 2070 empfehlen, welche bei lc0 das z.Zt. beste Preis/Leistungsverhältnis hat.

StPohl 24.06.2019 12:53

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Hier die Werte einer RTX 2060 (nicht mobile) von Andreas Strangmüller:
Code:

Leela Zero (Lc0) auf einer NVIDIA Geforce RTX 2060

GUI:      Arena 3.5.1
Engine:    Lc0 v0.20.1 CUDA
Netz:      32900
Stellung:  Grundstellung - FEN: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

Nachfolgend einige Benchmarks mit unterschiedlichen Settings nach ca. 60 Sekunden Bedenkzeit aus der Grundstellung:

Default Settings, backend=cudnn

                    Zeit    Knoten Gesamt  Knoten pro Sekunde
Höchste Knotenzahl: 01:01  469.006          7.681
Nach einer Minute:  01:01  469.006          7.681

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

Default Settings, backend=cudnn-fp16

                    Zeit    Knoten Gesamt  Knoten pro Sekunde
Höchste Knotenzahl: 00:18    404.929      22.276
Nach einer Minute:  01:01  1.224.396      19.995

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

Default Settings, backend=cudnn-fp16, NNCacheSize=2000000

                    Zeit    Knoten Gesamt  Knoten pro Sekunde
Höchste Knotenzahl: 01:01  1.503.121      24.499
Nach einer Minute:  01:01  1.503.121      24.499

Man beachte den Riesen-Unterschied zwischen cudnn-fp16 und default !
Eine RTX 2070 sollte nochmal ca. 20% schneller sein...

Mit der OpenCL-Version kann man froh sein, wenn lc0 auf 1000 n/s kommt. Die meisten Systeme werden sogar darunter bleiben. Nur mal so als Vergleich...

Die schnellsten nicht-RTX Karten, also GTX 1080 etc. kommen mit der CUDA-Version von lc0 so auf 6000-8000 n/s.

fhub 24.06.2019 12:54

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von StPohl (Beitrag 82150)
Es ist ein Riesenunterschied zwischen CUDA und OpenCl!!
Wenn du also eine CUDA-Karte hast (also was halbwegs aktuelles von NVIDIA) solltest du unbedingt lc0-CUDA benutzen. Das Gute ist, es muß gar nichts installiert werden! (Das war nur ganz früher der Fall, mittlerweile hat NVIDIA dem lc0-Team erlaubt, die nötigen CUDA-files in ihren Download zu packen!).
Du mußt nur deinen Grafiktreiber auf den neuesten Stand bringen (das ist aber keine große Sache und geht praktisch von alleine):
https://www.nvidia.de/Download/index.aspx?lang=de

Daß man CUDA nicht mehr extra installieren muß, ist schon mal positiv, und CUDA-fähig ist meine GeForce 940MX auch (sagt jedenfalls GPU-Z), also werde ich das dann doch mal probieren.
Ich hoffe nur, daß mir ein Update des Grafiktreibers nicht irgendwelche Probleme mit anderen Programmen beschert - ich hab da so meine Erfahrungen mit Updates, wenn vorher alles perfekt funktioniert hat, und nachher nichts mehr.
Aber ich hab ja zum Glück ein sicheres System-Backup ... ;)

StPohl 24.06.2019 13:02

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von fhub (Beitrag 82153)
Daß man CUDA nicht mehr extra installieren muß, ist schon mal positiv, und CUDA-fähig ist meine GeForce 940MX auch (sagt jedenfalls GPU-Z), also werde ich das dann doch mal probieren.
Ich hoffe nur, daß mir ein Update des Grafiktreibers nicht irgendwelche Probleme mit anderen Programmen beschert - ich hab da so meine Erfahrungen mit Updates, wenn vorher alles perfekt funktioniert hat, und nachher nichts mehr.
Aber ich hab ja zum Glück ein sicheres System-Backup ... ;)

Ja, die Karte ist auch im Benchmark verzeichnet, also wird lc0 CUDA bei dir laufen:
https://browser.geekbench.com/cuda-benchmarks
(bei den Benchmark-Werten muß man für lc0 die Werte bei den RTX-Karten etwa verdreifachen!)

Aber nur mit 28000er Wert, das ist natürlich sehr langsam. lc0 Cuda dürfte da im Mittelspiel so auf 700 n/s kommen (über den Daumen gepeilt). Mehr ist nicht drin. Bestenfalls. Und die OpenCL-Version von lc0 dürfte bei dir wahrscheinlich nur so 100-150 n/s schaffen, wenn ich schätzen sollte. Als Vergleich: Auf meiner RTX2060 (mobile !) sind es so um die 18000 n/s bei vollem Brett. Eine non-mobile RTX 2070 sollte im Mittelspiel an der 30000 n/s-Marke kratzen. Das ist natürlich eine ganz andere Dimension.
Und soooo teuer sind die RTX-Karten nun auch nicht. Ich kann den Kauf nur empfehlen. Die Zukunft gehört den NeuralNetz-Engines, das steht für mich außer Frage. Insofern ist die Anschaffung einer dafür geeigneten Hardware unbedingt anzuraten. Zumal die Geschwindigkeits-Zugewinne dank der cudnn-fp16 Option wirklich extrem sind...

fhub 24.06.2019 13:21

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von StPohl (Beitrag 82154)
Ja, die Karte ist auch im Benchmark verzeichnet, also wird lc0 CUDA bei dir laufen:
https://browser.geekbench.com/cuda-benchmarks

Aber nur mit 28000er Wert, das ist natürlich sehr langsam. lc0 Cuda dürfte da im Mittelspiel so auf 700 n/s kommen (über den Daumen gepeilt). Mehr ist nicht drin. Bestenfalls. Und die OpenCL-Version von lc0 dürfte bei dir wahrscheinlich nur so 100-150 n/s schaffen, wenn ich schätzen sollte.

Richtig geschätzt - und sogar die CPU-Version schafft mehr als 50 n/s.

Aber ich hab hier natürlich nur ein Notebook, da sind ja nicht unbedingt die besten Grafikkarten verbaut, und ein Wechsel ist bei Notebooks auch nicht einfach bzw. gar nicht möglich.
Allerdings hab ich auch nicht vor, mir nur wegen Schach irgendein neues, sauteures System zu kaufen - für mich mit meinen ~1850 Elo reicht mein Notebook allemal. ;)
Ich brauche ja auch nicht unbedingt absolute Spitzenleistung im Computerschach - mich interssiert ja eher die Theorie hinter solchen Neuerungen wie NN, und außerdem programmiere ich ja lieber selber als mich von den heutigen Top-Schachprogrammen zerlegen zu lassen. :D

Grüße,
Franz

applechess 24.06.2019 13:36

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von BHGP (Beitrag 82146)
Sorry, dann war das ein Missverständnis. Ich habe den Schalter "zip" gesehen und gedacht, dass muss es sein. Ich denke, dann sollte ich heute abend doch noch ein Erfolgserlebnis haben:D

Mit dem richtigen Download klappt es nun auch bei mir. Wichtig einfach, dass die config.json richtige Parameter enthält und vor
allem der Tipp von Stefan Pohl:

Code:

"path": "D:\\Documents\\lc0-v0.21.1\\lc0.exe",
       
        "options": {
                "Backend": "cudnn",

},

Das Komma hinter "cudnn" ist wegzulassen. Mit Komma
kann ich mit Nibbler nicht analysieren, da Lc0 gar nicht
startet.
Mfg
Kurt

fhub 24.06.2019 13:45

AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau (Der LC0 Thread)
 
Zitieren:

Zitat von applechess (Beitrag 82156)
Das Komma hinter "cudnn" ist wegzulassen. Mit Komma
kann ich mit Nibbler nicht analysieren, da Lc0 gar nicht
startet.

Na ja, dieses Komma ist ja nur da, weil eigentlich in der darauffolgenden Zeile normalerweise noch eine weitere Option steht - siehe 'config.example.json':
Code:

        "options": {
                "Backend": "cudnn",
                "WeightsFile": "C:\\Users\\Owner\\Documents\\Misc\\Lc0 Networks\\42482"
        },

Aber Hauptsache es klappt jetzt auch bei euch ... :)

Übrigens: falls die lc0.exe im Nibbler-Verzeichnis liegt, braucht man nicht den kompletten Pfad (incl. Laufwerk und Verzeichnis) anzugeben - meine ersten paar Zeilen sehen einfach so aus:
Code:

        "path": "lc0.exe",
       
        "options": {
                "Backend": "opencl",
                "WeightsFile": "weights.gz"
        },

Grüße,
Franz


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:47 Uhr.

Powered by vBulletin (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
©Schachcomputer.info