Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Ceres neue Leela Engine auf C#-Grundlage
- - By Lothar Jung Date 2020-12-31 17:13 Edited 2020-12-31 17:32
Heute hat auf Discord eine neue Engine für Lc0-Netze für Aufregung gesorgt: Ceres.

Hier die Einzelheiten auf github: https://github.com/dje-dev/Ceres

Die neue Engine ist schneller als LC0 26.3 und schneidet in Benchmarks auf unterschiedlich großen Lc0-Netzen deutlich besser ab.

Hier ein Test:

```
Match of LC0 vs. Ceres (a new MCTS engine leveraging the LC0 backend)
LC0 version: lc0-v0.26.3, backend=cuda-fp16
LC0 options: 703810 with nncache=5000000, deumux backend (2 GPUs)
Ceres version: 0.8
Ceres options: default (also with 703810)
Hardware: dual Intel 6142 CPU with 2 A100 GPU
Time control: 120s+0.5s
Book: TCEC19
Tablebases: Syzygy 5+6 man
Adjudication: tablebases or 4 consecutive play both 350cp
Software: Ceres integrated tournament manager
Comment: These first published results for Ceres require independent community verification.
Comment: The realized NPS ratio of Ceres vs LC0 was 2.3 in this test.
Comment: Ceres strength is massively exaggerated in this unrealistic combination of small nets and big hardware.
Comment: Ceres will be released under GPL3 on Github on Dec 31, 2020 (today).

   # PLAYER    :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 Ceres1    :     0.0   ----    67.5     102    66     100   33   69    0    68
   2 LC0_0     :  -128.6   38.4    34.5     102    34     ---    0   69   33    68

White advantage = 107.97 +/- 20.04
```

Besonders die Skalierung auf starker Hardware (A100) ist beeindruckend:

https://github.com/dje-dev/Ceres/blob/main/PerfScaling.png

Hier ein Benchmark auf 1 GPU (vgl. RTX 3090):

https://github.com/dje-dev/Ceres/blob/main/PerfTime1GPU.png

Ich hoffe bei wenigstens Einigen Interesse geweckt zu haben.

Lothar
Parent - - By Hauke Lutz Date 2020-12-31 18:09
Hallo Lothar,

ein schnelles LC0 klingt echt gut.
Gibt es schon einen Download-Link?

Gruß
Hauke
Parent - - By Lothar Jung Date 2020-12-31 18:37 Upvotes 1
Hallo Hauke,

noch nicht, aber eine Lc0.dll.

Es wird alles noch heiß diskutiert auf Discord Lc0 Test-discuss.

Lc0 wurde mit C++ und Python entwickelt.
C# hat eine eigene NN-Entwicklungsumgebung.

Noch fortschrittlicher wäre Julia.

2021 wird wohl für Leela spannend, besonders bei einer verbesserten und differenzierten Suche.

Lothar
Parent - By Lothar Jung Date 2021-01-01 09:24 Edited 2021-01-01 09:30
Hier ein aktueller Test auf Discord:

SSS but still
30b net 66938
1600 npm```
# PLAYER   :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
1 ceres    :           0   ----    60.0     100  60.0   22   76    2  76.0     100
2 Lc0-v26.3:     -72     32    40.0     100  40.0    2   76   22  76.0     ---```

Hier läuft gerade Ceres/Lc0 26.3 auf Twitch:
Testing Ceres v Lc0 (Both 66740)
<https://www.twitch.tv/navratil25>

Lothar
Parent - - By Lothar Jung Date 2021-01-01 12:32 Edited 2021-01-01 12:38
In diesem Blog sind die Erweiterungen bei der Zugauswahl und Suche von Ceres aufgeführt:

https://www.themissingdocs.net/?p=874

Lothar
Parent - - By Lothar Jung Date 2021-01-02 09:10
Hier eine Anleitung zur Generierung von Ceres:

A very short summary of bullet-points of the quickest way to get going with ceres on  a win 10 box (have only tried on Intel cpu)

• Download Lc0 26.3

