Skip to content

Releases: LeelaChessZero/lc0

v0.30.0

21 Jul 17:15
Compare
Choose a tag to compare

In this version:

  • Support for networks with attention body and smolgen added to blas, cuda, metal and onnx backends.
  • WDL conversion for more realistic WDL score and contempt. Adds an Elo based WDL transformation of the NN value head output. Helps with more accurate play at high level (WDL sharpening), more aggressive play against weaker opponents and draw avoiding openings (contempt), piece odds play. For details on how it works see https://lczero.org/blog/2023/07/the-lc0-v0.30.0-wdl-rescale/contempt-implementation/.
  • A new score type WDL_mu which follows the new eval convention, where +1.00 means 50% white win chance.
  • Changed mlh threshold effect to create a smooth transition.
  • WDL_mu score type is now the default and the --moves-left-threshold default was changed from 0 to 0.8.
  • Simplified to a single --draw-score parameter, adjusting the draw score from white's perspective: 0 gives standard scoring, -1 gives Armageddon scoring.
  • Updated describenet for new net architectures.
  • Added a first-move-bonus option to the legacy time manager, to accompany book-ply-bonus for shallow openings.
  • Persistent L2 cache optimization for the cuda backend. Use the cache_opt=true backend option to turn it on.
  • Some performance improvements for the cuda, onnx and blas backends.
  • Added the threads backend option to onnx, defaults to 0 (let the onnxruntime decide) except for onnx-cpu that defaults to 1.
  • The onnx-dml package now includes a directml.dll installation script.
  • Some users experienced memory issues with onnx-dml, so the defaults were changed. This may affect performance, in which case you can use the steps=8 backend option to get the old behavior.
  • The Python bindings are available as a package, see the README for instructions.
  • Revised 'simple' time manager.
  • A new spinlock implementation (selected with --search-spin-backoff) to help with many cpu threads (e.g. 128 threads), obviously for cpu backends only.
  • Fixes for contempt with infinite search/pondering and for the wdl display when pondering.
  • Some assorted fixes and code cleanups.

v0.30.0-rc2

15 Jun 13:32
Compare
Choose a tag to compare
v0.30.0-rc2 Pre-release
Pre-release

In this release:

  • WDL conversion for more realistic WDL score and contempt. Adds an Elo based
    WDL transformation of the NN value head output. Helps with more accurate play
    at high level (WDL sharpening), more aggressive play against weaker opponents
    and draw avoiding openings (contempt), piece odds play. There will be a blog
    post soon explaining in detail how it works.
  • A new score type WDL_mu which follows the new eval convention, where +1.00
    means 50% white win chance.
  • Simplified to a single --draw-score parameter, adjusting the draw score from
    white's perspective: 0 gives standard scoring, -1 gives Armageddon scoring.
  • Updated describenet for new net architectures.
  • Added a first-move-bonus option to the legacy time manager, to accompany
    book-ply-bonus for shallow openings.
  • Changed mlh threshold effect to create a smooth transition.
  • Revised 'simple' time manager.
  • A new spinlock implementation (selected with --search-spin-backoff) to help
    with many cpu threads (e.g. 128 threads), obviously for cpu backends only.
  • Some assorted fixes and code cleanups.

v0.30.0-rc1

24 Apr 15:26
Compare
Choose a tag to compare
v0.30.0-rc1 Pre-release
Pre-release

In this release:

  • Support for networks with attention body and smolgen added to blas, cuda, metal and onnx backends.
  • Persistent L2 cache optimization for the cuda backend. Use the cache_opt=true backend option to turn it on.
  • Some performance improvements for the cuda, onnx and blas backends.
  • Added the threads backend option to onnx, defaults to 0 (let the onnxruntime decide) except for onnx-cpu that defaults to 1.
  • The onnx-dml package now includes a directml.dll installation script.
  • Some users experienced memory issues with onnx-dml, so the defaults were changed. This may affect performance, in which case you can use the steps=8 backend option to get the old behavior.
  • The Python bindings are available as a package, see the README for instructions.
  • Some assorted fixes and code cleanups.

v0.29.0

13 Dec 09:37
Compare
Choose a tag to compare

In this release:

  • New metal backend for apple systems. This is now the default backend for macos builds.
  • New onnx-dml backend to use DirectML under windows, has better net compatibility than dx12 and is faster than opencl. See the README for use instructions, a separate download of the DirectML dll is required.
  • Full attention policy support in cuda, cudnn, metal, onnx, blas, dnnl, and eigen backends.
  • Partial attention policy support in onednn backend (good enough for T79).
  • Non multigather (legacy) search code and --multigather option are removed.
  • Now the onnx backends can use fp16 when running with a network file (not with .onnx model files). This is the default for onnx-cuda and onnx-dml, can be switched on or off with by setting the fp16 backend option to true or false respectively.
  • The onednn package comes with the latest dnnl compiled to allow running on an intel gpu by adding gpu=0 to the backend options.
  • The default net is now 791556 for most backends except opencl and dx12 that get 753723 (as they lack attention policy support).
  • Support for using pgn book with long lines in training: selfplay can start at a random point in the book.
  • New "simple" time manager.
  • Support for double Fischer random chess (dfrc).
  • Added TC-dependent output to the backendbench assistant.
  • Starting with this version, the check backend compares policy for valid moves after softmax.
  • The onnx backend now allows selecting gpu to use.
  • Improved error messages for unsupported network files.
  • Some assorted fixes and code cleanups.

v0.29.0-rc1

09 Dec 10:25
Compare
Choose a tag to compare
v0.29.0-rc1 Pre-release
Pre-release

In this release:

  • New metal backend for apple systems. This is now the default backend for
    macos builds.
  • New onnx-dml backend to use DirectML under windows, has better net
    compatibility than dx12 and is faster than opencl. See the README for use
    instructions, a separate download of the DirectML dll is required.
  • Full attention policy support in cuda, cudnn, metal, onnx, blas, dnnl, and
    eigen backends.
  • Partial attention policy support in onednn backend (good enough for T79).
  • Now the onnx backends can use fp16 when running with a network file (not with
    .onnx model files). This is the default for onnx-cuda and onnx-dml, can be
    switched on or off with by setting the fp16 backend option to true or
    false respectively.
  • The onednn package comes with a dnnl compiled to allow running on an intel gpu
    by adding gpu=0 to the backend options.
  • The default net is now 791556 for most backends except opencl and dx12 that
    get 753723 (as they lack attention policy support).
  • Support for using pgn book with long lines in training: selfplay can start at
    a random point in the book.
  • New "simple" time manager.
  • Support for double Fischer random chess (dfrc).
  • Added TC-dependent output to the backendbench assistant.
  • Starting with this version, the check backend compares policy for valid moves
    after softmax.
  • Some assorted fixes and code cleanups.

v0.29.0-rc0

03 Apr 21:00
Compare
Choose a tag to compare
v0.29.0-rc0 Pre-release
Pre-release

In this release:

  • Initial support for attention policy, only cuda backend and partially in
    blas/dnnl/eigen (good enough for T79).
  • Non multigather (legacy) search code and --multigather option are removed.
  • 15b default net is now 753723.
  • The onnx backend now allows selecting gpu to use.
  • Improved error messages for unsupported network files.
  • Some assorted fixes.

v0.28.2

13 Dec 02:31
Compare
Choose a tag to compare

This is what should have been v0.28.1:

  • Improved cuda performance for 512 filter networks on Amprere GPUs.
  • Several fixes for the onnx backend.
  • New lc0 modes to process network files: describenet, leela2onnx and onnx2leela
  • Documentation updates.
  • Correctness fixes for rescorer support functions.

v0.28.1-rc1

05 Dec 19:54
Compare
Choose a tag to compare
v0.28.1-rc1 Pre-release
Pre-release
  • Improved cuda performance for 512 filter networks on Amprere GPUs.
  • Several fixes for the onnx backend.
  • Command line options for network file conversion to/from onnx.
  • Documentation updates.
  • Correctness fixes for rescorer support functions.

v0.28.0

25 Aug 16:38
Compare
Choose a tag to compare

In this release:

  • Multigather is now made the default (and also improved). Some search settings have changed meaning, so if you have modified values please discard them. Specifically, max-collision-events, max-collision-visits and max-out-of-order-evals-factor have changed default values, but other options also affect the search. Similarly, check that your GUI is not caching the old values.
  • Updated several other default parameter values, including the MLH ones.
  • Performance improvements for the cuda/cudnn backends. This includes the multi_stream cuda backend option that is off by default. You should test adding multi_stream=true to backend-opts (command line) or BackendOptions (UCI) if you have a recent GPU with a lot of VRAM.
  • Support for policy focus during training.
  • Larger/stronger 15b default net for all packages except android, blas and dnnl that get a new 10b network.
  • The distributed binaries come with the mimalloc memory allocator for better performance when a large tree has to be destroyed (e.g. after an unexpected move).
  • The legacy time manager is again the default and will use more time for the first move after a long book line.
  • The --preload command line flag will initialize the backend and load the network during startup. This may help in cases where the GUI is confused by long start times, but only if backend and network are not changed via UCI options.
  • A 'fen' command was added as a UCI extension to print the current position.
  • Experimental onednn backend for recent intel CPUs and GPUs.
  • Added support for ONNX network files and runtime with the onnx backend.
  • Several bug and stability fixes.

Note: Some small third-party nets seem to play really bad with the dx12 backend and certain GPU drivers, setting the enable-gemm-metacommand=false backend option is reported to work around this issue.

v0.28.0-rc2

20 Aug 16:29
Compare
Choose a tag to compare
v0.28.0-rc2 Pre-release
Pre-release
  • The cuda backend option multi_stream is now off by default. You should
    consider setting it to on if you have a recent gpu with a lot of vram.
  • Updated default parameters.
  • Newer and stronger nets are included in the release packages.
  • Added support for onnx network files and runtime with the "onnx" backend.
  • Several bug and stability fixes.