Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Sehr schnelle Version von LcZero: cuDNN
- By Jens Hartmann Date 2018-05-03 21:06
Wer aus LC0 noch mehr herausholen möchte, sehe sich die Anleitung/Diskussion unter nachstehendem Link an. LC0 wurde auf meiner 1070Ti dadurch um ein Mehrfaches schneller. Den genauen Faktor muss ich erst noch ermitteln, aber es dürfte sich SEHR auszahlen, die etwas mühsame Installation (nur einmalig erforderlich) durchzuführen. Beachten: die weights.txt muss entpackt werden! Also nach dem Herunterladen in .gz umbennennen und mit geeignetem Programm entpacken. Viel Spaß beim Testen!

https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/lczero/JplcAeITux0
- - By Lothar Jung Date 2018-05-03 21:28
Unter CUDA 9.0 soll Leela 4 x schneller laufen.

https://groups.google.com/forum/m/?utm_medium=email&utm_source=footer#!topic/lczero/JplcAeITux0

Das würde auf meiner GTX 1080 eine spürbare Beschleunigung bedeuten.

Leela soll auch zwei (gleiche) Grafikkarten unter SMI unterstützen.

In der aktuellen Version 0.8 können bis zu 6-Steine Tablebase eingebunden werden.

Gute Voraussetzungen für den Wettbewerb mit Engines über 3.000 Elo.

Lothar
Parent - By Peter Martan Date 2018-05-03 21:44
Kann sich hier noch jemand aus eigener praktischer Erfahrung an die Zeiten erinnern, als die Programme der Reihe nach von 8 auf 16, dann 32 und schließlich 64bit umgeschrieben wurden?
Hiarcs ist einer der wenigen, der immer noch nicht diesen letzten Schritt gemacht hat, und der spielt immer noch ungefähr dort mit, wo Leela jetzt mit der Super-Über-Drüber-Hardware auf dem Graphikkartensektor hin will.
Ich kann mir nicht helfen, irgendwie hab ich gerade ein Hardware-Software- Deja Vu.

Der Unterschied ist der, dass die Bandbreite dessen, was man in GPU- Hardware- Cluster heute schon investieren kann, sehr viel größer ist, so gesehen, gehen wir theoretisch noch viel goldeneren Zeiten entgegen als denen, die damals die goldenen waren.
Blöd ist nur, dass Computerschach auch so schon praktisch remistod ist, vorausgesetzt, man ignoriert nicht immer hartnäckiger die schon gespeicherte Eröffnungs- (Fernschach-) Theorie.
Parent - - By Werner Schüle Date 2018-05-03 22:59
Frage an die Spezialisten: läuft LCZero auf einer Grafikkarte mit 6GB schneller als mit 3GB (z.B. mit der GTX 1060)?
Geht die Beschleunigung cuDNN auch mit dieser Karte?
Parent - By Lothar Jung Date 2018-05-04 11:50 Edited 2018-05-04 11:59
Man sollte mindestens eine GPU mit 4GB nutzen.
Mit der Größe des Speichers 4, 6, 8, 11 werden die NVidia-Grafikkarten GTX 1060, 1070,1080 und 1080ti angeboten.
Mit der Versionsnummer und Speicher wächst auch der OpenCL und der CUDA-Durchsatz.
Die Preise reichen von 300 bis 1000 Euro. Die Preise der schnellen Grafikkarten sind wegen des Bitcoinmining sehr hoch.
Die SLI-Fähigkeit hängt von der Grafikkarte (z. B. 1060, 1080)
und vom Motherboard ab (2 PCI-3 Slots).

Alle NVIDIA-Grafikkarten unterstützen CUDA.
Wenn man eine 1060 GPU besitzt, macht eine zweite Sinn, wenn das Motherboard SLI- fähig ist und man den Gewindigkeitszuwachs in Spielen, unter OpenCL und in CUDA wünscht und braucht.

Lothar
Parent - By Jens Hartmann Date 2018-05-04 11:15
Vor der kürzlich erfolgten Vergrößerung der Netzwerk-Datei hatte ich beim Befehl "go infinite" nach ca. einer Minute etwa 2500 nps.
Nach der Vergrößerung nur mehr 1200-1300  nps.