• Download .Net 5.0 & install
https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-desktop-5.0.1-windows-x64-installer

• download Cuda 11.2 from
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64 and install.. ensure path and CUDA_PATH point to the 11.2 directory.

• get the boxed version of ceres and put it in the 26.3 lc0 directory
https://www.chadhosting.xyz/programs/Ceres_boxed.exe

• get the ceres.json file place in the same directory 26.3 directory
https://cdn.discordapp.com/attachments/427066771627966466/794298546199068692/Ceres.json

• download lc0.dll (non mkl version)
https://cdn.discordapp.com/attachments/427066771627966466/794291040983056414/lc0.dll

• create a sub-directory to where you placed the ceres_boxed.exe named /runtimes/win-x64/native place the lc0.dll in the "native" directory

• Start ceres_boxed.exe and run go nodes 10 uci command to check.

Lothar
Parent - By Jörg Oster Date 2021-01-02 09:50 Upvotes 2
So einfach ist das? 

Spaß beiseite, das Projekt befindet sich ja noch in einer sehr frühen Entwicklungsphase.
Von daher würde ich einfach mal abwarten, da kommt in den nächsten Wochen bestimmt auch noch was anwenderfreundlicheres.
Parent - - By Peter Martan Date 2021-01-02 09:53
Danke, Lothar, ich schließe mich Jörgs Hoffnung an.

Was ich auch immer noch nicht verstehe, warum das "über LC0" läuft und dann viel schneller ist, aber wie gesagt, mal abwarten.
Parent - - By Lothar Jung Date 2021-01-02 11:02 Upvotes 1
Hallo Jörg und Peter,

das sehe ich auch so, ich wollte nur informieren.

Ein Compile von Ceres ist vom Entwickler noch nicht freigegeben.
Die „Beta-Version“ wird auf Discord aber schon fleißig getestet.

Wie ich das sehe gibt es zwei Linien:

1. Verbesserung von Ceres durch die Entwickler von Lc0.

2. Einbeziehung von Ideen und Algorithmen von Ceres in die kommende Lc0-Version.

Lothar
Parent - - By Hauke Lutz Date 2021-01-02 11:35
Hallo Lothar,

danke für die Infos.
Ich habe es gemacht, aber ich kriege es noch nicht hin ein bestimmtes WeightsFile zu laden.
Bisschen gucken werde ich noch, aber ich denke ich werde ebenfalls warten müssen bis etwas ausgereifteres erscheint.

Gruß
Hauke
Parent - - By Michael Hoeppenstein Date 2021-01-02 12:24
Die WeightsFile musst du in die .json Datei eintragen (Texteditor).
z.B. so...
Code:
"DefaultNetworkSpecString": "LC0:66740",
Parent - - By Hauke Lutz Date 2021-01-02 13:15
Danke, mit "Lc0:" klappt es natürlich
Parent - - By Lothar Jung Date 2021-01-03 13:11
Hallo Hauke,

jetzt läufst.
Wie kann man die Pfadangaben für die Engine (Path/weights/LC0:) über eine Datei einpflegen?

Lothar
Parent - - By Hauke Lutz Date 2021-01-03 14:19
Hallo Lothar,

genau, vergleich Michaels Beispiel die "66740" in das gewünschte File ändern.

Gruß
Hauke

Michael Hoeppenstein schrieb:

Die WeightsFile musst du in die .json Datei eintragen (Texteditor).
z.B. so...
Code:
"DefaultNetworkSpecString": "LC0:66740",

Parent - - By Lothar Jung Date 2021-01-03 17:46
Hallo Hauke,

hab ich gemacht und klappt.

Wenn ich "go nodes 10 ", kommen blitzschnell Meldungen und das Programm wird beendet.

Ich habe 3 GPUs. Was soll ich in bei GPU eintragen?

Lothar
Parent - - By Hauke Lutz Date 2021-01-03 18:19
Hallo Lothar,

das kann ich leider nicht sagen, weil ich nur eine GPU habe.
Bisher sehe habe ich noch keine Einstellung mit mehrere GPUs gesehen.

Hauke
Parent - - By Lothar Jung Date 2021-01-03 21:18
Hallo Hauke,

hier die Lösung:

Which syntax is correct for two GPU's

"gpu:0,1", or "GPU:0,1"

Lothar
Parent - - By Hauke Lutz Date 2021-01-03 21:39 Upvotes 1
Hallo Lothar,

danke für die Rückmeldung.
Das ist gut zu wissen, wenn die Preise fallen denke ich über ein Upgrade nach.

Viel Spaß mit den GPUs!

Hauke
Parent - - By Lothar Jung Date 2021-01-04 13:14 Upvotes 1
Hallo Hauke,

hier ein neuer Test auf Discord:

Lc0 - Stockfish +2=28-5
-30 elo(continues)
Ceres - Stockfish  +10=87-3
+24 elo
Ceres looks much better against stockfish under the same conditions on my pc. (3070-2700x). Leela makes unnecessary simple mistakes.

If we get a match between Leela and Ceres, the result is very close.  So I think it's unnecessary to play with each other, there should be more tests against Stockfish.  Whoever is better against Stockfish must either continue with it or be integrated into leela.  Right now Ceres is definitely better.  If Ceres can beat the stockfish in blitz games, he can also defeat it under TCEC conditions.

Lothar
Parent - - By Volker Göbel Date 2021-01-04 14:01
Hallo, bisher hab ich auf dem Server noch keinen gesehen, mit Ceres.
Und bei mir will er auch nicht laufen.
Scheint nicht so einfach zu sein, sonst wären sicher schon welche im Maschinenraum unterwegs mit Ceres.
Parent - - By Lothar Jung Date 2021-01-04 15:23
Hallo Volker,

ja, das ist so.
Bei mir läuft es auch nicht, obwohl die Engine startet.
Ich warte noch.
Ceres hat einen Testschub bei den Entwicklern ausgelöst.
Bei der Endrunde bei TCEC wird man entweder Ceres oder eine (stark) modifizierte und verbesserte Lc0 0.27 sehen.

Es tut sich viel Gutes bei Leela.

Lothar
Parent - - By Volker Göbel Date 2021-01-04 15:37 Upvotes 1
Hallo Lothar,

hört sich gut an!
Danke für die Info.

Volker
Parent - By Hauke Lutz Date 2021-01-04 23:46
Der Effekt von Ceres ist wirklich unglaublich.
Auch von mir vielen Dank für die neuen Infos.
Parent - By Lothar Jung Date 2021-01-05 13:50
Hallo Leela Liebhaber!

Hier ist ein Link auf ein Tool um den Suchbaum von Leela sichtbar zu machen:

https://github.com/jkormu/Leela-chess-Tree

Lothar
Parent - - By Lothar Jung Date 2021-01-02 12:57
Hallo Hauke, hallo Michael,

könntet ihr einen Link zum Download hier posten?

Lothar
Parent - - By Hauke Lutz Date 2021-01-02 13:17
Ich habe ausschließlich deine Links verwendet.
Parent - - By Damir Desevac Date 2021-01-02 19:10 Upvotes 1
Ceres.zip: https://www.swisstransfer.com/d/22e844cc-465a-4607-96f0-a7503fadb357

Die datei ist 130 MB gross. Das Link wird nach einen Monat entfernt worden
Parent - - By Thomas Lagershausen Date 2021-01-02 22:03
Danke, geht aber leider bei mir nicht.

Ich bekomme leider die Meldung das es keine Konfigurationsdatei gibt.

Habe als OS Windows7 64bit.

Schade.
Parent - By Lothar Jung Date 2021-01-02 22:15 Upvotes 1
Hallo Thomas,

ich bekomme es auch nicht zum laufen.
Ich glaube, man muss die Dateien in den Links herunterladen, damit es eingebunden wird.

Morgen ist auch noch ein Tag.

Lothar
Parent - - By Daniel Reist Date 2021-01-06 00:49 Edited 2021-01-06 01:42
Wichtig ist , dass ihr Cuda 11.2 habt und alle Dateien von LC0 26.3. im Ceres Ordner
und dazu noch eine spezielle LC0.dll

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board


Das ist meine erste Gewinnpartie von Ceres gegen Stockfisch.
Viel Spass damit.
Parent - - By Lothar Jung Date 2021-01-06 11:53
Hallo Daniel,

könntest Du mir bitte die Dateien des Ordnerinhalts posten?
Wo finde ich die spezielle Lc0.dll?
CUDA 11.2 habe ich installiert.

Vielen Dank

Lothar
Parent - By Rainer Maikowski Date 2021-01-06 12:28
...und wo wird eingetragen, dass sich Lc0 26.3 mit Ceres verbindet? Welches ist wo die Startengine?
R.Maikowski
Parent - - By Daniel Reist Date 2021-01-06 21:51 Edited 2021-01-06 21:54
Hallo Lothar

Hier die Links:
https://cdn.discordapp.com/attachments/427066771627966466/796093632066486302/lc0.dll

https://cdn.discordapp.com/attachments/427066771627966466/796466137172410408/Ceres.7z

https://cdn.discordapp.com/attachments/427066771627966466/796093635120594974/cudart64_110.dll

und hier wie die Jason datei aussieht:

mine looks like this and works
{
  "DirLC0Binaries": "C:\Users\Jason\Desktop\Leelenstein 15",
  "DirLC0Networks": "C:\Users\Jason\Desktop\Leelenstein 15",
  "DirEPD": ".",
  "DirPGN": ".",
  "DirCeresOutput": ".",
  "DirExternalEngines": ".",
  "DirTablebases": "C:\syzygy",
  "DefaultNetworkSpecString": "LC0:20x256SE-jj-9-75000000",
  "DefaultDeviceSpecString": "GPU:0",
  "URLLC0Networks": "http://training.lczero.org/networks",
  "LaunchMonitor": false,
  "LogInfo": false,
  "LogWarn": false
}

https://cdn.discordapp.com/attachments/427066771627966466/795495705149833226/cudart64_110.dll

Ich habe einen Ordner mit dem Namen: Ceres.
Dort hat es alle Files drin von den Links
Auch die Lc0 Exe und die Files von LC0 sind dort.
Auch das Netfile oder Weightfile.pb ist dort
Dazu gibt es einen Unterordner der heisst: ref
Und einen Unterordner: runtimes
Parent - By Lothar Jung Date 2021-01-06 22:00
Herzlichen Dank Daniel,

jetzt ist mir vieles klar!!

Gerade wurde bei Discord eine neue Version von Ceres gepostet:

Okay for those, that cannot use Ceres in a GUI, one bug causes that, Ceres Wants to take a lot of memory on the command go infinite and than runs out of memory, this binary has a temporary fix, but maybe worse for Engine vs Engine as it makes it starting slower, but atleast it works now

Lothar
Parent - - By Lothar Jung Date 2021-01-07 20:33
Hier ein neuer Test auf Discord mit guter Hardware (RTX 3080) und TC 60sec. + 1:

**Match:** Ceres.J94-100 v. Lc0.J94-100
**Lc0 version:** v0.26.3
**Lc0 options:** default
**Ceres version:** v0.8, packaged by Redshift
**Ceres options:** default
**Hardware:** i7-4770 & RTX 3080
**Time control:** 60+1
**Book:** TCEC19_NoomenSelect.pgn, sequential/reversed
**Tablebases:** 5 piece syzygy
**Software:** Cutechess
**Adjudication:** After move 30 draw 4 moves <10cp, resign 4 moves 400cp or via tablebases
**Comments:** Similar length games this time with TC as my previous test with fixed 2s/move
**Comments:** Higher draw rate but otherwise identical result
**Comments:** Ceres did seem to usually end up with 10-15s more unused time at the end of game compared to Lc0

```   # PLAYER           :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 ceres.J94-100    :       0     15    54.0     100  54.0      97   16   76    8  76.0
   2 lc0.J94-100      :     -30     15    46.0     100  46.0     ---    8   76   16  76.0

White advantage = 86.40 +/- 16.11
Draw rate (equal opponents) = 99.93 % +/- 0.63```

Gute Aussichten!

Lothar
Parent - - By Peter Martan Date 2021-01-09 07:30 Edited 2021-01-09 07:34
Lothar Jung schrieb:

Gute Aussichten!

Weniger gut bei Stefan Pohl:

https://www.sp-cc.de/nn-vs-sf-testing.htm

Zitat:
Latest update: 2020/01/08: Ceres 0.80 66680 net. Good news: Ceres played all 500 games without any problems (no timelosses, crashes). Bad news: Ceres is clearly weaker (Score: 65.0%) than Lc0 (Score: 70.9%) with the same huge 30x384 net. Next testrun: Ceres 0.80 with small J104.1-30 net


Aus den 100 Elo Plus, die auf CCC propagiert wurden, sind jetzt unter Stefans Bedingungen erstmal  minus 47 geworden, aber das Projekt steckt ja wohl auch noch etwas in den Kinderschuhen.
Parent - By Lothar Jung Date 2021-01-09 09:33 Edited 2021-01-09 09:35
Hallo Peter,

ja Ceres braucht noch Zeit und Arbeit, um sein Potential sicher auszuschöpfen.
Ceres wurde auf superschneller GPU-Hardware entwickelt und gegen Lc0 getestet.

Erklären kann ich den gravierenden Unterschied mit der Test-Hardware: 2060/3080 und dem TC 2sec/60sec.

Gleichwohl bleibt die Entwicklung von Ceres spannend.

Grüße

Lothar
Parent - - By Lothar Jung Date 2021-01-13 15:15
Hallo Peter,

Es wird eine neue Lc0-Version für das Sufi vorbereitet, die ein Feature von Ceres beinhaltet:

FYI regarding our submission to SuFi:
• Given that it's unlikely, that Lc0 in the current configuration would win SuFi (don't let DivP fool you), it's quite likely that we'll send pr1483 binary there.
• PR 1483 is a port of one of Ceres features (parallel node gathering), implemented by Tilps.
• It gives ~+40% nps increase, at the cost of worse nodes selected (5 Elo loss at fixed nodes).
• It's also quite a tricky asynchronous code, so hang/crash-causing bugs are not unlikely -- it was tested reasonably well but only on a few configuration -- prepare for a drama.

Lothar
Parent - - By Peter Martan Date 2021-01-13 15:25
Lothar Jung schrieb:

prepare for a drama.

Das klingt vielversprechend.

Danke für die Info.
Parent - By Lothar Jung Date 2021-01-13 20:47
Ja, auch das hier:

Another quick test PR1493 came out encouraging. This time played 204 games with a small network (703810) vs LC0263 with 30s+0.5s TC on single high end GPU: no crashes and +29 Elo (+-13). NPS improved by 35%.

Lothar
Parent - - By Lothar Jung Date 2021-01-14 08:34
Auch dieser aktuelle Test der kommenden Engine:

**SuFi Test of PR1483 v Master: v0.26.3 **
**lc0 Options**
Small network - J104.1-30
"Threads": 3,"MinibatchSize": 136,"Cpuct": 1.745,"NNCacheSize": 20000000, "maxCollisionEvents":917,"CPuctBase": 38739,"CPuctFactor": 3.894, "RootHasOwnCpuctParams": false,"Backend":" multiplexing","BackendOptions":" (backend=cuda-fp16,gpu=0),(backend=cuda-fp16,gpu=1)","TwoFoldDraws": true,"ShowHidden": true,"movesleftmaxeffect": 0.20,"movesleftthreshold": 0.0,"movesleftslope": 0.004,"movesleftquadraticfactor": 0.0,"movesleftscaledfactor": 1.0,"movesleftconstantfactor": 0.0, "StrictTiming": true,"MaxPrefetch": 32, "Temperature": 0.00,"TempVisitOffset": 0.00, "smartpruningfactor": 1.33, "MaxOutOfOrderEvalsFactor": 2.4,"FpuStrategy": "reduction","FpuValue": 0.330,
"Ponder": false,"PolicyTemperature": 1.359,"MaxCollisionVisits": 9999,"Moveoverhead": 20,
"RamLimitMb": 0,"SyzygyFastPlay": true,"SyzygyPath": "F:/syzygy"
**Hardware:**
Intel i9 10980Xe (3.5GHz) + RTX 3080 +2070
**Time control:** 60s/game+5s/move
**Speed:**
```Name                         Games     Depth       NPS           Nodes
-------------------------------------------------------------------------------------
Stockfish 110121         :      108     34        33265940   138700944
PR 1483 J104.1-30        :       54     18          179290     1943067
v0.26.3-cuda - Master    :       54     18          126253     1363539```
**Book:** Sufi Collection
**Tablebases:** Full 6-piece + TBS Adjudication
**Software:** Octagon GUI
**COMMENTS** PR1483 43% faster and plus 49 elo to Master

Lothar
Parent - - By Peter Martan Date 2021-01-14 09:56
Lothar Jung schrieb:

```Name                         Games     Depth       NPS           Nodes
-------------------------------------------------------------------------------------
Stockfish 110121         :      108     34        33265940   138700944
PR 1483 J104.1-30        :       54     18          179290     1943067
v0.26.3-cuda - Master    :       54     18          126253     1363539```
**Book:** Sufi Collection
**Tablebases:** Full 6-piece + TBS Adjudication
**Software:** Octagon GUI
**COMMENTS** PR1483 43% faster and plus 49 elo to Master

Was mir hier ein bisschen fehlt, ist das Ergebnis der 108 Games. Selbst wenn ich mir einen Master unter den Teilnehmern willkürlich aussuche, bleiben Fragen offen.
Parent - By Lothar Jung Date 2021-01-14 10:12
Der Master wird Lc0 0.027.

Die pgn-Datei ist unter Discord/Lc0/Test-results verfügbar.
Parent - - By Roland del Rio Date 2021-01-14 11:09 Upvotes 1
# PLAYER                   :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 Stockfish 110121         :     106     31    71.0     108  65.7     100   41   60    7  55.6
   2 PR 1483 J104.1-30        :       0     43    20.0      54  37.0      88    5   30   19  55.6
   3 v0.26.3-cuda - Master    :     -49     45    17.0      54  31.5     ---    2   30   22  55.6
Parent - By Jörg Oster Date 2021-01-14 11:31 Upvotes 2
Roland del Rio schrieb:

# PLAYER                   :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 Stockfish 110121         :     106     31    71.0     108  65.7     100   41   60    7  55.6
   2 PR 1483 J104.1-30        :       0     43    20.0      54  37.0      88    5   30   19  55.6
   3 v0.26.3-cuda - Master    :     -49     45    17.0      54  31.5     ---    2   30   22  55.6


# PLAYER                   :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 Stockfish 110121      :     106     31    71.0     108  65.7     100   41   60    7  55.6
   2 PR 1483 J104.1-30     :       0     43    20.0      54  37.0      88    5   30   19  55.6
   3 v0.26.3-cuda - Master :     -49     45    17.0      54  31.5     ---    2   30   22  55.6


Nicht gerade aussagekräftig, 20 vs 17 Punkte. 
Parent - - By Lothar Jung Date 2021-01-06 13:39 Edited 2021-01-06 13:44
Hier wurde eine neue Ceres Version gepostet:

here is my today build fetching all from master and than rebuilded in VS 2019

Lothar
Parent - - By Rainer Maikowski Date 2021-01-06 16:37 Upvotes 1
wo hier?
Parent - By Lothar Jung Date 2021-01-06 20:25
Hallo Rainer,

ich habe den Link nicht reinkopieren können.

Auf Discord Lc0 Test discuss heute um 3:00 morgens.

Lothar
Up Topic Hauptforen / CSS-Forum / Ceres neue Leela Engine auf C#-Grundlage

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill