Skip to content

Commit 3c2db95

Browse files
authored
code reorganization (#2041)
The src directory is re-organized as follows: 1. The benchmark and lc0ctl directories are merged into tools. 2. All backends are moved into neural/backends. 3. The neural/onnx and neural/xla directories remain but only contain the conversion functions and not any backend code. 4. The neural/tables directory contains some generic information that used to be in neural/shared (activation functions, policy maps etc.) that are used by both backends and the onnx converter. 5. The rest of neural/shared is moved to neural/backends/shared/. 6. The rescorer is moved into the trainingdata directory.
1 parent 9239021 commit 3c2db95

File tree

115 files changed

+178
-158
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+178
-158
lines changed

meson.build

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,7 @@ common_files += [
181181
]
182182

183183
files += [
184-
'src/benchmark/backendbench.cc',
185-
'src/benchmark/benchmark.cc',
186184
'src/engine.cc',
187-
'src/lc0ctl/describenet.cc',
188-
'src/lc0ctl/leela2onnx.cc',
189-
'src/lc0ctl/onnx2leela.cc',
190185
'src/mcts/params.cc',
191186
'src/mcts/search.cc',
192187
'src/mcts/stoppers/alphazero.cc',
@@ -197,27 +192,33 @@ files += [
197192
'src/mcts/stoppers/smooth.cc',
198193
'src/mcts/stoppers/stoppers.cc',
199194
'src/mcts/stoppers/timemgr.cc',
195+
'src/neural/backends/network_check.cc',
196+
'src/neural/backends/network_demux.cc',
197+
'src/neural/backends/network_mux.cc',
198+
'src/neural/backends/network_random.cc',
199+
'src/neural/backends/network_record.cc',
200+
'src/neural/backends/network_rr.cc',
201+
'src/neural/backends/network_trivial.cc',
200202
'src/neural/cache.cc',
201203
'src/neural/factory.cc',
202204
'src/neural/loader.cc',
203-
'src/neural/network_check.cc',
204-
'src/neural/network_demux.cc',
205205
'src/neural/network_legacy.cc',
206-
'src/neural/network_mux.cc',
207-
'src/neural/network_random.cc',
208-
'src/neural/network_record.cc',
209-
'src/neural/network_rr.cc',
210-
'src/neural/network_trivial.cc',
211206
'src/neural/onnx/adapters.cc',
212207
'src/neural/onnx/builder.cc',
213208
'src/neural/onnx/converter.cc',
214209
'src/neural/xla/hlo_builder.cc',
215210
'src/neural/xla/onnx2hlo.cc',
216211
'src/neural/xla/print_hlo.cc',
212+
'src/neural/xla/xla_tensor.cc',
217213
'src/selfplay/game.cc',
218214
'src/selfplay/loop.cc',
219215
'src/selfplay/multigame.cc',
220216
'src/selfplay/tournament.cc',
217+
'src/tools/backendbench.cc',
218+
'src/tools/benchmark.cc',
219+
'src/tools/describenet.cc',
220+
'src/tools/leela2onnx.cc',
221+
'src/tools/onnx2leela.cc',
221222
'src/utils/histogram.cc',
222223
'src/utils/numa.cc',
223224
'src/utils/weights_adapter.cc',
@@ -248,7 +249,7 @@ if get_option('build_backends')
248249
tf_tensorflow_cc_lib = dependency('tensorflow_cc', required: false)
249250
if get_option('tensorflow') and tf_dl_lib.found() and tf_tensorflow_cc_lib.found()
250251
deps += [tf_dl_lib, tf_tensorflow_cc_lib]
251-
files += 'src/neural/network_tf_cc.cc'
252+
files += 'src/neural/backends/network_tf_cc.cc'
252253
has_backends = true
253254
endif
254255

@@ -373,25 +374,25 @@ if get_option('build_backends')
373374
endif
374375

375376
blas_files = [
376-
'src/neural/blas/convolution1.cc',
377-
'src/neural/blas/fully_connected_layer.cc',
378-
'src/neural/blas/se_unit.cc',
379-
'src/neural/blas/network_blas.cc',
380-
'src/neural/blas/winograd_convolution3.cc'
377+
'src/neural/backends/blas/convolution1.cc',
378+
'src/neural/backends/blas/fully_connected_layer.cc',
379+
'src/neural/backends/blas/se_unit.cc',
380+
'src/neural/backends/blas/network_blas.cc',
381+
'src/neural/backends/blas/winograd_convolution3.cc'
381382
]
382383

383384
shared_files = [
384-
'src/neural/shared/activation.cc',
385-
'src/neural/shared/winograd_filter.cc',
385+
'src/neural/backends/shared/activation.cc',
386+
'src/neural/backends/shared/winograd_filter.cc',
386387
]
387388

388389
files += blas_files
389390
has_backends = true
390391

391392
if get_option('ispc') and ispc.found()
392-
files += iscp_gen.process('src/neural/blas/winograd_transform.ispc')
393-
files += iscp_gen.process('src/neural/blas/layer_norm.ispc')
394-
files += iscp_gen.process('src/neural/shared/activation.ispc')
393+
files += iscp_gen.process('src/neural/backends/blas/winograd_transform.ispc')
394+
files += iscp_gen.process('src/neural/backends/blas/layer_norm.ispc')
395+
files += iscp_gen.process('src/neural/backends/shared/activation.ispc')
395396
add_project_arguments('-DUSE_ISPC', language : 'cpp')
396397
endif
397398

@@ -421,15 +422,15 @@ if get_option('build_backends')
421422
if get_option('opencl') and has_opencl
422423

423424
opencl_files = [
424-
'src/neural/opencl/network_opencl.cc',
425-
'src/neural/opencl/OpenCL.cc',
426-
'src/neural/opencl/OpenCLTuner.cc',
427-
'src/neural/opencl/OpenCLBuffers.cc',
425+
'src/neural/backends/opencl/network_opencl.cc',
426+
'src/neural/backends/opencl/OpenCL.cc',
427+
'src/neural/backends/opencl/OpenCLTuner.cc',
428+
'src/neural/backends/opencl/OpenCLBuffers.cc',
428429
]
429430

430431
shared_files = [
431-
'src/neural/shared/activation.cc',
432-
'src/neural/shared/winograd_filter.cc',
432+
'src/neural/backends/shared/activation.cc',
433+
'src/neural/backends/shared/winograd_filter.cc',
433434
]
434435

435436
if not opencl_framework.found()
@@ -455,21 +456,21 @@ if get_option('build_backends')
455456

456457
if (get_option('cudnn') or get_option('plain_cuda')) and cu_blas.found() and cu_dart.found() and nvcc.found()
457458
deps += [cu_blas, cu_dart]
458-
cuda_files = ['src/neural/cuda/layers.cc']
459+
cuda_files = ['src/neural/backends/cuda/layers.cc']
459460
if get_option('cudnn') and cu_dnn.found()
460461
deps += cu_dnn
461-
cuda_files += 'src/neural/cuda/network_cudnn.cc'
462-
cuda_files += 'src/neural/cuda/network_cuda.cc' # To support newer nets.
462+
cuda_files += 'src/neural/backends/cuda/network_cudnn.cc'
463+
cuda_files += 'src/neural/backends/cuda/network_cuda.cc' # To support newer nets.
463464
add_project_arguments('-DUSE_CUDNN', language : 'cpp')
464465
elif get_option('plain_cuda')
465-
cuda_files += 'src/neural/cuda/network_cuda.cc'
466+
cuda_files += 'src/neural/backends/cuda/network_cuda.cc'
466467
endif
467468
foreach d : get_option('cudnn_include')
468469
if run_command('scripts/checkdir.py', d, check : false).returncode() == 0
469470
includes += include_directories(d, is_system: true)
470471
endif
471472
endforeach
472-
includes += include_directories('src/neural/cuda/')
473+
includes += include_directories('src/neural/backends/cuda/')
473474

474475
cuda_arguments = ['-c', '@INPUT@', '-o', '@OUTPUT@',
475476
'-I', meson.current_source_dir() + '/src']
@@ -523,16 +524,16 @@ if get_option('build_backends')
523524
endif
524525
files += cuda_files
525526
files += custom_target('cuda fp32 code',
526-
input : 'src/neural/cuda/common_kernels.cu',
527+
input : 'src/neural/backends/cuda/common_kernels.cu',
527528
output : outputname,
528-
depend_files: 'src/neural/cuda/winograd_helper.inc',
529+
depend_files: 'src/neural/backends/cuda/winograd_helper.inc',
529530
command : [nvcc, nvcc_extra_args, cuda_arguments]
530531
)
531532

532533
files += custom_target('cuda fp16 code',
533-
input : 'src/neural/cuda/fp16_kernels.cu',
534+
input : 'src/neural/backends/cuda/fp16_kernels.cu',
534535
output : outputname,
535-
depend_files: 'src/neural/cuda/winograd_helper.inc',
536+
depend_files: 'src/neural/backends/cuda/winograd_helper.inc',
536537
command : [nvcc, nvcc_extra_args, cuda_arguments]
537538
)
538539
has_backends = true
@@ -548,14 +549,14 @@ if get_option('build_backends')
548549
dx_dxgi = cc.find_library('dxgi')
549550

550551
dx_files = [
551-
'src/neural/dx/network_dx.cc',
552-
'src/neural/dx/shader_wrapper.cc',
553-
'src/neural/dx/layers_dx.cc',
552+
'src/neural/backends/dx/network_dx.cc',
553+
'src/neural/backends/dx/shader_wrapper.cc',
554+
'src/neural/backends/dx/layers_dx.cc',
554555
]
555556
files += dx_files
556557
deps += [dx_d3d12, dx_dxgi]
557558

558-
subdir('src/neural/dx/shaders')
559+
subdir('src/neural/backends/dx/shaders')
559560

560561
has_backends = true
561562
endif
@@ -564,8 +565,8 @@ if get_option('build_backends')
564565
includes += include_directories(get_option('dnnl_dir') + '/include')
565566
deps += [ dnnl_lib, dependency('openmp', required:true) ]
566567
files += [
567-
'src/neural/onednn/network_onednn.cc',
568-
'src/neural/onednn/layers.cc',
568+
'src/neural/backends/onednn/network_onednn.cc',
569+
'src/neural/backends/onednn/layers.cc',
569570
]
570571
has_backends = true
571572
endif
@@ -586,7 +587,7 @@ if get_option('build_backends')
586587
includes += include_directories(get_option('onnx_include') + '/../providers/cpu',
587588
is_system: true)
588589
endif
589-
files += 'src/neural/onnx/network_onnx.cc'
590+
files += 'src/neural/backends/network_onnx.cc'
590591
if cc.find_library('onnxruntime_providers_rocm',
591592
dirs: get_option('onnx_libdir'), required: false).found()
592593
add_project_arguments('-DUSE_ROCM', language : 'cpp')
@@ -607,9 +608,9 @@ if get_option('build_backends')
607608
deps += metal_frameworks
608609

609610
files += [
610-
'src/neural/metal/network_metal.cc',
611-
'src/neural/metal/mps/NetworkGraph.mm',
612-
'src/neural/metal/mps/MetalNetworkBuilder.mm',
611+
'src/neural/backends/metal/network_metal.cc',
612+
'src/neural/backends/metal/mps/NetworkGraph.mm',
613+
'src/neural/backends/metal/mps/MetalNetworkBuilder.mm',
613614
]
614615

615616
has_backends = true
@@ -623,10 +624,9 @@ if get_option('build_backends')
623624
## ~~~~~~~~
624625
if get_option('xla')
625626
files += [
626-
'src/neural/xla/network_xla.cc',
627-
'src/neural/xla/pjrt.cc',
628-
'src/neural/xla/xla_runner.cc',
629-
'src/neural/xla/xla_tensor.cc',
627+
'src/neural/backends/xla/network_xla.cc',
628+
'src/neural/backends/xla/pjrt.cc',
629+
'src/neural/backends/xla/xla_runner.cc',
630630
]
631631
deps += cc.find_library('dl', required: false)
632632
has_backends = true
@@ -702,7 +702,7 @@ endif
702702
if get_option('rescorer')
703703
deps += subproject('gaviotatb').get_variable('gaviotatb_dep')
704704
executable('rescorer', 'src/rescorer_main.cc',
705-
[common_files, 'src/rescorer/rescoreloop.cc'],
705+
[common_files, 'src/trainingdata/rescoreloop.cc'],
706706
include_directories: includes, dependencies: deps, install: true)
707707
endif
708708

src/main.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@
2525
Program grant you additional permission to convey the resulting work.
2626
*/
2727

28-
#include "benchmark/backendbench.h"
29-
#include "benchmark/benchmark.h"
3028
#include "chess/board.h"
3129
#include "engine.h"
32-
#include "lc0ctl/describenet.h"
33-
#include "lc0ctl/leela2onnx.h"
34-
#include "lc0ctl/onnx2leela.h"
3530
#include "selfplay/loop.h"
31+
#include "tools/backendbench.h"
32+
#include "tools/benchmark.h"
33+
#include "tools/describenet.h"
34+
#include "tools/leela2onnx.h"
35+
#include "tools/onnx2leela.h"
3636
#include "utils/commandline.h"
3737
#include "utils/esc_codes.h"
3838
#include "utils/logging.h"
File renamed without changes.
File renamed without changes.

src/neural/blas/convolution1.cc renamed to src/neural/backends/blas/convolution1.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
along with Leela Chess. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
#include "neural/blas/convolution1.h"
20-
#include "neural/blas/blas.h"
19+
#include "neural/backends/blas/convolution1.h"
20+
#include "neural/backends/blas/blas.h"
2121

2222
#include <Eigen/Dense>
2323

src/neural/blas/encoder.h renamed to src/neural/backends/blas/encoder.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
#include <cmath>
2222

23-
#include "neural/shared/activation.h"
24-
2523
#ifdef USE_ISPC
2624
#include "layer_norm_ispc.h"
2725
#endif

src/neural/blas/fully_connected_layer.cc renamed to src/neural/backends/blas/fully_connected_layer.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
along with Leela Chess. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
#include "neural/blas/fully_connected_layer.h"
20-
#include "neural/blas/blas.h"
21-
#include "neural/shared/activation.h"
19+
#include "neural/backends/blas/fully_connected_layer.h"
20+
#include "neural/backends/blas/blas.h"
2221

2322
#include <algorithm>
2423
#include <cassert>

src/neural/blas/fully_connected_layer.h renamed to src/neural/backends/blas/fully_connected_layer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#pragma once
2020

21-
#include "neural/shared/activation.h"
21+
#include "neural/backends/shared/activation.h"
2222

2323
#include <cstddef>
2424
#include <vector>

src/neural/blas/network_blas.cc renamed to src/neural/backends/blas/network_blas.cc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,19 @@
2222
#include <cmath>
2323
#include <iostream>
2424

25-
#include "neural/blas/blas.h"
26-
#include "neural/blas/convolution1.h"
27-
#include "neural/blas/encoder.h"
28-
#include "neural/blas/fully_connected_layer.h"
29-
#include "neural/blas/se_unit.h"
30-
#include "neural/blas/winograd_convolution3.h"
25+
#include "neural/backends/blas/blas.h"
26+
#include "neural/backends/blas/convolution1.h"
27+
#include "neural/backends/blas/encoder.h"
28+
#include "neural/backends/blas/fully_connected_layer.h"
29+
#include "neural/backends/blas/se_unit.h"
30+
#include "neural/backends/blas/winograd_convolution3.h"
31+
#include "neural/backends/shared/activation.h"
32+
#include "neural/backends/shared/winograd_filter.h"
3133
#include "neural/factory.h"
3234
#include "neural/network.h"
3335
#include "neural/network_legacy.h"
34-
#include "neural/shared/activation.h"
35-
#include "neural/shared/attention_policy_map.h"
36-
#include "neural/shared/policy_map.h"
37-
#include "neural/shared/winograd_filter.h"
36+
#include "neural/tables/attention_policy_map.h"
37+
#include "neural/tables/policy_map.h"
3838
#include "utils/numa.h"
3939

4040
#ifdef USE_DNNL

src/neural/blas/se_unit.cc renamed to src/neural/backends/blas/se_unit.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
along with Leela Chess. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
#include "neural/blas/se_unit.h"
20-
#include "neural/blas/fully_connected_layer.h"
19+
#include "neural/backends/blas/se_unit.h"
20+
#include "neural/backends/blas/fully_connected_layer.h"
2121

2222
#include <cmath>
2323

src/neural/blas/se_unit.h renamed to src/neural/backends/blas/se_unit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#pragma once
2020

21-
#include "neural/shared/activation.h"
21+
#include "neural/backends/shared/activation.h"
2222

2323
#include <cstddef>
2424

src/neural/blas/winograd_convolution3.cc renamed to src/neural/backends/blas/winograd_convolution3.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
along with Leela Chess. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
#include "neural/blas/winograd_convolution3.h"
20-
#include "neural/blas/blas.h"
19+
#include "neural/backends/blas/winograd_convolution3.h"
20+
#include "neural/backends/blas/blas.h"
2121

2222
#include <algorithm>
2323
#include <cassert>

src/neural/cuda/common_kernels.cu renamed to src/neural/backends/cuda/common_kernels.cu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
#include <cassert>
3030

3131
#include "cuda_common.h"
32-
#include "neural/shared/activation.h"
33-
#include "neural/shared/attention_policy_map.h"
32+
#include "neural/tables/activation_function.h"
33+
#include "neural/tables/attention_policy_map.h"
3434
#include "winograd_helper.inc"
3535

3636
namespace lczero {

src/neural/cuda/fp16_kernels.cu renamed to src/neural/backends/cuda/fp16_kernels.cu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727

2828
#include "cuda_common.h"
29-
#include "neural/shared/activation.h"
29+
#include "neural/tables/activation_function.h"
3030

3131
// Allow building on an old architecture.
3232
#if __CUDA_ARCH__ < 530

src/neural/cuda/kernels.h renamed to src/neural/backends/cuda/kernels.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#pragma once
2929

3030
#include "cuda_common.h"
31-
#include "neural/shared/activation.h"
31+
#include "neural/tables/activation_function.h"
3232

3333
namespace lczero {
3434
namespace cudnn_backend {

0 commit comments

Comments
 (0)