Neural-network chess that runs on NVIDIA, AMD, Intel, or just a CPU
A chess engine that evaluates by neural network and treats hardware portability as a first-class feature.

What it does
Lc0 is a chess engine that evaluates positions using neural networks from the LeelaChessZero project instead of classical hand-tuned heuristics. It speaks the UCI protocol, so it drops into standard chess GUIs, and can generate self-play games for training data. The codebase is C++20 and wraps a variety of neural-network backends so it can run on diverse hardware.
The interesting bit
The project treats hardware support as a first-class feature rather than an afterthought: it bundles backends for NVIDIA CUDA, Apple Metal, ONNX Runtime (with CPU, CUDA, TensorRT, ROCm, and DirectML providers), and even experimental SYCL for AMD and Intel GPUs, plus fallback BLAS paths for CPU-only machines. That is an unusual amount of plumbing for a chess engine.
Key highlights
- Speaks UCI, so it works with standard chess GUIs
- Evaluates positions via neural networks instead of classical evaluation functions
- Broad backend support: CUDA, Metal, ONNX, SYCL (experimental), and CPU BLAS
- Python bindings (
lczero.backends) expose position-evaluation functionality - Distributed-training ecosystem via the LeelaChessZero project
Caveats
- SYCL support is explicitly marked experimental as of v0.32.0
- CPU-only inference is supported but described as “a bit slow”
- Build process requires C++20, Meson, and backend-specific dependencies that can be finicky (e.g., CUDA compiler version matching)
Verdict
Worth a look if you want to experiment with a modern neural-network chess engine or need an engine that runs on non-NVIDIA hardware. Skip it if you prefer traditional hand-tuned engines or are looking for a lightweight project without build-system dependencies.
Frequently asked
- What is LeelaChessZero/lc0?
- A chess engine that evaluates by neural network and treats hardware portability as a first-class feature.
- Is lc0 open source?
- Yes — LeelaChessZero/lc0 is open source, released under the GPL-3.0 license.
- What language is lc0 written in?
- LeelaChessZero/lc0 is primarily written in C++.
- How popular is lc0?
- LeelaChessZero/lc0 has 3.2k stars on GitHub.
- Where can I find lc0?
- LeelaChessZero/lc0 is on GitHub at https://github.com/LeelaChessZero/lc0.