This release includes improvements across the cuda, onnx and demux backends, along with several search, benchmarking, and training-data fixes.
- Several DAG search improvements: concurrent task workers, improved lock contention, garbage collection, more accurate draw score as well as better time keeping.
- Added cuda backend graph support and cutlass fused multihead attention.
- Refactored demux to reduce lock contention and improve batch handling.
- Added support for preferred batch step selection in the cuda, onnx and xla backends.
- Added support for network evaluations per second in uci info, enabled by the
--show-epscommand line switch orUCI_ShowEPSuci option. - Use cuda streams if possible in onnx, for more efficient memory transfers.
- Switched onnx-trt to strongly typed graphs to avoid problematic type conversions in TensorRT, added quantization control through the
optimizebackend option and full bf16 support. - Added the onnx-coreml backend.
- Also added the onnx-migraphx backend, with fixed batch sizes recommended for best performance.
- Allowed the rescorer to process v7 training data.
- Added tracing support.
- Search avoids allocating extra computations for better backend buffer reuse.
- Improved backendbench statistics and added thread support.
- Added back a threads option to the blas backend.
- The master version of net.proto is now hosted by lc0 and includes support for fp16 and fp32 weights encoding.
- Notable bug fixes:
- Restored the
--history-fillnaming. - Reverted ponder behavior changes.
- Fixed castling move display for FRC.
- Fixed multiplay issues.
- Fixed a DAG
n_in_flightunderflow bug. - Defaulted cuda backend option
fused_mhato false for networks withrelu^2activation. - Fixed a segfault in Python bindings for transformer networks when calling
Weights.filters(). - Fixed onnx locking.
- Restored the
- Several build system updates.
- Assorted small fixes and improvements.