Die cuDNN Version erreicht mit der aktuellen Netzwerk-Datei nach wenigen Sekunden bereits über 7000 nps, nach etwa einer Minute dann über 8000 nps. Das ist eine Geschwindigkeitssteigerung um den Faktor 6-7. Das macht bei herkömmlichen Engines grob geschätzt 150-200 ELO aus. Wie viel es bei LC0 bringt, wird man sehen.

Jens
Parent - - By Stefan Pohl Date 2018-05-09 08:12
Tja, nach einigen Mühen, die 3 nötigen .dll-Dateien von Nvidia zu bekommen, hab ich die Cuda-Version von Leela zwar komplett, aber das nützt momentan leider nicht viel. Sie läuft zwar in der LittleBlitzerGUI (und auch das Consolenkommando go infinite funktioniert klaglos (die Cuda-Leela läuft ca. drei mal schneller als die "normale" Version)), aber nicht in der FritzGUI - ab und zu spielt sie mal einen Zug, mehr aber auch nicht. Davon abgesehen zeigt sie auch keine Infos während des Rechenbetriebes. Beim Versuch, sie in in ein Engine-Turnier einzubinden, stürzt sie entweder ab oder zieht nicht. Nicht mal das Entladen der Engine funktioniert, man muß die FritzGUI per taskmanager abschießen, um sie zu beenden. So ist das Teil leider unbrauchbar für mich.
Parent - - By Stefan Pohl Date 2018-05-09 08:32 Edited 2018-05-09 08:35
Stefan Pohl schrieb:

Tja, nach einigen Mühen, die 3 nötigen .dll-Dateien von Nvidia zu bekommen, hab ich die Cuda-Version von Leela zwar komplett, aber das nützt momentan leider nicht viel. Sie läuft zwar in der LittleBlitzerGUI (und auch das Consolenkommando go infinite funktioniert klaglos (die Cuda-Leela läuft ca. drei mal schneller als die "normale" Version)), aber nicht in der FritzGUI - ab und zu spielt sie mal einen Zug, mehr aber auch nicht. Davon abgesehen zeigt sie auch keine Infos während des Rechenbetriebes. Beim Versuch, sie in in ein Engine-Turnier einzubinden, stürzt sie entweder ab oder zieht nicht. Nicht mal das Entladen der Engine funktioniert, man muß die FritzGUI per taskmanager abschießen, um sie zu beenden. So ist das Teil leider unbrauchbar für mich.


Ich hab mich an diese Anleitung aus dem gitHub gehalten:

Here you can download .exe for lc0-cudnn version: https://crem.xyz/lc0/

However you will still need to install CUDA v9.0 to get cublas64_90.dll and cudart64_90.dll, and of course you will need to get cudnn64_7.dll from the cuDNN library.

