Skip to content

Releases: LeelaChessZero/lc0

v0.18.0

30 Sep 11:26
a4273d3
Compare
Choose a tag to compare

No changes from rc2 except the version.

v0.18.0-rc2

26 Sep 20:54
e41def5
Compare
Choose a tag to compare
v0.18.0-rc2 Pre-release
Pre-release
  • Severe bug fixed: Race condition when out-of-order-eval was enabled (and it was enabled by default)

  • Windows 32-bit builds are now possible (CPU only for now)

v0.18.0-rc1

24 Sep 19:24
f285ff2
Compare
Choose a tag to compare
v0.18.0-rc1 Pre-release
Pre-release

KNOWN BUG!

  • We have credible reports that in some rare cases Lc0 crashes!
    However, we were not able to reproduce it reliably. If you see the crash, please report to devs! What seems to increase crash probability:
    • Very short move time (milliseconds)
    • Proximity to a checkmate (happens 1-3 moves before the checkmate)

New features:

  • Endgame tablebases support! Both WDL and DTZ now.

  • Added MultiPv support.

Time management changes:

  • Introduced --immediate-time-use flag. Yes, yet another time management flag. Posible values are between 0.0 and 1.0. Setting it closer to 1.0 makes Leela use time saved from futile search aversion earlier.

  • Some time management parameters were changed:

    • Slowmover is 1.0 now (was 2.4)
    • Immediate-time-use is 0.6 now (didn't exist before, so was 0.0)
  • Fixed a bug, because of which futile search aversion tolerance was incorrectly applied, which resulted in instamoves.

  • Now search stops immediately when it runs out of budgeted time.
    Should help against timeouts, especially on slow backends (e.g. BLAS).

  • Move overhead now is a fixed time, doesn't depend on number of remaining moves.

Other:

  • Out of order eval is on by default. That brings slight nps improvement.

  • Default FPU reduction is 1.2 now (was 0.9)

  • Cudnn backend now has max_batch parameter.
    (can be set for example like this --backend-opts=max_batch=100).
    This is needed for lower end GPUs that didn't have enough VRAM for a buffer of size 1024. Make sure that this setting is not lower than --minibatch-size.

  • Small memory usage optimizations.

  • Engine name in UCI response is shorter now. Fritz chess UI should be able
    to work with Leela now

  • Added flag --temp-visit-offset, will allow to offset temperature during training.

  • Command line and UCI parameter values are now checked for validity.

  • You can now build for older processors that don't support the popcnt instruction by passing -Dpopcnt=false to meson when building.

  • 32-bit build is possible now. CPU only and we were only able to build it in Linux for now, including Raspberry Pi.

  • Threading issue which caused crash in heavily multithreaded environment with slow backends was fixed.

v0.17.0

27 Aug 08:25
62035fe
Compare
Choose a tag to compare

No changes from rc2 except the version.

v0.17.0-rc2

21 Aug 17:56
b6a4b23
Compare
Choose a tag to compare
v0.17.0-rc2 Pre-release
Pre-release

Changes relative to RC1

  • 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

19 Aug 15:02
83bf29c
Compare
Choose a tag to compare
v0.17.0-rc1 Pre-release
Pre-release

Changes

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

20 Jul 17:44
3982d30
Compare
Choose a tag to compare
  • 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.