forked from LeelaChessZero/lc0
-
Notifications
You must be signed in to change notification settings - Fork 1
/
changelog.txt
224 lines (172 loc) · 8.13 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
v0.17.0 (2018-08-27)
~~~~~~~
No changes from rc2 except the version.
v0.17.0-rc2 (2018-08-21)
~~~~~~~~~~~
* Fixed a bug, that rule50 value was located in wrong place in a training data.
* OpenCL uses much less VRAM now.
* Default OpenCL batch size is 16 now (was 1).
* Default time management related configuration was tweaked:
--futile-move-aversion is 1.33 now (was 1.47)
--slowmover is 2.4 now (was 2.6)
v0.17.0-rc1 (2018-08-19)
~~~~~~~~~~~
New visible features:
* Implemented ponder support.
* Tablebases are supported now (only WDL probe for now).
Command line parameter is
--syzygy-paths=/path/to/syzygy/
* Old smart pruning flag is gone. Instead there is
--futile-search-aversion flag.
--futile-search-aversion=0 is equivalent to old --no-smart-pruning.
--futile-search-aversion=1 is equivalent to old --smart-pruning.
Now default is 1.47, which means that engine will sometimes decide to
stop search earlier even when there is theoretical chance (but not very
probable) that best move decision could be changed if allowed to think more.
* Lc0 now supports configuration files. Options can be listed there instead of
command line flags / uci params.
Config should be named lc0.config and located in the same directory as lc0.
Should list one command line option per line, with '--' in the beginning
being optional, for example:
syzygy-paths=/path/to/syzygy/
* In uci info, "depth" is now average depth rather than full depth
(which was 4 all the time).
Also, depth values do not include reused tree, only nodes visited during the
current search session.
* --sticky-checkmates experimental flag (default off), supposed to find shorter
checkmate sequences.
* More features in backend "check".
Performance optimizations:
* Release windows executables are built with "whole program optimization".
* Added --out-of-order-eval flag (default is off).
Switching it on makes cached/terminal nodes higher priority, which increases
nps.
* OpenCL backend now supports batches (up to 5x speedup!)
* Performance optimizations for BLAS backend.
* Total visited policy (for FPU reduction) is now cached.
* Values of priors (P) are stored now as 16-bit float rather than 32-bit float,
that saves considerable amount of RAM.
Bugfixes:
* Fixed en passant detection bug which caused the position after pawn moving by
two squares not counted towards threefold repetition even if en passant was
not possible.
* Fixed the bug which caused --cache-history-length for values 2..7 work the
same as --cache-history-length=1.
This is fixed, but default is temporarily changed to --cache-history-length=1
during play. (For training games, it's 7)
Removed features:
* Backpropagation beta / backpropagation gamma parameters have been removed.
Other changes:
* Release lc0-windows-cuda.zip package now contains NVdia CUDA and cuDNN .dlls.
v0.16.0 (2018-07-20)
~~~~~~~
* Fully switched to official releases! No more https://crem.xyz/lc0/
* Fixed a bug when pv display and smart pruning didn't sometimes work properly
after tree reuse.
* Format of protobuf network files was changed.
* Autodiscovery of protobuf based network files works now.
lc0-win-20180715-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Support of new format of network files (needed for lc0 launch on main
training server)
* Fixed hang/poor performance in the beginning of search when there are many
threads. (Happened on linux only though).
* Memory footprint is reduced a bit. (~-60 bytes per node)
lc0-win-20180711-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Edge-node separation introduced a bug that smart pruning didn't work. That's
fixed.
* Changed options parsing so that --backend-opts=cudnn-fp16 is now possible.
* Performance fixes (mostly for slowness introduced by edge-node separation).
lc0-win-20180708-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Mutex contention has been reduced (but locking mutex more rarely).
Helps a lot with many threads running. Especially recommended to check with
multi-GPU configuration.
* Memory usage reduced at least 2x (probably more).
* cudnn backend crashed on large batches (>800) that's fixed.
There is still a limit of batch size 1024 though.
* (not in cudnn build, but for completeness)
Fixed NN computation with BLAS backend, it had up to 5% error before that.
* Default time budgeting params have been changed again! (not by mach this time)
--slowmover=1.95
--time-curve-peak=26.2
--time-curve-left-width=82
--time-curve-right-width=74
lc0-win-20180701-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* fp16-based computation for very modern NVidia GPUs!
May reduce precision a bit, but should be compensated by nps boost.
Enable with --backend=cudnn-fp16 flag
* V is now not stored in nodes (a bit less RAM used while thinking)
* (not in cudnn build, but listing for completeness) blas batching support.
lc0-win-20180629-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Default time budgeting parameters have been changed (again!):
--slowmover=1.93
--time-curve-peak=26
--time-curve-left-width=67
--time-curve-right-width=76
* When generating training games, the engine could confuse client by sending
corrupted output. That's fixed.
lc0-win-20180624-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Default time budgeting parameters have been changed:
--slowmover=2.13 (was 1.8)
--time-curve-peak=22.0 (was 41.0)
--time-curve-left-width=450.0 (was 1000.0)
--time-curve-right-width=30.0 (was 39.5)
* During training game generation, the engine is able to send resign statistics.
lc0-win-20180622-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Time budged allocation has been changed, it allocates more time to early
stages of the game.
Graphs are here: https://github.com/LeelaChessZero/lc0/pull/59
Slowmover value has so be recalibrated, and default value was changed from 2.2 to 1.8.
* Fixed a race condition in cache prefetch code. Realistically it hardly every
occured before though.
lc0-win-20180619-cuda92-cudnn714-00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Fix a bug instroduced in version 20180609 which caused the engine to miss checkmates sometimes.
lc0-win-20180614-cuda92-cudnn714
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* "go searchmoves" uci command is now supported
* It's possible now to disable tree reuse in training games
* Few improvements for random backend
* Lc0 now shows version in uci response
* Analyzer mode has been removed
* extra-virtual-loss has been removed
* Implemented resign (for training games)
lc0-win-20180609-cuda92-cudnn714-01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* In addition to --backpropagate-gamma, there is also --backpropagate-beta!
Default is 1.0.
lc0-win-20180609-cuda92-cudnn714-00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Visible changes:
* Experimental changes from 20180604 are now default.
* Memory footprint is reduced by 8 bytes per visible node (+ ~240 bytes in
invisible nodes per visible)
* Introduced --backpropagate-gamma flag.
Default is 1.0. There are rumours that reducing it to 0.75 improves play.
* Extra-virtual-loss parameter has been removed.
* Quotes in backend-opts parameter were not parsed properly, that's fixed.
lc0-win-20180604-cuda92-cudnn714-experimental
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Visible changes:
* Experimental default settings:
cPUCT: 3.4
FPU reduction: 0.9
policy Softmax: 2.2
* Fix memory leak when GUI doesn't ever issue `isready` uci command.
lc0-win-20180602-cuda92-cudnn714-00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Visible changes:
* cPUCT is now 3.1 by default instead of 1.2 (or what it was before)
* Fixed Batch normalization epsilon in tensorflow backend (but noone uses tensorflow anyway)
* Periodically (every 5 seconds) output "uci info" even if bestmove/depth doesn't change.
* Memory management is redone so that node release happens after "bestmove" and "isready", rather than after "position" uci command.
That garbage collection could take tens of milliseconds and chess GUI already started timer at that point.
Memory management is always fragile, so fresh crashes and memory leaks are possible.
Invisible changes:
* Store castlings again as e1g1 and not e1h1. Fixes a bug that tree was not reused after castling.