You can also get the latest version of CUDA (which is v9.1 with the 3 patches installed) and get cublas64_91.dll and cudart64_91.dll from there and you can rename them to cublas64_90.dll and cudart64_90.dll respectively.

    Get .exe for the cuDNN version from: https://crem.xyz/lc0/

    Install CUDA v9.0 from https://developer.nvidia.com/cuda-90-download-archive (you need an account) and get cublas64_90.dll and cudart64_90.dll from the bin directory of CUDA v9.0 and copy it to the same directory as .exe
    (Alternatively if you don't want to install CUDA, you can just unzip the installer or look in the folder where it unpacks itself for the .dlls)

    Get cuDNN from https://developer.nvidia.com/rdp/cudnn-download (you also need an account for this) and get cudnn64_7.dll from the bin directory of the zip and extract it to the same directory where .exe is.

    Download the latest network from http://lczero.org/networks (it will autodetect it in any form either as weights.txt or however it is named) and put it in same folder as .exe

    Now you can run the .exe and if you want to use it in a chess GUI and your preferred chess GUI requires the --uci argument, use uci as an argument instead (no quotes, no dash or double dash).

Es geht leider in der FritzGUI (13 und 16) weder mit dem uci-argument (s.o.) (per polyglot- oder inBetween-Adapter) in der FritzGUI, noch ohne (per direkt-Einbindung von Leela als uci-Engine)...(ich habe natürlich daran gedacht, das weights.txt file zu entpacken. Mache ich immer)
Gut ist aber dieser Tipp: (Alternatively if you don't want to install CUDA, you can just unzip the installer or look in the folder where it unpacks itself for the .dlls) Denn das erspart die Cuda-Installation! Man entpackt das Installer file (welches eine .exe-Datei ist) nach dem Herunterladen (über ein 1 GB (!)) einfach mit dem 7z-Packer und sucht dann in dem Ordner, den man erhält, per Strg+F im Windows-Explorer nach den 2 .dll-Dateien, die dort zu finden sind (cublas64_90.dll und cudart64_90.dll). Ich habe das mit der neueren 9.1-Version gemacht und die Files renamed, wie empfohlen. Das dritte .dll-file (cudnn64_7.dll) kann man sowieso ohne irgendeine Installation bekommen (s.o.)
Einzig um die Registrierung bei NVidia kommt man leider nicht herum, sonst kann man nix downloaden.
Parent - - By Guenter Stertenbrink Date 2018-05-09 10:46 Edited 2018-05-09 11:04
scheint zu klappen in Arena

============================================

Nvidia Titan V (~7.8k nps)
quad core Intel i5 7400T (~1700k-2700k nps),

id253 cudnn

14.5/30  , 3265,3385,3561

35W vs. 250W : 142 Elo correction  --> 3260 CCRL-Elo fuer id253

https://groups.google.com/forum/#!topic/lczero/YFMOPQ-J-q4

================================================================

zu cuDNN  siehe auch diesen thread :

https://groups.google.com/forum/#!topic/lczero/JplcAeITux0
Parent - - By Stefan Pohl Date 2018-05-09 11:08
Ich mach jetzt auf meinem Reserve/Experimente Rechner mal einen kleinen Testrun von Leela v0.8 (GPU) gegen Leela Cuda mit 6'+2.5“ in der LittleBlitzerGUI. Beide mit demselben Network 263 . Mal sehen, wieviel Zugewinn die Cuda-Version in Elo so bringt. Auf einer stinknormalen mobilen Grafikkarte (Nvidia Cuda Gforce GTX 950M (4GB)).
Parent - - By Stefan Pohl Date 2018-05-10 19:51 Edited 2018-05-10 19:56
Update: dieser Testrun mit Leela-Cuda vom 8.5. ging voll in den Eimer: timelosses und zweimal sogar illegal moves...
Inzwischen ist aber klar, daß diese Version total verbuggt war. Es gibt mittlerweile zwei neue Versionen vom 9.5. Mit der neueren dieser beiden Versionen sieht es etwas besser aus: Stellt man pondern aus und schaltet den polylglot-Adapter dazwischen, scheint diese Leela-Cuda sogar in einem FritzGUI-Engineturnier zu laufen. Mit pondern oder ohne polyglot-Adapter geht aber nachwievor in der FritzGUI nix. Aber damit kann man ja leben.
Leider zeigt Leela-Cuda nachwievor während des Rechnens gar keine Infos. Nur, wenn sie zieht, sieht man Hauptvariante und Stellungsbewertung. Auch nicht gerade optimal, aber auch damit kann man erstmal leben. Ich mache jetzt mal ein kleines Testturnier, und schaue, ob es absturzfrei läuft und alle Verlustpartien auch mit Matt enden und nicht mit Crashs oder Zeitverlusten. Falls das klappen sollte, probiere ich dann mal, Leela-Cuda auch mal in einem 7-tägigen long thinking-time Eloperformance Testrun durchlaufen zu lassen, wenn der jetzt gerade laufende Testrun durch ist (Sonntag oder Montag). Mit dem gleichen Network-file, sodaß man dann schön vergleichen kann, ob und wieviel besser Leela-Cuda wirklich spielt.
Parent - By Tom Paul Date 2018-05-10 19:56
Die meisten Leute scheinen Aquarium 2018 zu benutzen, weil da alles funktioniert.
Parent - - By Guenter Stertenbrink Date 2018-05-11 01:27
kann man es nicht einfach an den nps ablesen ?
Parent - - By Stefan Pohl Date 2018-05-11 15:15
Guenter Stertenbrink schrieb:

kann man es nicht einfach an den nps ablesen ?


Nein. Im Konsolenmodus mit “go infinite“ ist die Leela-Cuda auf meinen Notebooks ca. 4x schneller, als die normale GPU-Leela. Das ist natürlich toll. Allerdings legten einige Tests anderer nahe, daß zumindest ältere Leela-Cuda-Versionen kaum besser spielten, trotz des deutlichen Geschwindigkeitsvorteils. Daher mache ich lieber mit der aktuellen Version einen 7-Tages Testrun mit 300 Partien. Mit demselben Network, daß gerade im Testrun mit der v0.8-GPU Leela bei mir läuft. Dann weiß ich mehr, weil ich dann auch einen guten Basis-Vergleichswert habe.
Parent - - By Stefan Pohl Date 2018-05-14 11:18 Edited 2018-05-14 11:23 Upvotes 1
Stefan Pohl schrieb:

Guenter Stertenbrink schrieb:

kann man es nicht einfach an den nps ablesen ?


Nein. Im Konsolenmodus mit “go infinite“ ist die Leela-Cuda auf meinen Notebooks ca. 4x schneller, als die normale GPU-Leela. Das ist natürlich toll. Allerdings legten einige Tests anderer nahe, daß zumindest ältere Leela-Cuda-Versionen kaum besser spielten, trotz des deutlichen Geschwindigkeitsvorteils. Daher mache ich lieber mit der aktuellen Version einen 7-Tages Testrun mit 300 Partien. Mit demselben Network, daß gerade im Testrun mit der v0.8-GPU Leela bei mir läuft. Dann weiß ich mehr, weil ich dann auch einen guten Basis-Vergleichswert habe.


Der Testrun läuft jetzt seit knapp 24 Stunden. Gute Nachricht vorweg: Leela Cuda (180512) läuft bisher stabil in der FritzGUI (unter zuhilfenahme des polyglot-Adapters). Hoffentlich bleibt das so.
Und bisher läuft es fantastisch. Nach knapp 50 Partien, was noch sehr, sehr wenig ist, sieht es nach einer sehr deutlichen Spielstärkesteigerung aus - gegenüber der GPU-Leela und zwar auch deutlich über dem, was man aufgrund der höheren Rechengeschwindigkeit erwarten würde/dürfte. Konkrete Elo-Schätzungen gebe ich prinzipiell nach so wenigen Partien nicht ab. Aber man darf auf das Ergebnis in 6 Tagen gespannt sein...
Ich kann aber jetzt schon jedem raten, der eine Cuda-fähige NVIDIA-Karte in seinem Rechner hat: Macht euch die Mühe, die CUDA-Leela zum Laufen zu bringen, es lohnt sich! Auf meiner Website gibt es ein step-by-step manual, damit sollte es zu schaffen sein. Ich kopiere das manual hier noch mal rein:

How to run Leela CUDA (should be around 4x faster, than Leela GPU(!)) in Fritz/Shredder GUI:

Important: Leela CUDA needs 3 .dll-files from the NVIDIA-website, otherwise it can not run!
And - of course - you need a NVIDIA CUDA GPU in your PC...

Leela needs cublas64_90.dll and cudart64_90.dll and cudnn64_7.dll.
You can also get the latest version of CUDA (which is v9.1 with the 3 patches installed) and get cublas64_91.dll
and cudart64_91.dll from there and you can rename them to cublas64_90.dll and cudart64_90.dll respectively.
Thats, what I did.

1) Get .exe for the cuDNN version from: https://crem.xyz/lc0/ and unpack it and put it in your Leela CUDA folder.
2) Install CUDA v9.0 from https://developer.nvidia.com/cuda-90-download-archive (you need an account) and get
cublas64_90.dll and cudart64_90.dll from the bin directory of CUDA v9.0 and copy it to your Leela CUDA-folder.
(Alternatively if you don't want to install CUDA, you can just unpack the installer and search in the unpacked
folder and files for the .dlls with <Strg>+F in the Windows-Explorer, that was, what I did). Put the 2 files in
your Leela CUDA-folder.
3) Get cuDNN from https://developer.nvidia.com/rdp/cudnn-download (you also need an account for this) and get
cudnn64_7.dll from the bin directory of the zip and extract it and put it in your Leela CUDA-folder.
4) Download the latest network from http://lczero.org/networks and unpack it (Leela CUDA will autodetect it in
any form either as weights.txt or however it is named) and put it in your Leela CUDA-folder.
5) Download the polyglot-adapter here: http://hgm.nubati.net/polyglot.exe
Create a textfile with the name polyglot.ini and copy the following lines in it:

