Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Gegner für Menschen: Bad Gyal
- - By dkappe Date 2019-07-02 23:15
Also, das ist nichts für Leute die gerne Computer gegen einander spielen lassen. Hier ein lc0 Netz das die Imperfekte Spielweise von lichess Gegnern mit ein bisschen SF10 kombiniert.

Viel Vergnügen. https://github.com/dkappe/leela-chess-weights/wiki/Bad-Gyal
Parent - - By dkappe Date 2019-07-03 22:18
Habe jetzt eine 200k schritt version vom Netz herausgebracht. Werde auch eine 128x10 version veroeffentlichen.
Parent - - By dkappe Date 2019-07-05 16:45
Und auf der selben seite eine 128x10 version.
Parent - By dkappe Date 2019-07-08 07:52
Bad Gyal 3, 64x6. Hoffentlich Endspiel und andere krumme Zuege verbessert.

https://github.com/dkappe/leela-chess-weights/wiki/Bad-Gyal
- - By Werner Schüle Date 2019-07-08 10:21 Edited 2019-07-08 11:07
@DKappe
warum benötigt das Netzwerk 11258-112x9 SE so viel mehr Zeit um z. B. auf Tiefe 10 zu kommen (time 18804)
im Vergleich zu 32930-112x9-SE
GPU gtx1650, Startaufstellung
Und kannst du mir erklären, was INT8 Backend kann im Vergleich zu CUDA, FP16 für RTX Karten oder FP16 für GTX 16... Karten.
(ich habe zusammen mit Daniel sein Scorpio auf INT8 umgestellt und konnte auf meiner Karte die nps verdoppeln (gegenüber HALF)

Werner
Parent - By dkappe Date 2019-07-08 19:33
Werner Schüle schrieb:

@DKappe
warum benötigt das Netzwerk 11258-112x9 SE so viel mehr Zeit um z. B. auf Tiefe 10 zu kommen (time 18804)
im Vergleich zu 32930-112x9-SE
GPU gtx1650, Startaufstellung
Und kannst du mir erklären, was INT8 Backend kann im Vergleich zu CUDA, FP16 für RTX Karten oder FP16 für GTX 16... Karten.
(ich habe zusammen mit Daniel sein Scorpio auf INT8 umgestellt und konnte auf meiner Karte die nps verdoppeln (gegenüber HALF)

Werner

Die Tiefe hat mit “value” und “policy” zu tun. Die t10 Netze schauen meistens breiter als tiefer. Bei den t30 Netzen umgekehrt. Die Parameter waren beim trainieren etwas anders.

Leider kann ich zu deinen GPU fragen nichts beitragen.
Parent - - By Stefan Pohl Date 2019-07-08 20:03 Edited 2019-07-08 20:05
Werner Schüle schrieb:

Und kannst du mir erklären, was INT8 Backend kann im Vergleich zu CUDA, FP16 für RTX Karten oder FP16 für GTX 16... Karten.
(ich habe zusammen mit Daniel sein Scorpio auf INT8 umgestellt und konnte auf meiner Karte die nps verdoppeln (gegenüber HALF)


Es geht hier darum, wie (also mit welchem Variablen-Typ) die Matrizen-Multiplikationen durchgeführt werden, die zum "abarbeiten" der Neuralnetze erforderlich sind.

fp32 (alte GTX-Karten): Fließkomma 32bit

fp16 (RTX Karten): Fließkomma 16bit (ca. 3x schneller als fp32)

INT8: Integer 8 Byte (= 64bit) (geht mit lc0 bisher nicht): Dies ist die schnellste Lösung. Zwar ist hier die Variablen-Breite mit 64bit am höchsten (was prinzipiell immer am langsamsten ist), aber Integerberechnungen sind immer deutlich schneller als Fließkomma-Berechnungen. Allerdings muß man bei Integerberechnungen eine feste Nachkommastellenzahl vorab festlegen (eben "festkomma", statt Fließkomma), sofern man Nachkommastellen braucht. Letzteres ist aber bei Matrizenmultiplikationen für Neuralnetzverarbeitung unerläßlich. Das Handling ist auch komplizierter, weil bei Integeroperationen eigentlich nur ganze Zahlen vorgesehen sind und man spezielle Routinen braucht, die die Nachkommastellen quasi "simulieren", da es sie, wie gesagt, bei Integervariablen eigentlich gar nicht gibt. Aber da Integervariablen generell so viel schneller sind als Fließkommavariablen, lohnt der Aufwand und es bleibt ein Geschwindigkeitsplus übrig. Welches du ja wohl auch gemessen hast.

Hoffe, das war halbwegs verständlich...
Parent - By Werner Schüle Date 2019-07-08 20:27
Vielen Dank Stefan,
das beantwortet meine Fragen.
Werner
Parent - - By Tom Paul Date 2019-07-08 21:00 Edited 2019-07-08 21:05
Stefan Pohl schrieb:

Werner Schüle schrieb:

Und kannst du mir erklären, was INT8 Backend kann im Vergleich zu CUDA, FP16 für RTX Karten oder FP16 für GTX 16... Karten.
(ich habe zusammen mit Daniel sein Scorpio auf INT8 umgestellt und konnte auf meiner Karte die nps verdoppeln (gegenüber HALF)


INT8: Integer 8 Byte (= 64bit) (geht mit lc0 bisher nicht): Dies ist die schnellste Lösung. Zwar ist hier die Variablen-Breite mit 64bit am höchsten (was prinzipiell immer am langsamsten ist), aber Integerberechnungen sind immer deutlich schneller als Fließkomma-Berechnungen. Allerdings muß man bei Integerberechnungen eine feste Nachkommastellenzahl vorab festlegen (eben "festkomma", statt Fließkomma), sofern man Nachkommastellen braucht. Letzteres ist aber bei Matrizenmultiplikationen für Neuralnetzverarbeitung unerläßlich. Das Handling ist auch komplizierter, weil bei Integeroperationen eigentlich nur ganze Zahlen vorgesehen sind und man spezielle Routinen braucht, die die Nachkommastellen quasi "simulieren", da es sie, wie gesagt, bei Integervariablen eigentlich gar nicht gibt. Aber da Integervariablen generell so viel schneller sind als Fließkommavariablen, lohnt der Aufwand und es bleibt ein Geschwindigkeitsplus übrig. Welches du ja wohl auch gemessen hast.

Hoffe, das war halbwegs verständlich...


INT8 ist das Beste vom Besten.
Es muss nur noch sinnvoll umgesetzt werden bei LC0. Auch wenn sie vielleicht dort aktuell niemanden haben der das gut hinkriegt.

TCEC
4. ScorpioNN v2.9.0-n_maddex_INT8 hat als einziger 4 Remis aus 4 Partien gegen LCZero1pct v0.21.2-n42547 geschafft!

Wurde schon irgendwo beschrieben wie ihr Scorpio auf INT8 umgestellt habt?
Parent - By Werner Schüle Date 2019-07-08 21:32
Daniel hat Scorpio für FP16  (Einstellung HALF) und für INT8 programmiert. Er hat mir hier erklärt, wie die Engine umgestellt und kalibriert wird:
http://www.talkchess.com/forum3/viewtopic.php?f=6&t=71145
Hier ist auch beschrieben, wo man die einzelnen Komponenten runterladen kann und wie man die Engine zum Laufen bekommt und wie man sie einstellt.
Parent - - By dkappe Date 2019-07-08 21:49
Tom Paul schrieb:

TCEC
4. ScorpioNN v2.9.0-n_maddex_INT8 hat als einziger 4 Remis aus 4 Partien gegen LCZero1pct v0.21.2-n42547 geschafft!

Wurde schon irgendwo beschrieben wie ihr Scorpio auf INT8 umgestellt habt?


Übrigens ist das Netz Maddex der Höhepunkt meiner SL/RL Kunst. Ist vielleicht -70 elo von T30 entfernt. Nach meinem verstorbenen Freund Bill Maddex benannt der den Tal bei einem Turnier fast erwischt hat.
http://www.chessgames.com/perl/chessgame?gid=1140966
Parent - By Werner Schüle Date 2019-07-09 09:32
dkappe schrieb:

Tom Paul schrieb:

TCEC
4. ScorpioNN v2.9.0-n_maddex_INT8 hat als einziger 4 Remis aus 4 Partien gegen LCZero1pct v0.21.2-n42547 geschafft!

Wurde schon irgendwo beschrieben wie ihr Scorpio auf INT8 umgestellt habt?


Übrigens ist das Netz Maddex der Höhepunkt meiner SL/RL Kunst. Ist vielleicht -70 elo von T30 entfernt. Nach meinem verstorbenen Freund Bill Maddex benannt der den Tal bei einem Turnier fast erwischt hat.
<a class='ura' href='http://www.chessgames.com/perl/chessgame?gid=1140966'>http://www.chessgames.com/perl/chessgame?gid=1140966</a>

Hallo Dieter,
Ich würde es begrüßen, wenn Scorpio ein stärkeres Netz bekommen würde.
Viele Grüße
Werner
Parent - - By Guenter Stertenbrink Date 2019-07-08 21:45
ich haette gedacht, int8 sind 8bit=1byte und nicht 8 byte ?!

es gibt ja auch int16,int32
Parent - By Stefan Pohl Date 2019-07-09 05:33
Guenter Stertenbrink schrieb:

ich haette gedacht, int8 sind 8bit=1byte und nicht 8 byte ?!

es gibt ja auch int16,int32


Kommt drauf an. Das ist etwas doppeldeutig. In normalen Compilersprachen wie C ist es schon so, wie du sagst. Es gibt aber auch andere Definitionen:
“By default, INT is an alias for INT8, which creates 64-bit signed integers...in such cases, you may find that your backend code can handle 64-bit signed integers“
Bei Backend ist also 64bit gemeint, was auch einleuchtet, denn mit 8bit kann man ja nur Zahlen von 0 bis 255 abbilden. Wie sollte man damit eine Matrizenmultiplikation durchführen, noch dazu, wenn man “simulierte“ Nachkommastellen braucht?!?
Up Topic Hauptforen / CSS-Forum / Gegner für Menschen: Bad Gyal

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill