Skip to content

Commit ff8b5af

Browse files
committed
Typed some more
1 parent edae080 commit ff8b5af

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

content/contribute/gsoc/2026.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,59 @@ reasonable strength.
7878
* **Skills needed:** C++, Network programming
7979
* **Difficulty:** Hard / 175 hours
8080

81+
Allow Lc0 to handle computation over the network. That allows to run local Lc0
82+
engine while using remote hardware (e.g., GPUs in the cloud) for neural network
83+
evaluation, or to share evaluation between multiple Lc0 games.
84+
85+
## Port existing backends to the new backend API
86+
87+
* **Skills needed:** C++
88+
* **Difficulty:** Easy / 90 hours
89+
90+
Starting with Lc0 v0.32, we have a new backend API that is more flexible.
91+
However, most of the existing backends (CUDA, OpenCL, XLA) still use the old API
92+
through a compatibility wrapper. We need to port them to the new API to be able
93+
to use new features and optimizations.
94+
95+
## Extend UCI protocol with JSON-based input and output information
96+
97+
* **Skills needed:** C++
98+
* **Difficulty:** Easy / 175 hours
99+
100+
The UCI protocol is the standard way for chess engines to communicate with user
101+
interfaces. However, it has limitations in terms of the amount and structure of
102+
information that can be exchanged. We want to extend the UCI protocol to support
103+
JSON-based messages for detailed state information, which can be useful for
104+
analysis and debugging.
105+
106+
We won't use existing json libraries; instead we'll implement a JSON
107+
serializer/deserializer in our custom protobuf code.
108+
109+
## Update the XLA backend to use StableHLO, through writing MLIR bytecode
110+
111+
* **Skills needed:** C++, MLIR, XLA
112+
* **Difficulty:** Hard / 175 hours
113+
114+
The XLA backend for Lc0 currently uses an older HLO graph format. We want to
115+
update it to use StableHLO, a MLIR-based intermediate representation for machine
116+
learning models. We don't want to add a full MLIR dependency to Lc0, so the task
117+
includes writing a custom MLIR bytecode writer for our neural network format,
118+
and update the XLA backend to write StableHLO.
119+
120+
Having MLIR bytecode writer will also open possibilities for future backends and
121+
ways to write kernels, like Triton or cuTile.
122+
123+
## Support for foreign neural network formats (e.g., Ceres)
124+
125+
* **Skills needed:** C++, ONNX
126+
* **Difficulty:** Medium / 175 hours
127+
128+
Lc0 currently uses its own neural network format, and supports generic ONNX as
129+
well. There are other engines which use different formats, like Ceres, Stockfish
130+
NNUE, or Monty. Supporting these formats would allow more experiments, and with
131+
faster nets (e.g., Stockfish NNUE) we may have a faster backend for search
132+
optimization.
133+
81134
...
82135

83136
## `TODO: DELETE THIS` Unexpanded list
@@ -103,4 +156,5 @@ reasonable strength.
103156
* Move certain parts of Lc0 to a separate repository with more relaxed license
104157
* Implement chess variant? (duck chess?)
105158
* Implement some tool (set of colab scripts) to explore Lc0 activations etc
159+
* dev.lczero.org
106160
* "Your idea here."

0 commit comments

Comments
 (0)