[PolyGlot]
EngineCommand=lc0-win-cuda90-cudnn712.exe
EngineDir=.
Log=false
LogFile=polyglot.log
ShowTbHits=false
Book=false
[Engine]
Hash=1024

6) copy the polylgot.exe and your polylgot.ini file in your Leela CUDA-folder.
7) Then use the file polylgot.exe as engine-file in the FritzGUI engine-creation process, NOT
lc0-win-cuda90-cudnn712.exe. And switch off pondering always. Otherwise Leela CUDA will crash immediately!!!
And mention, that (at the moment) Leela CUDA does not show any information, while it is thinking in the
FritzGUI. But, when it moves, you will see an evaluation and a main-move-line.
Parent - - By guest171218 Date 2018-05-14 13:02
Zitat:
Und bisher läuft es fantastisch. Nach knapp 50 Partien, was noch sehr, sehr wenig ist, sieht es nach einer sehr deutlichen Spielstärkesteigerung aus - gegenüber der GPU-Leela und zwar auch deutlich über dem, was man aufgrund der höheren Rechengeschwindigkeit erwarten würde/dürfte.


Hallo,

mir wurde erklärt daß die mcts deutlich mehr von
einer geschwindigkeitssteigerungen profitiert als
es die herkömmliche suche von schachprogrammen tut.
ob da was dran ist?

