Package Details: lc0 0.26.2-1

Git Clone URL: https://aur.archlinux.org/lc0.git (read-only, click to copy)
Package Base: lc0
Description: UCI-compliant chess engine designed to play chess via neural network, specifically those of the LeelaChessZero project.
Upstream URL: https://lczero.org/
Keywords: chess engine lc0 lczero leela neural-network uci
Licenses: GPL3
Submitter: ivanmlerner
Maintainer: ivanmlerner
Last Packager: ivanmlerner
Votes: 0
Popularity: 0.000000
First Submitted: 2019-08-04 07:47
Last Updated: 2020-09-04 20:38

Pinned Comments

ivanmlerner commented on 2019-08-04 18:25

I have only tested this package with OpenCL so far, feedback from CUDA and openblas for Nvidia and CPUs respectively would be appreciated.

EDIT: Openblas not working in the release version, use the git version here

Latest Comments

ivanmlerner commented on 2020-03-25 21:57

Ok, so I was able to reproduce this problem. Make does require another package, but it is cblas, not blas. With this package and openblas installed I was able to get the error when linking lc0, but not liblc0_lib.so This looks like a problem upstream, and looking at the README it seems we need a git version to use openblas, as suggested by the example with raspberry pi. There is already an openblas git version of this package in the aur using this method.

tee commented on 2020-03-25 15:21

Library libtensorflow_cc found: NO
Found pkg-config: /usr/bin/pkg-config (1.6.3)
Found CMake: /usr/bin/cmake (3.17.0)
Appending CFLAGS from environment: '-march=native -mtune=native -O2 -pipe -fno-plt -flto'
Appending LDFLAGS from environment: ['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
Appending LDFLAGS from environment: ['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
Run-time dependency accelerate found: NO (tried pkgconfig and cmake)
Library mkl_rt found: NO
Library mklml found: NO
Library dnnl found: NO
Library openblas.dll found: NO
Library openblas found: YES
Has header "openblas_config.h" : YES 
Program ispc found: YES (/usr/bin/ispc)
Library OpenCL found: YES
Run-time dependency opencl found: YES 2.2
Library cublas found: NO
Library cudnn found: NO
Library cudart found: NO
Program nvcc found: NO
Program /usr/local/cuda/bin/nvcc found: NO
Program /opt/cuda/bin/nvcc found: NO
Run-time dependency zlib found: YES 1.2.11
Run-time dependency GTest found: YES 1.8.1
Build targets in project: 8

Found ninja-1.10.0 at /usr/bin/ninja
[120/128] Linking target lc0.
FAILED: lc0                                                                                                                                                                 
c++  -o lc0 'lc0@exe/winograd_transform.o' 'lc0@exe/src_main.cc.o' 'lc0@exe/src_utils_protomessage.cc.o' 'lc0@exe/src_engine.cc.o' 'lc0@exe/src_version.cc.o' 'lc0@exe/src_benchmark_backendbench.cc.o' 'lc0@exe/src_benchmark_benchmark.cc.o' 'lc0@exe/src_chess_bitboard.cc.o' 'lc0@exe/src_chess_board.cc.o' 'lc0@exe/src_chess_position.cc.o' 'lc0@exe/src_chess_uciloop.cc.o' 'lc0@exe/src_mcts_node.cc.o' 'lc0@exe/src_mcts_params.cc.o' 'lc0@exe/src_mcts_search.cc.o' 'lc0@exe/src_mcts_stoppers_factory.cc.o' 'lc0@exe/src_mcts_stoppers_stoppers.cc.o' 'lc0@exe/src_mcts_stoppers_timemgr.cc.o' 'lc0@exe/src_neural_cache.cc.o' 'lc0@exe/src_neural_encoder.cc.o' 'lc0@exe/src_neural_factory.cc.o' 'lc0@exe/src_neural_loader.cc.o' 'lc0@exe/src_neural_network_check.cc.o' 'lc0@exe/src_neural_network_demux.cc.o' 'lc0@exe/src_neural_network_legacy.cc.o' 'lc0@exe/src_neural_network_mux.cc.o' 'lc0@exe/src_neural_network_random.cc.o' 'lc0@exe/src_neural_network_rr.cc.o' 'lc0@exe/src_neural_writer.cc.o' 'lc0@exe/src_selfplay_game.cc.o' 'lc0@exe/src_selfplay_loop.cc.o' 'lc0@exe/src_selfplay_tournament.cc.o' 'lc0@exe/src_syzygy_syzygy.cc.o' 'lc0@exe/src_utils_commandline.cc.o' 'lc0@exe/src_utils_configfile.cc.o' 'lc0@exe/src_utils_esc_codes.cc.o' 'lc0@exe/src_utils_histogram.cc.o' 'lc0@exe/src_utils_logging.cc.o' 'lc0@exe/src_utils_optionsdict.cc.o' 'lc0@exe/src_utils_optionsparser.cc.o' 'lc0@exe/src_utils_random.cc.o' 'lc0@exe/src_utils_string.cc.o' 'lc0@exe/src_utils_transpose.cc.o' 'lc0@exe/src_utils_weights_adapter.cc.o' 'lc0@exe/src_utils_filesystem.posix.cc.o' 'lc0@exe/src_neural_blas_convolution1.cc.o' 'lc0@exe/src_neural_blas_fully_connected_layer.cc.o' 'lc0@exe/src_neural_blas_se_unit.cc.o' 'lc0@exe/src_neural_blas_network_blas.cc.o' 'lc0@exe/src_neural_blas_winograd_convolution3.cc.o' 'lc0@exe/src_neural_opencl_network_opencl.cc.o' 'lc0@exe/src_neural_opencl_OpenCL.cc.o' 'lc0@exe/src_neural_opencl_OpenCLTuner.cc.o' 'lc0@exe/src_neural_opencl_OpenCLBuffers.cc.o' 'lc0@exe/src_neural_shared_activation.cc.o' 'lc0@exe/src_neural_shared_winograd_filter.cc.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -march=native -mtune=native -O2 -pipe -fno-plt -flto -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -pthread -Wl,--start-group /usr/lib/libopenblas.so /usr/lib/libOpenCL.so /usr/lib/libz.so -Wl,--end-group                                                                                          
/usr/bin/ld: /tmp/lc0.wSG0qd.ltrans3.ltrans.o: in function `lczero::WinogradConvolution3::Forward(unsigned long, unsigned long, unsigned long, float const*, float const*, float*)':
<artificial>:(.text+0x6b8): undefined reference to `cblas_sgemm'
/usr/bin/ld: /tmp/lc0.wSG0qd.ltrans3.ltrans.o: in function `lczero::Convolution1::Forward(unsigned long, unsigned long, unsigned long, float const*, float const*, float*)':
<artificial>:(.text+0x787): undefined reference to `cblas_sgemm'
/usr/bin/ld: /tmp/lc0.wSG0qd.ltrans3.ltrans.o: in function `lczero::FullyConnectedLayer::Forward1D(unsigned long, unsigned long, unsigned long, float const*, float const*, float const*, bool, float*)':
<artificial>:(.text+0x9b1): undefined reference to `cblas_sgemm'
/usr/bin/ld: <artificial>:(.text+0xa8f): undefined reference to `cblas_sgemv'
/usr/bin/ld: /tmp/lc0.wSG0qd.ltrans3.ltrans.o: in function `lczero::(anonymous namespace)::BlasComputation::ComputeBlocking()':
<artificial>:(.text+0x2c98): undefined reference to `cblas_sdot'
collect2: error: ld returned 1 exit status
[121/128] Linking target liblc0_lib.so.
FAILED: liblc0_lib.so 
c++  -o liblc0_lib.so 'lc0_lib@sha/winograd_transform.o' 'lc0_lib@sha/src_utils_protomessage.cc.o' 'lc0_lib@sha/src_engine.cc.o' 'lc0_lib@sha/src_version.cc.o' 'lc0_lib@sha/src_benchmark_backendbench.cc.o' 'lc0_lib@sha/src_benchmark_benchmark.cc.o' 'lc0_lib@sha/src_chess_bitboard.cc.o' 'lc0_lib@sha/src_chess_board.cc.o' 'lc0_lib@sha/src_chess_position.cc.o' 'lc0_lib@sha/src_chess_uciloop.cc.o' 'lc0_lib@sha/src_mcts_node.cc.o' 'lc0_lib@sha/src_mcts_params.cc.o' 'lc0_lib@sha/src_mcts_search.cc.o' 'lc0_lib@sha/src_mcts_stoppers_factory.cc.o' 'lc0_lib@sha/src_mcts_stoppers_stoppers.cc.o' 'lc0_lib@sha/src_mcts_stoppers_timemgr.cc.o' 'lc0_lib@sha/src_neural_cache.cc.o' 'lc0_lib@sha/src_neural_encoder.cc.o' 'lc0_lib@sha/src_neural_factory.cc.o' 'lc0_lib@sha/src_neural_loader.cc.o' 'lc0_lib@sha/src_neural_network_check.cc.o' 'lc0_lib@sha/src_neural_network_demux.cc.o' 'lc0_lib@sha/src_neural_network_legacy.cc.o' 'lc0_lib@sha/src_neural_network_mux.cc.o' 'lc0_lib@sha/src_neural_network_random.cc.o' 'lc0_lib@sha/src_neural_network_rr.cc.o' 'lc0_lib@sha/src_neural_writer.cc.o' 'lc0_lib@sha/src_selfplay_game.cc.o' 'lc0_lib@sha/src_selfplay_loop.cc.o' 'lc0_lib@sha/src_selfplay_tournament.cc.o' 'lc0_lib@sha/src_syzygy_syzygy.cc.o' 'lc0_lib@sha/src_utils_commandline.cc.o' 'lc0_lib@sha/src_utils_configfile.cc.o' 'lc0_lib@sha/src_utils_esc_codes.cc.o' 'lc0_lib@sha/src_utils_histogram.cc.o' 'lc0_lib@sha/src_utils_logging.cc.o' 'lc0_lib@sha/src_utils_optionsdict.cc.o' 'lc0_lib@sha/src_utils_optionsparser.cc.o' 'lc0_lib@sha/src_utils_random.cc.o' 'lc0_lib@sha/src_utils_string.cc.o' 'lc0_lib@sha/src_utils_transpose.cc.o' 'lc0_lib@sha/src_utils_weights_adapter.cc.o' 'lc0_lib@sha/src_utils_filesystem.posix.cc.o' 'lc0_lib@sha/src_neural_blas_convolution1.cc.o' 'lc0_lib@sha/src_neural_blas_fully_connected_layer.cc.o' 'lc0_lib@sha/src_neural_blas_se_unit.cc.o' 'lc0_lib@sha/src_neural_blas_network_blas.cc.o' 'lc0_lib@sha/src_neural_blas_winograd_convolution3.cc.o' 'lc0_lib@sha/src_neural_opencl_network_opencl.cc.o' 'lc0_lib@sha/src_neural_opencl_OpenCL.cc.o' 'lc0_lib@sha/src_neural_opencl_OpenCLTuner.cc.o' 'lc0_lib@sha/src_neural_opencl_OpenCLBuffers.cc.o' 'lc0_lib@sha/src_neural_shared_activation.cc.o' 'lc0_lib@sha/src_neural_shared_winograd_filter.cc.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,liblc0_lib.so -march=native -mtune=native -O2 -pipe -fno-plt -flto -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -pthread /usr/lib/libopenblas.so /usr/lib/libOpenCL.so /usr/lib/libz.so -Wl,--end-group
/usr/bin/ld: /tmp/liblc0_lib.so.KhRIPQ.ltrans2.ltrans.o: in function `lczero::WinogradConvolution3::Sgemm(unsigned long, float const*, unsigned long, unsigned long)':
<artificial>:(.text+0x3d7d): undefined reference to `cblas_sgemm'
/usr/bin/ld: /tmp/liblc0_lib.so.KhRIPQ.ltrans3.ltrans.o: in function `lczero::FullyConnectedLayer::Forward0D(unsigned long, float const*, float const*)':
<artificial>:(.text+0x9f0): undefined reference to `cblas_sdot'
/usr/bin/ld: /tmp/liblc0_lib.so.KhRIPQ.ltrans3.ltrans.o: in function `lczero::FullyConnectedLayer::Forward1D(unsigned long, unsigned long, unsigned long, float const*, float const*, float const*, bool, float*)':
<artificial>:(.text+0xa51): undefined reference to `cblas_sgemm'
/usr/bin/ld: <artificial>:(.text+0xb2f): undefined reference to `cblas_sgemv'
/usr/bin/ld: /tmp/liblc0_lib.so.KhRIPQ.ltrans3.ltrans.o: in function `lczero::Convolution1::Forward(unsigned long, unsigned long, unsigned long, float const*, float const*, float*)':
<artificial>:(.text+0xeb7): undefined reference to `cblas_sgemm'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
    Aborting...

tee commented on 2020-03-02 14:33

Also make depends on blas not openblas

tee commented on 2019-12-09 08:33

build depends on opencl-headers

ivanmlerner commented on 2019-08-04 18:25

I have only tested this package with OpenCL so far, feedback from CUDA and openblas for Nvidia and CPUs respectively would be appreciated.

EDIT: Openblas not working in the release version, use the git version here