Gruß MiKa.
Parent - - By Stefan Pohl Date 2018-05-14 15:07 Edited 2018-05-14 15:17
Tja, das könnte schon so sein. Wenn man meine 2 letzten Testruns anschaut:

lczero v0.8 (GPU) N 251 (size: 15x192)(date: 180505): 320 (+164,= 73,- 83)
62.7 % (opponent-Elo: 2524) Elo-performance: 2614

lczero v0.7 (GPU) N 214 (size: 10x128)(date: 180429): 300 (+157,= 85,- 58)
66.5 % (opponent-Elo: 2524) Elo-performance: 2643

http://www.sp-cc.de/long-thinkingtime.htm

N251 ist eines der neueren, komplexeren Netzwerke, welches als unschönen Nebeneffekt Leela um fast 50% langsamer in der MCTS macht. Und wir sehen ca. -30 Elo Regression, obwohl das Network von N214 zu N251 stärker geworden ist, was eine noch stärkere Regression bei identisch starken Networks vermuten ließe. Das scheint diese These zu untermauern.
Allerdings muß ich nochmals ganz deutlich betonen, daß die CUDA-Version von Leela wirklich völlig anders zu rechnen scheint, als die GPU-Version, welche man einfach "nur" um Faktor 4 beschleunigt hat. Die angezeigten Suchtiefen der CUDA-Leela sind manchmal extrem hoch (über 30 im Mittelspiel nach 20-30 Sekunden, da käme die GPU-Leela auf meiner Hardware erst nach Stunden hin) und manchmal viel flacher sind (auch nur 13 oder 14 bei vollem Brett und 30 Sekunden Rechenzeit kann man beobachten, da ist die GPU-Leela nach 3-5 Sekunden schon tiefer).
Und ich muß auch nochmals betonen, daß Leela mit einer "normalen" Engine nur die UCI-Schnittstelle gemeinsam hat. Insofern kann man alles, was man über Engines im allgemeinen so zu wissen glaubt, nicht auf Leela übertragen. Leela ist absolutes Computerschach-Neuland. Und zwar in jeder Beziehung. Das muß man sich immer vor Augen führen. Da helfen nur drei Dinge: Testen, testen, testen... Alles andere ist letzlich Spekulatius.
Parent - By Stefan Pohl Date 2018-05-16 07:28
Tja, inzwischen nähert sich der Testrun der Cuda-Leela der Halbzeit und mittlerweile ist der Erfolgsscore erheblich gefallen. Es gibt zwar immer noch ein ordentliches Plus zum ansonst identischen Testrun der normalen GPU-Leela, aber nur noch in einem Rahmen, den man durch den Geschwindigkeirsvorteil auch erwarten konnte (um die +40 Elo)
Sonntag wissen wir es dann genau(er).
Up Topic Hauptforen / CSS-Forum / Sehr schnelle Version von LcZero: cuDNN

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill